

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

# インフラストラクチャプロビジョニングの DPA
<a name="dpa-for-infrastructure"></a>

DPA バージョン 1.0.0 では、インフラストラクチャプロビジョニングパイプライン用のplug-and-playテンプレートを使用できます。これらのテンプレートは、組み込みのセキュリティコントロール、自動デプロイ、バージョニング、アーティファクト管理などの DevOps のベストプラクティスに従います。

このセクションでは、DPA を使用して、Infrastructure as Code (IaC) ツール用の一元化されたパイプラインテンプレートを実装する方法について説明します。DPA は、Terraform、 AWS CDK、CloudFormation などの広く使用されている IaC ツールをサポートしています。これらのテンプレートは、 や GitLab CI/CD などの CI/CD サービス AWS CodePipeline やツールで簡単に使用できます。

次の図は、インフラストラクチャプロビジョニングの DPA アーキテクチャを示しています。CI/CD パイプラインテンプレートを使用して、Terraform、CodePipeline、および を使用してインフラストラクチャをプロビジョニングします AWS CDK。



![インフラストラクチャプロビジョニング用の DPA アーキテクチャ。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/devops-pipeline-accelerator/images/DPA-building-blocks-iac.png)


次の図は、Terraform ベースのアプリケーションのリファレンスパイプラインを示しています。このパイプラインは、Terraform エントリポイントを消費します。デプロイ後のステージの最後に、コードはステージング環境と本番環境にデプロイするためのリリースパイプラインに入ります。



![Terraform ベースのアプリケーションのリファレンスパイプライン](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/devops-pipeline-accelerator/images/DPA-reference-pipeline-terraform.png)


インフラストラクチャのプロビジョニングに DPA を使用する場合は、次の点に注意してください。
+ リポジトリで発生するイベントのタイプは、パイプラインの構築に影響します。たとえば、 `pull`リクエストは にリソースをプロビジョニングしません AWS クラウド。ただし、`pull`リクエストがメインブランチにマージされると、パイプラインはリソースを にプロビジョニングします AWS クラウド。
+ パイプラインは、[tfsec](https://aquasecurity.github.io/tfsec/v1.28.4/)、[Checkov](https://www.checkov.io/1.Welcome/What%20is%20Checkov.html)、[Terrascan](https://runterrascan.io/docs/) などのセキュリティスキャンツールを使用して、Terraform パイプラインがデプロイに進む前にセキュリティコントロールを適用します。CloudFormation の場合、パイプラインは [cfn\_nag](https://github.com/stelligent/cfn_nag) と [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) も使用します。の場合 AWS CDK、パイプラインは [cdk-nag](https://github.com/cdklabs/cdk-nag) も使用します。
+ DPA は専用の Docker イメージを作成し、Amazon ECR リポジトリでホストします。これらの Docker イメージには、Terraform CLI、 AWS CLI Tool AWS CDK kit などのツールが含まれています。パイプラインは、選択した CI/CD ソリューションに関係なく、ランタイム中にこれらのツールを使用します。