View a markdown version of this page

マルチリポジトリ設定で Supply Chain データレイクのデプロイを自動化する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

マルチリポジトリ設定で Supply Chain データレイクのデプロイを自動化する

Keshav Ganesh、Amazon Web Services

概要

このパターンは、マルチリポジトリの継続的インテグレーションと継続的デプロイ (CI/CD) パイプラインを使用して AWS Supply Chain データレイクをデプロイおよび管理するための自動化されたアプローチを提供します。これは、GitHub Actions ワークフローを使用した自動デプロイと、Terraform を使用した手動デプロイの 2 つのデプロイ方法を示しています。どちらのアプローチも、Infrastructure as Code (IaC) に Terraform を使用し、自動化された方法で GitHub Actions と JFrog Artifactory を追加して CI/CD 機能を強化します。

このソリューションは Supply Chain AWS Lambda、 と Amazon Simple Storage Service (Amazon S3) を活用してデータレイクインフラストラクチャを確立し、いずれかのデプロイ方法を使用して設定とリソースの作成を自動化します。この自動化により、手動の設定手順がなくなり、環境間で一貫したデプロイが可能になります。さらに、 は抽出、変換、ロード (ETL) に関する深い専門知識の必要性 Supply Chain を排除し、Amazon Quick Sight を活用したインサイトと分析を提供できます。

このパターンを実装することで、組織はバージョン管理された自動化されたプロセスを通じて、デプロイ時間を短縮し、Infrastructure as Code を維持し、サプライチェーンのデータレイクを管理できます。マルチリポジトリアプローチは、きめ細かなアクセスコントロールを提供し、さまざまなコンポーネントの独立したデプロイをサポートします。チームは、既存のツールやプロセスに最適なデプロイ方法を選択できます。

前提条件と制限

前提条件

ローカルマシンに以下がインストールされていることを確認します。

デプロイする前に、以下が設定されていることを確認します。

  • アクティブ AWS アカウント。

  • AWS アカウント AWS リージョン 任意の の に 2 つのプライベートサブネットを持つ Virtual Private Cloud (VPC)

  • 次のサービスへのデプロイに使用される AWS Identity and Access Management (IAM) ロールの十分なアクセス許可。

    • Supply Chain – データセットや統合フローなどのコンポーネントをデプロイし、 からアクセスする場合は、フルアクセスが推奨されます AWS マネジメントコンソール。

    • Amazon CloudWatch Logs – CloudWatch ロググループの作成と管理用。

    • Amazon Elastic Compute Cloud (Amazon EC2) – Amazon EC2 セキュリティグループと Amazon Virtual Private Cloud (Amazon VPC) エンドポイント用。

    • Amazon EventBridge – が使用します Supply Chain。

    • IAM – AWS Lambda サービスロールの作成用。

    • AWS Key Management Service (AWS KMS) – Amazon S3 アーティファクトバケットと Amazon S3 Supply Chain ステージングバケット AWS KMS keys に使用される へのアクセス用。

    • AWS Lambda – Supply Chain コンポーネントをデプロイする Lambda 関数を作成する場合。

    • Amazon S3 – Amazon S3 アーティファクトバケット、サーバーアクセスロギングバケット、 Supply Chain ステージングバケットへのアクセス用。手動デプロイを使用している場合は、Amazon S3 Terraform アーティファクトバケットのアクセス許可も必要です。

    • Amazon VPC – VPC の作成と管理用。

デプロイに GitHub Actions ワークフローを使用する場合は、以下を実行します。

手動デプロイを行う場合は、以下を実行します。

デプロイに GitHub Actions ワークフローを使用する場合は、以下を設定します。

制限事項

  • Supply Chain インスタンスは、複雑なデータ変換手法をサポートしていません。

  • Supply Chain は、組み込みの分析とインサイトを提供するため、サプライチェーンドメインに最適です。他のドメインの場合、 Supply Chain はデータレイクアーキテクチャの一部としてデータストアとして使用できます。

  • このソリューションで使用される Lambda 関数は、本番環境のデプロイで API の再試行とメモリ管理を処理するために拡張する必要がある場合があります。

  • 一部の AWS のサービス は、すべてで利用できるわけではありません AWS リージョン。利用可能なリージョンについては、「AWS サービス (リージョン別)」を参照してください。特定のエンドポイントについては、「サービスエンドポイントとクォータ」を参照して、サービスのリンクを選択してください。

