

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

# マルチリポジトリ設定で AWS Supply Chain データレイクのデプロイを自動化する
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes"></a>

*Keshav Ganesh、Amazon Web Services*

## 概要
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-summary"></a>

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

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

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

## 前提条件と制限
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-prereqs"></a>

**前提条件**

ローカルマシンに以下がインストールされていることを確認します。
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) バージョン 2
+ [GitHub CLI](https://docs.github.com/en/get-started/git-basics/set-up-git)
+ [Python](https://www.python.org/downloads/) v3.13
+ [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) v1.12 以降

デプロイする前に、以下が設定されていることを確認します。
+ アクティブ AWS アカウント。
+  AWS アカウント AWS リージョン 任意の の に 2 [つのプライベートサブネット](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-example-private-subnets-nat.html)を持つ [Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)。
+ 次のサービスへのデプロイに使用される AWS Identity and Access Management (IAM) ロールの十分なアクセス許可。
  + AWS Supply Chain – データセットや統合フローなどのコンポーネントをデプロイし、 からアクセスする場合は、フルアクセスが推奨されます AWS マネジメントコンソール。
  + Amazon CloudWatch Logs – CloudWatch ロググループの作成と管理用。
  + Amazon Elastic Compute Cloud (Amazon EC2) – Amazon EC2 セキュリティグループと Amazon Virtual Private Cloud (Amazon VPC) エンドポイント用。
  + Amazon EventBridge – が使用します AWS Supply Chain。
  + IAM – AWS Lambda サービスロールの作成用。
  + AWS Key Management Service (AWS KMS) – Amazon S3 アーティファクトバケットと Amazon S3 AWS Supply Chain ステージングバケット AWS KMS keys に使用される へのアクセス用。
  + AWS Lambda – AWS Supply Chain コンポーネントをデプロイする Lambda 関数を作成する場合。
  + Amazon S3 – Amazon S3 アーティファクトバケット、サーバーアクセスロギングバケット、 AWS Supply Chain ステージングバケットへのアクセス用。手動デプロイを使用している場合は、Amazon S3 Terraform アーティファクトバケットのアクセス許可も必要です。
  + Amazon VPC – VPC の作成と管理用。

デプロイに GitHub Actions ワークフローを使用する場合は、以下を実行します。
+ 前述のアクセス許可を使用して、IAM ロールの [OpenID Connect (OIDC)](https://docs.github.com/en/actions/how-tos/secure-your-work/security-harden-deployments/oidc-in-aws#configuring-the-role-and-trust-policy) を設定します。
+ にアクセスするための同様のアクセス許可を持つ IAM ロールを作成します AWS マネジメントコンソール。詳細については、IAM [ドキュメントの「IAM ユーザーにアクセス許可を付与するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」を参照してください。

手動デプロイを行う場合は、以下を実行します。
+ 前述のアクセス許可を持つ IAM ロールを引き受ける IAM ユーザーを作成します。詳細については、IAM [ドキュメントの「IAM ユーザーにアクセス許可を付与するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」を参照してください。
+ ローカルターミナルで [ロールを引き受け](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-role.html)ます。

デプロイに GitHub Actions ワークフローを使用する場合は、以下を設定します。
+ ホスト名、ログインユーザー名、ログインアクセストークンを取得する [JFrog Artifactory アカウント](https://jfrog.com/artifactory/?utm_source=google&utm_medium=cpc_search&utm_campaign=SearchDSKBrandAPACIN202506&utm_term=jfrog%20cloud&gads_network=g&utm_content=u-bin&gads_campaign_id=22674833884&gads_adgroup_id=184501797241&gads_extension_id=233003714635&gads_target_id=aud-312135645780:kwd-1598615735032&gads_matchtype=b&gad_source=1&gad_campaignid=22674833884&gbraid=0AAAAADqV85U5B37iapTR9IIFHBvydF5AQ&gclid=CjwKCAjwiY_GBhBEEiwAFaghvqdNV-odNLZXPHjT7NAwf8lA-QuMtg666hgvDW1oCJ4nn7wvf869_xoCW4IQAvD_BwE)。
+ アーティファクトを保存するための [JFrog プロジェクトキーとリポジトリ](https://docs.jfrog.com/projects/docs/create-a-project)。

**制限事項**
+  AWS Supply Chain インスタンスは、複雑なデータ変換手法をサポートしていません。
+ AWS Supply Chain は、組み込みの分析とインサイトを提供するため、サプライチェーンドメインに最適です。他のドメインの場合、 AWS Supply Chain はデータレイクアーキテクチャの一部としてデータストアとして使用できます。
+ このソリューションで使用される Lambda 関数は、本番環境のデプロイで API の再試行とメモリ管理を処理するために拡張する必要がある場合があります。
+ 一部の AWS のサービス は、すべてで利用できるわけではありません AWS リージョン。利用可能なリージョンについては、「[AWS サービス (リージョン別)](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。特定のエンドポイントについては、「[サービスエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)」を参照して、サービスのリンクを選択してください。

## アーキテクチャ
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-architecture"></a>

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

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

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

![\[GitHub Actions ワークフローと JFrog を使用する自動デプロイオプション。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/2f0b78b0-a174-4703-b533-d66b3fb005e0/images/d454a5c5-ed51-421c-a87f-ff74cfcb30be.png)


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

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

![\[Terraform と Amazon S3 を使用した手動デプロイオプション。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/2f0b78b0-a174-4703-b533-d66b3fb005e0/images/1130e728-44d5-4ae7-9586-1e497f54352a.png)


**デプロイのワークフロー**

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

1. 次のいずれかのデプロイ方法を使用して、 AWS Supply Chain サービスデータセットのインフラストラクチャとデータベースをデプロイします。
   + **自動デプロイ** – GitHub Actions ワークフローを使用してすべてのデプロイステップを調整し、JFrog Artifactory を使用してアーティファクトを管理します。
   + **手動デプロイ** – デプロイステップごとに Terraform コマンドを直接実行し、Amazon S3 を使用してアーティファクトを管理します。

1.  AWS Supply Chain サービスオペレーションに必要なサポート AWS リソースを作成します。
   + Amazon VPC エンドポイントとセキュリティグループ
   + AWS KMS keys
   + CloudWatch Logs ロググループ

1. 次のインフラストラクチャリソースを作成してデプロイします。
   +  AWS Supply Chain サービスインスタンス、名前空間、データセットを管理 (作成、更新、削除する) する Lambda 関数。
   + AWS Supply Chain データインジェスト用の Amazon S3 バケットのステージング

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

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

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

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

## ツール
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-tools"></a>

**AWS のサービス**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) を使用すると、すべてのシステム、アプリケーション、 からのログを一元化 AWS のサービス できるため、ログをモニタリングして安全にアーカイブできます。
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) は、コマンドラインシェルのコマンド AWS のサービス を使用して を操作するのに役立つオープンソースツールです。
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) は、 AWS クラウドでスケーラブルなコンピューティング容量を提供します。仮想サーバーを必要な数だけ起動して、迅速にスケールアップまたはスケールダウンができます。
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) は、アプリケーションをさまざまなソースのリアルタイムデータに接続できるようにするサーバーレスイベントバスサービスです。例えば、 AWS Lambda 関数、API 送信先を使用する HTTP 呼び出しエンドポイント、その他のイベントバスなどです AWS アカウント。
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) は、誰を認証し、誰に使用する権限を付与するかを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。
+ [AWS IAM アイデンティティセンター](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) を使用すると、すべての AWS アカウント およびクラウドアプリケーションへのシングルサインオン (SSO) アクセスを一元管理できます。
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
+ [Amazon Q](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/qinasc.html) in AWS Supply Chain は、 AWS Supply Chain データレイク内のデータを分析することでサプライチェーンをより効率的に運用するのに役立つインタラクティブな生成 AI アシスタントです。
+ [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) は、視覚化、分析、レポート生成に使用できるクラウドスケールのビジネスインテリジェンス (BI) サービスです。
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。
+ [AWS Supply Chain](https://docs.aws.amazon.com/aws-supply-chain/latest/adminguide/getting-started.html) は、サプライチェーンドメインのデータストアとして組織で使用できるクラウドベースのマネージドアプリケーションです。これは、インサイトを生成し、取り込まれたデータに対して分析を実行するために使用できます。
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) は、定義した仮想ネットワークに AWS リソースを起動するのに役立ちます。この仮想ネットワークは、ユーザー自身のデータセンターで運用されていた従来のネットワークと似ていますが、 AWSのスケーラブルなインフラストラクチャを使用できるという利点があります。[Amazon VPC エンドポイント](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)は、インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続を必要と AWS のサービス せずに、サポートされている に VPC をプライベートに接続するのに役立つ仮想デバイスです。

**その他のツール**
+ [GitHub アクション](https://docs.github.com/en/actions)は、GitHub リポジトリと緊密に統合された継続的インテグレーションおよび継続的デリバリー (CI/CD) プラットフォームです。GitHub Actions を使用して、生成、テスト、デプロイのパイプラインを自動化できます。
+ [HashiCorp Terraform](https://www.terraform.io/) は、Infrastructure as Code (IaC) ツールで、クラウドとオンプレミスのリソースの作成と管理を支援します。
+ [JFrog Artifactory](https://jfrog.com/help/r/jfrog-artifactory-documentation/jfrog-artifactory) は、アプリケーション配信プロセスを通じてバイナリとアーティファクトのend-to-endの自動化と管理を提供します。
+ 「[Python](https://www.python.org/)」は汎用のコンピュータプログラミング言語です。このパターンでは、 AWS 関数のコードが とやり取りするために Python を使用します。 AWS Supply Chain

  .

## ベストプラクティス
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-best-practices"></a>
+ このパターンを実装する場合、可能な限り高レベルのセキュリティを維持します。[「前提条件](#automate-the-deployment-of-aws-supply-chain-data-lakes-prereqs)」で説明されているように、2 つのプライベート[サブネットを持つ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-example-private-subnets-nat.html) [Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) が、 AWS リージョン 選択した AWS アカウント の にあることを確認します。
+ 可能な限り AWS KMS [カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/cryptographic-details/basic-concepts.html)を使用し、制限付きアクセス許可を付与します。
+ このパターンのデータを取り込むために必要な最小限のアクセスを持つ IAM ロールを設定するには、このパターンのリポジトリの[「ソースシステムから Amazon S3 への安全なデータ取り込み](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main?tab=readme-ov-file#secure-data-ingestion-from-source-systems-to-amazon-s3)」を参照してください。

## エピック
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-epics"></a>

### (両方のオプション) ローカルワークステーションをセットアップする
<a name="both-options-set-up-local-workstation"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| リポジトリのクローン作成 | このパターンのリポジトリのクローンを作成するには、ローカルワークステーションで次のコマンドを実行します。<pre>git clone https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment.git<br />cd ASC-Deployment</pre> | AWS DevOps | 
| (自動オプション) デプロイの前提条件を確認します。 | 自動デプロイの[前提条件](#automate-the-deployment-of-aws-supply-chain-data-lakes-prereqs)が完了していることを確認します。 | アプリ所有者 | 
| (手動オプション) AWS Supply Chain データセットのデプロイを準備します。 | の `terraform-deployment` ディレクトリに移動するには`ASC-Datasets`、次のコマンドを実行します。<pre>cd ASC-Datasets/terraform-deployment</pre>[前提条件](#automate-the-deployment-of-aws-supply-chain-data-lakes-prereqs)で作成されたロール ARN を引き受けるには、次のコマンドを実行します。<pre>aws sts assume-role --role-arn <enter AWS user role ARN> --role-session-name <your-session-name></pre>環境変数を設定してエクスポートするには、次のコマンドを実行します。<pre># Export Environment variables<br />export REGION=<Enter deployment region><br />export REPO_NAME=<Enter Current ASC Datasets dir name><br />export PROJECT_NAME="asc-deployment-poc"<br />export ACCOUNT_ID=<Enter deployment Account ID><br />export ENVIRONMENT="dev"<br />export LAMBDA_LAYER_TEMP_DIR_TERRAFORM="layerOutput"<br />export LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM="lambdaOutput"<br />export AWS_USER_ROLE=<Enter user role ARN for AWS Console access and deployment><br />export S3_TERRAFORM_ARTIFACTS_BUCKET_NAME="$PROJECT_NAME-$ACCOUNT_ID-$REGION-terraform-artifacts-$ENVIRONMENT"</pre> | AWS DevOps | 
| (手動オプション) デプロイで AWS Supply Chain 統合フローを管理する準備をします。 | の `terraform-deployment` ディレクトリに移動するには`ASC-Integration-Flows`、次のコマンドを実行します。<pre>cd ASC-Integration-Flows/terraform-deployment</pre>以前に作成したロール ARN を引き受けるには、次のコマンドを実行します。<pre>aws sts assume-role --role-arn <enter AWS user role ARN> --role-session-name <your-session-name></pre>環境変数を設定してエクスポートするには、次のコマンドを実行します。<pre># Export Environment variables<br />export REGION=<Enter deployment region><br />export REPO_NAME=<Enter Current ASC Integration Flows dir name><br />export ASC_DATASET_VARS_REPO=<Enter Current ASC Datasets dir name>  #Must be the same directory name used for ASC Datasets deployment<br />export PROJECT_NAME="asc-deployment-poc"<br />export ACCOUNT_ID=<Enter deployment Account ID><br />export ENVIRONMENT="dev"<br />export LAMBDA_LAYER_TEMP_DIR_TERRAFORM="layerOutput"<br />export LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM="lambdaOutput"<br />export S3_TERRAFORM_ARTIFACTS_BUCKET_NAME="$PROJECT_NAME-$ACCOUNT_ID-$REGION-terraform-artifacts-$ENVIRONMENT"</pre> | アプリ所有者 | 

### (自動オプション) GitHub Actions ワークフローを使用して AWS Supply Chain データセットをデプロイする
<a name="automated-option-deploy-supplychain-datasets-using-github-actions-workflows"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| `ASC-Datasets` ディレクトリをコピーします。 | `ASC-Datasets` ディレクトリを新しい場所にコピーするには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-the-deployment-of-aws-supply-chain-data-lakes.html) | AWS DevOps | 
| `ASC-Datasets` ディレクトリを設定します。 | を組織内のスタンドアロンリポジトリ`ASC-Datasets`として設定するには、次のコマンドを実行します。<pre>git init<br />git add .<br />git commit -m "Initial commit: ASC-Datasets standalone repository"<br />git remote add origin <INSERT_ASC_DATASETS_GITHUB_URL><br />git branch -M dev</pre> | AWS DevOps | 
| .github ワークフローファイルでブランチ名を設定します。 | 次の例に示すように、[デプロイ](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Datasets/.github/workflows/asc-datasets.yml)ワークフローファイルにブランチ名を設定します。<pre>   on:<br />     workflow_dispatch:<br />     push:<br />       branches:<br />         - dev     #Change to any other branch preferred for deployment</pre> | アプリ所有者 | 
| GitHub 環境をセットアップし、環境値を設定します。 | GitHub 組織で GitHub 環境を設定するには、このパターンのリポジトリにある [ GitHub 環境のセットアップ](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Datasets#setup-github-environments)の手順を使用します。ワークフローファイルで[環境値](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Datasets#setup-environment-values-in-the-workflow-files)を設定するには、このパターンのリポジトリ[のワークフローファイルの環境値のセットアップ](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Datasets#setup-environment-values-in-the-workflow-files)の手順を使用します。 | アプリ所有者 | 
| ワークフローをトリガーします。 | 変更を GitHub 組織にプッシュし、デプロイワークフローをトリガーするには、次のコマンドを実行します。<pre>git push -u origin dev</pre> | AWS DevOps | 

### (自動オプション) GitHub Actions ワークフローを使用して AWS Supply Chain 統合フローをデプロイする
<a name="automated-option-deploy-supplychain-integration-flows-using-github-actions-workflows"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| `ASC-Integration-Flows` ディレクトリをコピーします。 | `ASC-Integration-Flows` ディレクトリを新しい場所にコピーするには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-the-deployment-of-aws-supply-chain-data-lakes.html) | AWS DevOps | 
| `ASC-Integration-Flows` ディレクトリを設定します。 | `ASC-Integration-Flows` ディレクトリを組織内のスタンドアロンリポジトリとして設定するには、次のコマンドを実行します。<pre>git init<br />git add .<br />git commit -m "Initial commit: ASC-Integration-Flows standalone repository"<br />git remote add origin <INSERT_ASC_Integration_Flows_GITHUB_URL><br />git branch -M dev</pre> | AWS DevOps | 
| .github ワークフローファイルでブランチ名を設定します。 | 次の例に示すように、[デプロイ](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Integration-Flows/.github/workflows/asc-integration-flows.yml)ワークフローファイルにブランチ名を設定します。<pre>   on:<br />     workflow_dispatch:<br />     push:<br />       branches:<br />         - dev     #Change to any other branch preferred for deployment</pre> | アプリ所有者 | 
| GitHub 環境をセットアップし、環境値を設定します。 | GitHub 組織で GitHub 環境を設定するには、このパターンのリポジトリにある [ GitHub 環境のセットアップ](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Integration-Flows#setup-github-environments)の手順を使用します。ワークフローファイルで[環境値](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Integration-Flows#setup-github-environments)を設定するには、このパターンのリポジトリ[のワークフローファイルの環境値のセットアップ](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Integration-Flows#setup-environment-values-in-the-workflow-files)の手順を使用します。 | アプリ所有者 | 
| ワークフローをトリガーします。 | 変更を GitHub 組織にプッシュし、デプロイワークフローをトリガーするには、次のコマンドを実行します。<pre>git push -u origin dev</pre> | AWS DevOps | 

### (手動オプション) Terraform を使用して AWS Supply Chain データセットをデプロイする
<a name="manual-option-deploy-supplychain-datasets-using-terraform"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| `terraform-deployment ` ディレクトリに移動します。 | の `terraform-deployment` ディレクトリに移動するには`ASC-Datasets`、次のコマンドを実行します。<pre>cd ASC-Datasets/terraform-deployment</pre> | AWS DevOps | 
| Terraform 状態 Amazon S3 バケットを設定します。 | Terraform 状態 Amazon S3 バケットを設定するには、次のスクリプトを使用します。<pre># Setup terraform bucket<br />chmod +x ../scripts/setup-terraform.sh<br />../scripts/setup-terraform.sh</pre> | AWS DevOps | 
| Terraform アーティファクトの Amazon S3 バケットを設定します。 | Terraform アーティファクト Amazon S3 バケットを設定するには、次のスクリプトを使用します。<pre># Setup terraform artifacts bucket<br />chmod +x ../scripts/setup-terraform-artifacts-bucket.sh<br />../scripts/setup-terraform-artifacts-bucket.sh</pre> | AWS DevOps | 
| Terraform バックエンドとプロバイダーの設定をセットアップします。 | Terraform バックエンドとプロバイダーの設定を設定するには、次のスクリプトを使用します。<pre># Setup terraform backend and providers config if they don't exist<br />chmod +x ../scripts/generate-terraform-config.sh<br />../scripts/generate-terraform-config.sh</pre> | AWS DevOps | 
| デプロイプランを生成します。 | デプロイプランを生成するには、次のコマンドを実行します。<pre># Run terraform init and validate<br />terraform init<br />terraform validate<br /><br /># Run terraform plan<br />terraform plan \<br />-var-file="tfInputs/$ENVIRONMENT.tfvars" \<br />-var="project_name=$PROJECT_NAME" \<br />-var="environment=$ENVIRONMENT" \<br />-var="user_role=$AWS_USER_ROLE" \<br />-var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \<br />-var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \<br />-parallelism=40 \<br />-out='tfplan.out'</pre> | AWS DevOps | 
| 設定をデプロイします。 | 設定をデプロイするには、次のコマンドを実行します。<pre># Run terraform apply<br />terraform apply tfplan.out</pre> | AWS DevOps | 
| 他の設定を更新し、出力を保存します。 |  AWS KMS キーポリシーを更新し、適用された設定出力を Terraform アーティファクト Amazon S3 バケットに保存するには、次のコマンドを実行します。<pre># Update AWS Supply Chain KMS Key policy with the service's requirements<br />chmod +x ../scripts/update-asc-kms-policy.sh<br />../scripts/update-asc-kms-policy.sh<br /></pre><pre># Update AWS KMS Keys' policy with IAM roles<br />chmod +x ../scripts/update-kms-policy.sh<br />../scripts/update-kms-policy.sh<br /></pre><pre># Create terraform outputs file to be used as input variables<br />terraform output -json > raw_output.json<br />jq -r 'to_entries | map(<br />  if .value.type == "string" then<br />      "\(.key) = \"\(.value.value)\""<br />  else<br />      "\(.key) = \(.value.value | tojson)"<br />  end<br />) | .[]' raw_output.json > $REPO_NAME-outputs.tfvars<br /></pre><pre># Upload reformed outputs file to Amazon S3 terraform artifacts bucket (For retrieval from other repositories)<br />aws s3 cp $REPO_NAME-outputs.tfvars s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars<br />rm -f raw_output.json<br />rm -f $REPO_NAME-outputs.tfvars<br /></pre> | AWS DevOps | 

### (手動オプション) Terraform を使用して AWS Supply Chain サービス統合フローをデプロイする
<a name="manual-option-deploy-supplychain-service-integration-flows-using-terraform"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| `terraform-deployment` ディレクトリに移動します。 | の `terraform-deployment` ディレクトリに移動するには`ASC-Integration-Flows`、次のコマンドを実行します。<pre>cd ASC-Integration-Flows/terraform-deployment</pre> | AWS DevOps | 
| Terraform バックエンドとプロバイダーの設定をセットアップします。 | Terraform バックエンドとプロバイダーの設定を設定するには、次のスクリプトを使用します。<pre># Setup terraform backend and providers config if they don't exist<br />chmod +x ../scripts/generate-terraform-config.sh<br />../scripts/generate-terraform-config.sh</pre> | AWS DevOps | 
| デプロイプランを生成します。 | デプロイプランを生成するには、次のコマンドを実行します。これらのコマンドは、Terraform 環境を初期化し、 の設定変数を既存の Terraform 設定`ASC-Datasets`とマージして、デプロイプランを生成します。<pre># Run terraform init and validate<br />terraform init<br />terraform validate<br /></pre><pre># Download and merge ASC DATASET tfvars<br />chmod +x ../scripts/download-vars-through-s3.sh<br />../scripts/download-vars-through-s3.sh $ASC_DATASET_VARS_REPO<br /></pre><pre># Run terraform plan<br />terraform plan \<br />-var-file="tfInputs/$ENVIRONMENT.tfvars" \<br />-var="project_name=$PROJECT_NAME" \<br />-var="environment=$ENVIRONMENT" \<br />-var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \<br />-var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \<br />-parallelism=40 \<br />-out='tfplan.out'</pre> | AWS DevOps | 
| 設定をデプロイします。 | 設定をデプロイするには、次のコマンドを実行します。<pre># Run terraform apply<br />terraform apply tfplan.out</pre> | AWS DevOps | 
| 他の設定を更新します。 |  AWS KMS キーポリシーを更新し、適用された設定出力を Terraform アーティファクト Amazon S3 バケットに保存するには、次のコマンドを実行します。<pre># Update AWS KMS Keys' policy with IAM roles<br />chmod +x ../scripts/update-kms-policy-through-s3.sh<br />../scripts/update-kms-policy-through-s3.sh $ASC_DATASET_VARS_REPO<br /></pre><pre># Create terraform outputs file to be used as input variables<br />terraform output -json > raw_output.json<br />jq -r 'to_entries | map(<br />  if .value.type == "string" then<br />      "\(.key) = \"\(.value.value)\""<br />  else<br />      "\(.key) = \(.value.value | tojson)"<br />  end<br />) | .[]' raw_output.json > $REPO_NAME-outputs.tfvars<br /></pre><pre># Upload reformed outputs file to Amazon S3 terraform artifacts bucket (For retrieval from other repositories)<br />aws s3 cp $REPO_NAME-outputs.tfvars s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars<br />rm -f raw_output.json<br />rm -f $REPO_NAME-outputs.tfvars<br /></pre> | AWS DevOps | 

### (両方のオプション) データを取り込む
<a name="both-options-ingest-data"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| サンプル CSV ファイルをアップロードします。 | データセットのサンプル CSV ファイルをアップロードするには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-the-deployment-of-aws-supply-chain-data-lakes.html) | データエンジニア | 

### (両方のオプション) AWS Supply Chain アクセスを設定する
<a name="both-options-set-up-supplychain-access"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
|  AWS Supply Chain アクセスを設定します。 | からの AWS Supply Chain アクセスを設定するには AWS マネジメントコンソール、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-the-deployment-of-aws-supply-chain-data-lakes.html) | アプリ所有者 | 

### (自動オプション) GitHub Actions ワークフローを使用してすべてのリソースをクリーンアップする
<a name="automated-option-clean-up-all-resources-using-github-actions-workflows"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| 統合フローリソースの破棄ワークフローをトリガーします。 | GitHub 組織のデプロイブランチ`ASC-Integration-Flows`から の[破棄ワークフロー](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Integration-Flows/.github/workflows/destroy-workflow.yml)をトリガーします。 | AWS DevOps | 
| データセットリソースの破棄ワークフローをトリガーします。 | GitHub 組織のデプロイブランチ`ASC-Datasets`から の[破棄ワークフロー](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Datasets/.github/workflows/destroy-workflow.yml)をトリガーします。 | AWS DevOps | 

### (手動オプション) Terraform を使用して AWS Supply Chain 統合フローのリソースをクリーンアップする
<a name="manual-option-clean-up-resources-of-supplychain-integration-flows-using-terraform"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| `terraform-deployment` ディレクトリに移動します。 | の `terraform-deployment` ディレクトリに移動するには`ASC-Integration-Flows`、次のコマンドを実行します。<pre>cd ASC-Integration-Flows/terraform-deployment</pre> | AWS DevOps | 
| Terraform バックエンドとプロバイダーの設定をセットアップします。 | Terraform バックエンドとプロバイダーの設定を設定するには、次のスクリプトを使用します。<pre># Setup terraform backend and providers config if they don't exist<br />chmod +x ../scripts/generate-terraform-config.sh<br />../scripts/generate-terraform-config.sh</pre> | AWS DevOps | 
| インフラストラクチャ破壊計画を作成します。 | 詳細なティアダウンプランを生成して AWS インフラストラクチャの制御された破壊に備えるには、次のコマンドを実行します。このプロセスでは、Terraform を初期化し、 AWS Supply Chain データセット設定を組み込み、実行前に確認できる破棄計画を作成します。<pre># Run terraform init and validate<br />terraform init<br />terraform validate<br /></pre><pre># Download and merge ASC DATASET tfvars<br />chmod +x ../scripts/download-vars-through-s3.sh<br />../scripts/download-vars-through-s3.sh $ASC_DATASET_VARS_REPO<br /></pre><pre># Run terraform plan<br />terraform plan -destroy\<br />-var-file="tfInputs/$ENVIRONMENT.tfvars" \<br />-var="project_name=$PROJECT_NAME" \<br />-var="environment=$ENVIRONMENT" \<br />-var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \<br />-var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \<br />-parallelism=40 \<br />-out='tfplan.out'</pre> | AWS DevOps | 
| インフラストラクチャ破壊計画を実行します。 | インフラストラクチャの計画された破棄を実行するには、次のコマンドを実行します。<pre># Run terraform apply<br />terraform apply tfplan.out</pre> | AWS DevOps | 
| Amazon S3 バケットから Terraform 出力を削除します。 | のデプロイ中にアップロードされた出力ファイルを削除するには`ASC-Integration-Flows`、次のコマンドを実行します。<pre># Delete the outputs file<br />aws s3 rm s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars</pre> | AWS DevOps | 

### (手動オプション) Terraform を使用して AWS Supply Chain サービスデータセットのリソースをクリーンアップする
<a name="manual-option-clean-up-resources-of-supplychain-service-datasets-using-terraform"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| `terraform-deployment` ディレクトリに移動します。 | の `terraform-deployment` ディレクトリに移動するには`ASC-Datasets`、次のコマンドを実行します。<pre>cd ASC-Datasets/terraform-deployment</pre> | AWS DevOps | 
| Terraform バックエンドとプロバイダーの設定をセットアップします。 | Terraform バックエンドとプロバイダーの設定を設定するには、次のスクリプトを使用します。<pre># Setup terraform backend and providers config if they don't exist<br />chmod +x ../scripts/generate-terraform-config.sh<br />../scripts/generate-terraform-config.sh</pre> | AWS DevOps | 
| インフラストラクチャ破壊計画を作成します。 |  AWS Supply Chain データセットリソースを破棄する計画を作成するには、次のコマンドを実行します。<pre># Run terraform init and validate<br />terraform init<br />terraform validate<br /><br /># Run terraform plan<br />terraform plan -destroy\<br />-var-file="tfInputs/$ENVIRONMENT.tfvars" \<br />-var="project_name=$PROJECT_NAME" \<br />-var="environment=$ENVIRONMENT" \<br />-var="user_role=$AWS_USER_ROLE" \<br />-var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \<br />-var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \<br />-parallelism=40 \<br />-out='tfplan.out'</pre> | AWS DevOps | 
| Amazon S3 バケットを空にします。 | すべての Amazon S3 バケット ( 用に設定されたサーバーアクセスログ記録バケットを除く`force-destroy`) を空にするには、次のスクリプトを使用します。<pre># Delete S3 buckets excluding server access logging bucket<br />chmod +x ../scripts/empty-s3-buckets.sh<br />../scripts/empty-s3-buckets.sh tfplan.out</pre> | AWS DevOps | 
| インフラストラクチャ破壊計画を実行します。 | 生成されたプランを使用して AWS Supply Chain データセットインフラストラクチャの計画的破壊を実行するには、次のコマンドを実行します。<pre># Run terraform apply<br />terraform apply tfplan.out</pre> | AWS DevOps | 
| Amazon S3 Terraform アーティファクトバケットから Terraform 出力を削除します。 | クリーンアッププロセスを完了するには、次のコマンド`ASC-Datasets`を実行して、 のデプロイ中にアップロードされた出力ファイルを削除します。<pre># Delete the outputs file<br />aws s3 rm s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars</pre> | AWS DevOps | 

## トラブルシューティング
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-troubleshooting"></a>


| 問題 | ソリューション | 
| --- | --- | 
|  AWS Supply Chain 内部エラーまたはサービスロールの IAM アクセス許可が不十分であるため、 AWS Supply Chain データセットまたは統合フローが正しくデプロイされませんでした。 | まず、すべてのリソースをクリーンアップします。次に、 AWS Supply Chain [データセットリソース](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Datasets/README.md)を再デプロイし、 AWS Supply Chain [統合フローリソース](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Integration-Flows/README.md)を再デプロイします。 | 
|  AWS Supply Chain 統合フローは、 AWS Supply Chain データセットにアップロードされた新しいデータファイルを取得しません。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-the-deployment-of-aws-supply-chain-data-lakes.html) | 

## 関連リソース
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-resources"></a>

**AWS ドキュメント**
+ [AWS Supply Chain](https://docs.aws.amazon.com/aws-supply-chain/latest/adminguide/getting-started.html)

**その他のリソース**
+ [GitHub Actions ワークフローについて](https://docs.github.com/en/actions/get-started/understand-github-actions) (GitHub ドキュメント)

## 追加情報
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-additional"></a>

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

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

 AWS Supply Chain 分析を設定する手順については、 AWS Supply Chain ドキュメントの[AWS Supply Chain 「分析の設定](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/setting_analytics.html)」を参照してください。

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

1. データセットを分析するには、**季節性分析**ダッシュボードを使用します。ダッシュボードを追加するには、 AWS Supply Chain ドキュメントの[「構築済みダッシュボード](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/prebuilt_dashboards.html)」のステップに従います。

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

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

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

[Amazon Q in AWS Supply Chain](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/qinasc.html) は、サプライチェーンをより効率的に運用するのに役立つインタラクティブな生成 AI アシスタントです。Amazon Q は以下を実行できます。
+  AWS Supply Chain データレイク内のデータを分析します。
+ 運用上および財務上のインサイトを提供します。
+ サプライチェーンに関する即時の質問に回答します。

Amazon Q の使用の詳細については、 AWS Supply Chain ドキュメントの[「 での Amazon Q の有効化 AWS Supply Chain](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/enabling_QinASC.html)」と[「 での Amazon Q の使用 AWS Supply Chain](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/using_QinASC.html)」を参照してください。