アーキテクチャ

このソリューションは、自動化された GitHub Actions ワークフローを使用するか、Terraform を使用して手動でデプロイできます。

GitHub Actions を使用した自動デプロイ

次の図は、GitHub Actions ワークフローを使用する自動デプロイオプションを示しています。JFrog Artifactory はアーティファクトの管理に使用されます。マルチリポジトリデプロイで使用するリソース情報と出力を保存します。

GitHub Actions ワークフローと JFrog を使用する自動デプロイオプション。

Terraform を使用した手動デプロイ

次の図は、Terraform による手動デプロイオプションを示しています。JFrog Artifactory の代わりに、Amazon S3 がアーティファクト管理に使用されます。

Terraform と Amazon S3 を使用した手動デプロイオプション。

デプロイのワークフロー

図は次のワークフローを示しています。

  1. 次のいずれかのデプロイ方法を使用して、 Supply Chain サービスデータセットのインフラストラクチャとデータベースをデプロイします。

    • 自動デプロイ – GitHub Actions ワークフローを使用してすべてのデプロイステップを調整し、JFrog Artifactory を使用してアーティファクトを管理します。

    • 手動デプロイ – デプロイステップごとに Terraform コマンドを直接実行し、Amazon S3 を使用してアーティファクトを管理します。

  2. Supply Chain サービスオペレーションに必要なサポート AWS リソースを作成します。

    • Amazon VPC エンドポイントとセキュリティグループ

    • AWS KMS keys

    • CloudWatch Logs ロググループ

  3. 次のインフラストラクチャリソースを作成してデプロイします。

    • Supply Chain サービスインスタンス、名前空間、データセットを管理 (作成、更新、削除する) する Lambda 関数。

    • Supply Chain データインジェスト用の Amazon S3 バケットのステージング

  4. ステージングバケットと Supply Chain データセット間の統合フローを管理する Lambda 関数をデプロイします。デプロイが完了すると、残りのワークフローステップでデータの取り込みと分析を管理します。

  5. Supply Chain ステージング Amazon S3 バケットへのソースデータの取り込みを設定します。

  6. Supply Chain ステージング Amazon S3 バケットにデータが追加されると、サービスは自動的に Supply Chain データセットへの統合フローをトリガーします。

  7. Supply Chain は Quick Sight Analytics と統合して、取り込まれたデータに基づいてダッシュボードを生成します。

ツール

AWS のサービス

  • Amazon CloudWatch Logs を使用すると、すべてのシステム、アプリケーション、 からのログを一元化 AWS のサービス できるため、ログをモニタリングして安全にアーカイブできます。

  • AWS Command Line Interface (AWS CLI) は、コマンドラインシェルのコマンド AWS のサービス を使用して を操作するのに役立つオープンソースツールです。

  • Amazon Elastic Compute Cloud (Amazon EC2) は、 AWS クラウドでスケーラブルなコンピューティング容量を提供します。仮想サーバーを必要な数だけ起動して、迅速にスケールアップまたはスケールダウンができます。

  • Amazon EventBridge は、アプリケーションをさまざまなソースのリアルタイムデータに接続できるようにするサーバーレスイベントバスサービスです。例えば、 AWS Lambda 関数、API 送信先を使用する HTTP 呼び出しエンドポイント、その他のイベントバスなどです AWS アカウント。

  • AWS Identity and Access Management (IAM) は、誰を認証し、誰に使用する権限を付与するかを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。

  • AWS IAM アイデンティティセンター を使用すると、すべての AWS アカウント およびクラウドアプリケーションへのシングルサインオン (SSO) アクセスを一元管理できます。

  • AWS Key Management Service (AWS KMS) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。

  • AWS Lambda は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。

  • Amazon Q in Supply Chain は、 Supply Chain データレイク内のデータを分析することでサプライチェーンをより効率的に運用するのに役立つインタラクティブな生成 AI アシスタントです。

  • Amazon QuickSight は、視覚化、分析、レポート生成に使用できるクラウドスケールのビジネスインテリジェンス (BI) サービスです。

  • Amazon Simple Storage Service (Amazon S3) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。

  • Supply Chain は、サプライチェーンドメインのデータストアとして組織で使用できるクラウドベースのマネージドアプリケーションです。これは、インサイトを生成し、取り込まれたデータに対して分析を実行するために使用できます。

  • Amazon Virtual Private Cloud (Amazon VPC) は、定義した仮想ネットワークに AWS リソースを起動するのに役立ちます。この仮想ネットワークは、ユーザー自身のデータセンターで運用されていた従来のネットワークと似ていますが、 AWSのスケーラブルなインフラストラクチャを使用できるという利点があります。Amazon VPC エンドポイントは、インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続を必要と AWS のサービス せずに、サポートされている に VPC をプライベートに接続するのに役立つ仮想デバイスです。

その他のツール

  • GitHub アクションは、GitHub リポジトリと緊密に統合された継続的インテグレーションおよび継続的デリバリー (CI/CD) プラットフォームです。GitHub Actions を使用して、生成、テスト、デプロイのパイプラインを自動化できます。

  • HashiCorp Terraform は、Infrastructure as Code (IaC) ツールで、クラウドとオンプレミスのリソースの作成と管理を支援します。

  • JFrog Artifactory は、アプリケーション配信プロセスを通じてバイナリとアーティファクトのend-to-endの自動化と管理を提供します。

  • Python」は汎用のコンピュータプログラミング言語です。このパターンでは、 AWS 関数のコードが とやり取りするために Python を使用します。 Supply Chain

    .

ベストプラクティス

エピック

タスク説明必要なスキル

リポジトリのクローン作成

このパターンのリポジトリのクローンを作成するには、ローカルワークステーションで次のコマンドを実行します。

git clone https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment.git cd ASC-Deployment
AWS DevOps

(自動オプション) デプロイの前提条件を確認します。

自動デプロイの前提条件が完了していることを確認します。

アプリ所有者

(手動オプション) Supply Chain データセットのデプロイを準備します。

terraform-deployment ディレクトリに移動するにはASC-Datasets、次のコマンドを実行します。

cd ASC-Datasets/terraform-deployment

前提条件で作成されたロール ARN を引き受けるには、次のコマンドを実行します。

aws sts assume-role --role-arn <enter AWS user role ARN> --role-session-name <your-session-name>

環境変数を設定してエクスポートするには、次のコマンドを実行します。

# Export Environment variables export REGION=<Enter deployment region> export REPO_NAME=<Enter Current ASC Datasets dir name> export PROJECT_NAME="asc-deployment-poc" export ACCOUNT_ID=<Enter deployment Account ID> export ENVIRONMENT="dev" export LAMBDA_LAYER_TEMP_DIR_TERRAFORM="layerOutput" export LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM="lambdaOutput" export AWS_USER_ROLE=<Enter user role ARN for AWS Console access and deployment> export S3_TERRAFORM_ARTIFACTS_BUCKET_NAME="$PROJECT_NAME-$ACCOUNT_ID-$REGION-terraform-artifacts-$ENVIRONMENT"
AWS DevOps

(手動オプション) デプロイで Supply Chain 統合フローを管理する準備をします。

terraform-deployment ディレクトリに移動するにはASC-Integration-Flows、次のコマンドを実行します。

cd ASC-Integration-Flows/terraform-deployment

以前に作成したロール ARN を引き受けるには、次のコマンドを実行します。

aws sts assume-role --role-arn <enter AWS user role ARN> --role-session-name <your-session-name>

環境変数を設定してエクスポートするには、次のコマンドを実行します。

# Export Environment variables export REGION=<Enter deployment region> export REPO_NAME=<Enter Current ASC Integration Flows dir name> export ASC_DATASET_VARS_REPO=<Enter Current ASC Datasets dir name> #Must be the same directory name used for ASC Datasets deployment export PROJECT_NAME="asc-deployment-poc" export ACCOUNT_ID=<Enter deployment Account ID> export ENVIRONMENT="dev" export LAMBDA_LAYER_TEMP_DIR_TERRAFORM="layerOutput" export LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM="lambdaOutput" export S3_TERRAFORM_ARTIFACTS_BUCKET_NAME="$PROJECT_NAME-$ACCOUNT_ID-$REGION-terraform-artifacts-$ENVIRONMENT"
アプリ所有者
タスク説明必要なスキル

ASC-Datasets ディレクトリをコピーします。

ASC-Datasets ディレクトリを新しい場所にコピーするには、次の手順を実行します。

  1. ASC-Datasets ディレクトリに移動するには、次のコマンドを実行します。

    cd ASC-Datasets
  2. ASC-Datasets ディレクトリを新しい場所にコピーするには、次のコマンドを実行します。

    cp -r ASC-Datasets ../ASC-Datasets-standalone cd ../ASC-Datasets-standalone
AWS DevOps

ASC-Datasets ディレクトリを設定します。

を組織内のスタンドアロンリポジトリASC-Datasetsとして設定するには、次のコマンドを実行します。

git init git add . git commit -m "Initial commit: ASC-Datasets standalone repository" git remote add origin <INSERT_ASC_DATASETS_GITHUB_URL> git branch -M dev
AWS DevOps

.github ワークフローファイルでブランチ名を設定します。

次の例に示すように、デプロイワークフローファイルにブランチ名を設定します。

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
アプリ所有者

GitHub 環境をセットアップし、環境値を設定します。

GitHub 組織で GitHub 環境を設定するには、このパターンのリポジトリにある GitHub 環境のセットアップの手順を使用します。

ワークフローファイルで環境値を設定するには、このパターンのリポジトリのワークフローファイルの環境値のセットアップの手順を使用します。

アプリ所有者

ワークフローをトリガーします。

変更を GitHub 組織にプッシュし、デプロイワークフローをトリガーするには、次のコマンドを実行します。

git push -u origin dev
AWS DevOps
タスク説明必要なスキル

ASC-Integration-Flows ディレクトリをコピーします。

ASC-Integration-Flows ディレクトリを新しい場所にコピーするには、次の手順を実行します。

  1. ASC-Integration-Flows ディレクトリに移動するには、次のコマンドを実行します。

    cd ASC-Integration-Flows
  2. ASC-Integration-Flows ディレクトリを新しい場所にコピーするには、次のコマンドを実行します。

    cp -r ASC-Integration-Flows ../ASC-Integration-Flows-standalone cd ../ASC-Integration-Flows-standalone
AWS DevOps

ASC-Integration-Flows ディレクトリを設定します。

ASC-Integration-Flows ディレクトリを組織内のスタンドアロンリポジトリとして設定するには、次のコマンドを実行します。

git init git add . git commit -m "Initial commit: ASC-Integration-Flows standalone repository" git remote add origin <INSERT_ASC_Integration_Flows_GITHUB_URL> git branch -M dev
AWS DevOps

.github ワークフローファイルでブランチ名を設定します。

次の例に示すように、デプロイワークフローファイルにブランチ名を設定します。

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
アプリ所有者

GitHub 環境をセットアップし、環境値を設定します。

GitHub 組織で GitHub 環境を設定するには、このパターンのリポジトリにある GitHub 環境のセットアップの手順を使用します。

ワークフローファイルで環境値を設定するには、このパターンのリポジトリのワークフローファイルの環境値のセットアップの手順を使用します。

アプリ所有者

ワークフローをトリガーします。

変更を GitHub 組織にプッシュし、デプロイワークフローをトリガーするには、次のコマンドを実行します。

git push -u origin dev
AWS DevOps
タスク説明必要なスキル

terraform-deployment ディレクトリに移動します。

terraform-deployment ディレクトリに移動するにはASC-Datasets、次のコマンドを実行します。

cd ASC-Datasets/terraform-deployment
AWS DevOps

Terraform 状態 Amazon S3 バケットを設定します。

Terraform 状態 Amazon S3 バケットを設定するには、次のスクリプトを使用します。

# Setup terraform bucket chmod +x ../scripts/setup-terraform.sh ../scripts/setup-terraform.sh
AWS DevOps

Terraform アーティファクトの Amazon S3 バケットを設定します。

Terraform アーティファクト Amazon S3 バケットを設定するには、次のスクリプトを使用します。

# Setup terraform artifacts bucket chmod +x ../scripts/setup-terraform-artifacts-bucket.sh ../scripts/setup-terraform-artifacts-bucket.sh
AWS DevOps

Terraform バックエンドとプロバイダーの設定をセットアップします。

Terraform バックエンドとプロバイダーの設定を設定するには、次のスクリプトを使用します。

# Setup terraform backend and providers config if they don't exist chmod +x ../scripts/generate-terraform-config.sh ../scripts/generate-terraform-config.sh
AWS DevOps

デプロイプランを生成します。

デプロイプランを生成するには、次のコマンドを実行します。

# Run terraform init and validate terraform init terraform validate # Run terraform plan terraform plan \ -var-file="tfInputs/$ENVIRONMENT.tfvars" \ -var="project_name=$PROJECT_NAME" \ -var="environment=$ENVIRONMENT" \ -var="user_role=$AWS_USER_ROLE" \ -var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \ -var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \ -parallelism=40 \ -out='tfplan.out'
AWS DevOps

設定をデプロイします。

設定をデプロイするには、次のコマンドを実行します。

# Run terraform apply terraform apply tfplan.out
AWS DevOps

他の設定を更新し、出力を保存します。

AWS KMS キーポリシーを更新し、適用された設定出力を Terraform アーティファクト Amazon S3 バケットに保存するには、次のコマンドを実行します。

# Update AWS Supply Chain KMS Key policy with the service's requirements chmod +x ../scripts/update-asc-kms-policy.sh ../scripts/update-asc-kms-policy.sh
# Update AWS KMS Keys' policy with IAM roles chmod +x ../scripts/update-kms-policy.sh ../scripts/update-kms-policy.sh
# Create terraform outputs file to be used as input variables terraform output -json > raw_output.json jq -r 'to_entries | map( if .value.type == "string" then "\(.key) = \"\(.value.value)\"" else "\(.key) = \(.value.value | tojson)" end ) | .[]' raw_output.json > $REPO_NAME-outputs.tfvars
# Upload reformed outputs file to Amazon S3 terraform artifacts bucket (For retrieval from other repositories) aws s3 cp $REPO_NAME-outputs.tfvars s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars rm -f raw_output.json rm -f $REPO_NAME-outputs.tfvars
AWS DevOps
タスク説明必要なスキル

terraform-deployment ディレクトリに移動します。

terraform-deployment ディレクトリに移動するにはASC-Integration-Flows、次のコマンドを実行します。

cd ASC-Integration-Flows/terraform-deployment
AWS DevOps

Terraform バックエンドとプロバイダーの設定をセットアップします。

Terraform バックエンドとプロバイダーの設定を設定するには、次のスクリプトを使用します。

# Setup terraform backend and providers config if they don't exist chmod +x ../scripts/generate-terraform-config.sh ../scripts/generate-terraform-config.sh
AWS DevOps

デプロイプランを生成します。

デプロイプランを生成するには、次のコマンドを実行します。これらのコマンドは、Terraform 環境を初期化し、 の設定変数を既存の Terraform 設定ASC-Datasetsとマージして、デプロイプランを生成します。

# Run terraform init and validate terraform init terraform validate
# Download and merge ASC DATASET tfvars chmod +x ../scripts/download-vars-through-s3.sh ../scripts/download-vars-through-s3.sh $ASC_DATASET_VARS_REPO
# Run terraform plan terraform plan \ -var-file="tfInputs/$ENVIRONMENT.tfvars" \ -var="project_name=$PROJECT_NAME" \ -var="environment=$ENVIRONMENT" \ -var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \ -var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \ -parallelism=40 \ -out='tfplan.out'
AWS DevOps

設定をデプロイします。

設定をデプロイするには、次のコマンドを実行します。

# Run terraform apply terraform apply tfplan.out
AWS DevOps

他の設定を更新します。

AWS KMS キーポリシーを更新し、適用された設定出力を Terraform アーティファクト Amazon S3 バケットに保存するには、次のコマンドを実行します。

# Update AWS KMS Keys' policy with IAM roles chmod +x ../scripts/update-kms-policy-through-s3.sh ../scripts/update-kms-policy-through-s3.sh $ASC_DATASET_VARS_REPO
# Create terraform outputs file to be used as input variables terraform output -json > raw_output.json jq -r 'to_entries | map( if .value.type == "string" then "\(.key) = \"\(.value.value)\"" else "\(.key) = \(.value.value | tojson)" end ) | .[]' raw_output.json > $REPO_NAME-outputs.tfvars
# Upload reformed outputs file to Amazon S3 terraform artifacts bucket (For retrieval from other repositories) aws s3 cp $REPO_NAME-outputs.tfvars s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars rm -f raw_output.json rm -f $REPO_NAME-outputs.tfvars
AWS DevOps
タスク説明必要なスキル

サンプル CSV ファイルをアップロードします。

データセットのサンプル CSV ファイルをアップロードするには、次の手順を実行します。

  1. デプロイで作成されたカレンダーデータセットとアウトバウンド注文明細データセットのさまざまなデータを含むサンプル CSV ファイルを作成します。

  2. terraform outputs ディレクトリasc_instance_idから Supply Chain インスタンス ID を取得します。

  3. デプロイで Supply Chain 作成された の Amazon S3 バケット名に注意してください。 aws-supply-chain-data-<Instance_ID>

  4. を使用してファイルをアップロードするには AWS CLI、次のコマンドを実行します。

    # Upload Calendar CSV file aws s3 cp calendar_sample.csv s3://aws-supply-chain-data-<Instance_ID>/calendar-data/ # Upload Outbound Order Line CSV file aws s3 cp outbound_order_line_sample.csv s3://aws-supply-chain-data-<Instance_ID>/outbound-order-line-data/
データエンジニア
タスク説明必要なスキル

Supply Chain アクセスを設定します。

からの Supply Chain アクセスを設定するには AWS マネジメントコンソール、次の手順を実行します。

  1. にサインイン AWS マネジメントコンソール し、 Supply Chain サービスを検索します。

  2. インスタンス に移動しますasc-deployment-poc-dev-asc-instance

  3. このパターンでは、IAM Identity Center を使用して Supply Chain インスタンスへのユーザーアクセスを管理します。このソリューションへの完全なアクセスを確保するには、アプリケーションの管理者としてサインインします。

アプリ所有者
タスク説明必要なスキル

統合フローリソースの破棄ワークフローをトリガーします。

GitHub 組織のデプロイブランチASC-Integration-Flowsから の破棄ワークフローをトリガーします。

AWS DevOps

データセットリソースの破棄ワークフローをトリガーします。

GitHub 組織のデプロイブランチASC-Datasetsから の破棄ワークフローをトリガーします。

AWS DevOps
タスク説明必要なスキル

terraform-deployment ディレクトリに移動します。

terraform-deployment ディレクトリに移動するにはASC-Integration-Flows、次のコマンドを実行します。

cd ASC-Integration-Flows/terraform-deployment
AWS DevOps

Terraform バックエンドとプロバイダーの設定をセットアップします。

Terraform バックエンドとプロバイダーの設定を設定するには、次のスクリプトを使用します。

# Setup terraform backend and providers config if they don't exist chmod +x ../scripts/generate-terraform-config.sh ../scripts/generate-terraform-config.sh
AWS DevOps

インフラストラクチャ破壊計画を作成します。

詳細なティアダウンプランを生成して AWS インフラストラクチャの制御された破壊に備えるには、次のコマンドを実行します。このプロセスでは、Terraform を初期化し、 Supply Chain データセット設定を組み込み、実行前に確認できる破棄計画を作成します。

# Run terraform init and validate terraform init terraform validate
# Download and merge ASC DATASET tfvars chmod +x ../scripts/download-vars-through-s3.sh ../scripts/download-vars-through-s3.sh $ASC_DATASET_VARS_REPO
# Run terraform plan terraform plan -destroy\ -var-file="tfInputs/$ENVIRONMENT.tfvars" \ -var="project_name=$PROJECT_NAME" \ -var="environment=$ENVIRONMENT" \ -var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \ -var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \ -parallelism=40 \ -out='tfplan.out'
AWS DevOps

インフラストラクチャ破壊計画を実行します。

インフラストラクチャの計画された破棄を実行するには、次のコマンドを実行します。

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Amazon S3 バケットから Terraform 出力を削除します。

のデプロイ中にアップロードされた出力ファイルを削除するにはASC-Integration-Flows、次のコマンドを実行します。

# Delete the outputs file aws s3 rm s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars
AWS DevOps
タスク説明必要なスキル

terraform-deployment ディレクトリに移動します。

terraform-deployment ディレクトリに移動するにはASC-Datasets、次のコマンドを実行します。

cd ASC-Datasets/terraform-deployment
AWS DevOps

Terraform バックエンドとプロバイダーの設定をセットアップします。

Terraform バックエンドとプロバイダーの設定を設定するには、次のスクリプトを使用します。

# Setup terraform backend and providers config if they don't exist chmod +x ../scripts/generate-terraform-config.sh ../scripts/generate-terraform-config.sh
AWS DevOps

インフラストラクチャ破壊計画を作成します。

Supply Chain データセットリソースを破棄する計画を作成するには、次のコマンドを実行します。

# Run terraform init and validate terraform init terraform validate # Run terraform plan terraform plan -destroy\ -var-file="tfInputs/$ENVIRONMENT.tfvars" \ -var="project_name=$PROJECT_NAME" \ -var="environment=$ENVIRONMENT" \ -var="user_role=$AWS_USER_ROLE" \ -var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \ -var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \ -parallelism=40 \ -out='tfplan.out'
AWS DevOps

Amazon S3 バケットを空にします。

すべての Amazon S3 バケット ( 用に設定されたサーバーアクセスログ記録バケットを除くforce-destroy) を空にするには、次のスクリプトを使用します。

# Delete S3 buckets excluding server access logging bucket chmod +x ../scripts/empty-s3-buckets.sh ../scripts/empty-s3-buckets.sh tfplan.out
AWS DevOps

インフラストラクチャ破壊計画を実行します。

生成されたプランを使用して Supply Chain データセットインフラストラクチャの計画的破壊を実行するには、次のコマンドを実行します。

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Amazon S3 Terraform アーティファクトバケットから Terraform 出力を削除します。

クリーンアッププロセスを完了するには、次のコマンドASC-Datasetsを実行して、 のデプロイ中にアップロードされた出力ファイルを削除します。

# Delete the outputs file aws s3 rm s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars
AWS DevOps

トラブルシューティング

問題ソリューション

Supply Chain 内部エラーまたはサービスロールの IAM アクセス許可が不十分であるため、 Supply Chain データセットまたは統合フローが正しくデプロイされませんでした。

まず、すべてのリソースをクリーンアップします。次に、 Supply Chain データセットリソースを再デプロイし、 Supply Chain 統合フローリソースを再デプロイします。

Supply Chain 統合フローは、 Supply Chain データセットにアップロードされた新しいデータファイルを取得しません。

  1. Supply Chain 統合フロー設定のプレフィックスが、サンプルデータファイルのアップロード時に使用されたプレフィックスと一致することを確認します。

  2. Supply Chain データセットのリソースが再作成された場合、関連する Amazon リソースネーム (ARNs) は内部で変更されます。したがって、 Supply Chain サービス統合フローリソースのリソースを再デプロイします。

関連リソース

AWS ドキュメント

その他のリソース

追加情報

このソリューションは、 で提供される構築済みのダッシュボード Supply Chain または Amazon Quick Sight とのカスタム統合を通じて、より多くのデータセットにレプリケートでき、さらなる分析のためにクエリを実行できます。さらに、Amazon Q を使用して、 Supply Chain インスタンスに関連する質問をすることができます。

Analytics でデータを分析する Supply Chain

Supply Chain 分析を設定する手順については、 Supply Chain ドキュメントのSupply Chain 「分析の設定」を参照してください。

このパターンは、カレンダーデータセットと Outbound_Order_Line データセットの作成を示しています。これらのデータセットを使用する分析を作成するには、次の手順を実行します。

  1. データセットを分析するには、季節性分析ダッシュボードを使用します。ダッシュボードを追加するには、 Supply Chain ドキュメントの「構築済みダッシュボード」のステップに従います。

  2. ダッシュボードを選択すると、カレンダーデータとアウトバウンド注文明細データのサンプル CSV ファイルに基づく分析が表示されます。

ダッシュボードは、データセットの取り込まれたデータに基づいて、長年にわたってオンデマンドでインサイトを提供します。ProductID、CustomerID、年、およびその他のパラメータをさらに指定して分析できます。

Amazon Q を使用して Supply Chain インスタンスに関連する質問をする

Amazon Q in Supply Chain は、サプライチェーンをより効率的に運用するのに役立つインタラクティブな生成 AI アシスタントです。Amazon Q は以下を実行できます。

  • Supply Chain データレイク内のデータを分析します。

  • 運用上および財務上のインサイトを提供します。

  • サプライチェーンに関する即時の質問に回答します。

Amazon Q の使用の詳細については、 Supply Chain ドキュメントの「 での Amazon Q の有効化 Supply Chain」と「 での Amazon Q の使用 Supply Chain」を参照してください。