

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

# がサポート AWS リージョン していないパイプラインを に作成する AWS CodePipeline
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline"></a>

*Amazon Web Services、Anand Krishna Varanasi*

## 概要
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-summary"></a>

AWS CodePipeline は、Amazon Web Services () の一連の DevOps ツールの一部である継続的デリバリー (CD) オーケストレーションサービスですAWS。さまざまなソース (バージョン管理システムやストレージソリューションなど）、 および AWS AWS パートナーからの継続的インテグレーション (CI) 製品およびサービス、オープンソース製品と統合され、アプリケーションやインフラストラクチャの迅速なデプロイのためのend-to-endのワークフローサービスを提供します。

ただし、CodePipeline はすべての でサポートされていないため AWS リージョン、 AWS CI/CD サービスを接続するオーケストレーターを非表示にしておくと便利です。このパターンでは、 AWS CodeCommit、 AWS CodeBuild、 などの AWS CI/CD サービスを使用して CodePipeline がまだサポートされていない AWS リージョン にend-to-endのワークフローパイプラインを実装する方法について説明します AWS CodeDeploy。

## 前提条件と制限事項
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント
+ AWS Cloud Development Kit (AWS CDK) CLI バージョン 2.28 以降

## アーキテクチャ
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-architecture"></a>

次の図表では、アフリカ (ケープタウン) リージョンなど、CodePipeline が適用されないリージョンで作成されたパイプラインを示しています。開発者は CodeDeploy 設定ファイル (*デプロイライフサイクルフックスクリプト*)とも呼ばれる) を CodeCommit がホストする Git リポジトリにプッシュします。(このパターンで提供されている [GitHub リポジトリ](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) を参照してください。) Amazon EventBridge ルールは、CodeBuild を自動で開始します。

CodeDeploy 設定ファイルは、パイプラインのソースステージの一部として CodeCommit から取得され、CodeBuild に転送されます。 

次のフェーズで、CodeBuild は次のタスクを実行します。 

1. アプリケーションのソースコードの TAR ファイルをダウンロードします。このファイルの名前は、 の一機能である Parameter Store を使用して設定できます AWS Systems Manager。

1. CodeDeploy 設定ファイルをダウンロードします。

1. アプリケーションソースコードと、アプリケーションタイプに固有の CodeDeploy 設定ファイルを組み合わせたアーカイブを作成します。

1. Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに対する CodeDeploy デプロイをセットアップします。

![適用されない AWS リージョンでのパイプライン作成](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/e27750de-b597-424e-b5bf-4d58dc9b60cc/images/95fc815e-a762-4142-b0fd-2a716823e498.png)


## ツール
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-tools"></a>

**AWS サービス**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) は完全管理型の構築サービスで、ソースコードのコンパイル、ユニットテストの実行、すぐに展開できるアーティファクトの生成に役立ちます。
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) は、独自のソースコントロールシステムを管理することなく、Git リポジトリを非公開で保存および管理できるバージョン管理サービスです。
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) は、Amazon EC2、オンプレミスインスタンス、 AWS Lambda 関数、または Amazon Elastic Container Service (Amazon ECS) サービスへのデプロイを自動化します。
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) は、ソフトウェアリリースのさまざまな段階を迅速にモデル化および設定し、ソフトウェアの変更を継続的にリリースするために必要なステップを自動化するのに役立ちます。
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) は、コードで AWS クラウド インフラストラクチャを定義およびプロビジョニングするのに役立つソフトウェア開発フレームワークです。

**コード**

このパターンのコードは、GitHub 内の「[CodePipeline 適用されないリージョン](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions)」リポジトリで利用できます。

## エピック
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-epics"></a>

### 開発者ワークステーションをセットアップ
<a name="set-up-your-developer-workstation"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| CLI AWS CDK をインストールします。 | 手順については、[AWS CDK ドキュメント](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites)を参照してください。 | AWS DevOps | 
| SQL クライアントをインストールします。 | ローカルコンピュータにインストールされた Git クライアントを使用してコミットを作成してから、それらのコミットを CodeCommit リポジトリにプッシュできます。Git クライアントで CodeCommit をセットアップするには、[CodeCommit のドキュメント](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html) を参照してください。 | AWS DevOps | 
| npm をインストールします。 | **npm ** のパッケージマネージャーをインストールします。詳細については、[npmドキュメント](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)を参照してください。 | AWS DevOps | 

### パイプラインのセットアップ
<a name="set-up-the-pipeline"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| コードリポジトリを複製します。 | 以下のコマンドを実行して、GitHub [CodePipeline 適用されないリージョン](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) のリポジトリをローカルマシンにクローンします。<pre>git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions</pre> | DevOps エンジニア | 
| cdk.json にパラメーターを設定します。 | `cdk.json` セクションで、次のパラメーターの値を指定します。<pre>"pipeline_account":"XXXXXXXXXXXX",<br />"pipeline_region":"us-west-2",<br />"repo_name": "app-dev-repo",<br />"ec2_tag_key": "test-vm",<br />"configName" : "cbdeployconfig",<br />"deploymentGroupName": "cbdeploygroup",<br />"applicationName" : "cbdeployapplication",<br />"projectName" : "CodeBuildProject"</pre><br />各パラメータの意味は次のとおりです。+ `pipeline_account` は、パイプラインが構築される AWS アカウント です。<br />+ `pipeline_region` は、パイプラインが構築される AWS リージョン です。<br />+ コードリポジトリの名前 ( など)。<br />+ `ec2_tag_key` は、コードをデプロイする Amazon EC2 インスタンスにアタッチされたタグです。<br />+ `configName` はCodeDeploy コンフィギュレーションファイルの名前です<br />+ CodeDeploy デプロイグループの名前。<br />+ `applicationName` はCodeDeploy アプリケーション名です。<br />+ `projectName` はCodeBuild プロジェクト名です。 | AWS DevOps | 
|  AWS CDK コンストラクトライブラリをセットアップします。 | クローンされた GitHub リポジトリで、次のコマンドを使用して AWS CDK コンストラクトライブラリをインストールし、アプリケーションを構築し、合成してアプリケーションの AWS CloudFormation テンプレートを生成します。<pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | AWS DevOps | 
| サンプル AWS CDK アプリケーションをデプロイします。 | 適用されないリージョン (`af-south-1` など)で次のコマンドを実行してコードをデプロイします。<pre>cdk deploy</pre> | AWS DevOps | 

### CodeDeploy の CodeCommit リポジトリをセットアップします
<a name="set-up-the-acc-repository-for-acd"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| アプリケーションの CI/CD をセットアップします。 | `cdk.json` ファイルに指定された CodeCommit リポジトリを複製して (デフォルトで `app-dev-repo` と呼ばれ)、アプリケーションの CI/CD パイプラインを設定します。<pre>git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo</pre><br />リポジトリ名とリージョンは、`cdk.json` ファイルに入力した値によって異なります。 | AWS DevOps | 

### パイプラインを削除します。
<a name="test-the-pipeline"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| デプロイインストラクションを使用してパイプラインをテストします。 | GitHub [CodePipelineサポートされていないリージョン](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) リポジトリの `CodeDeploy_Files` フォルダには、CodeDeploy にアプリケーションをデプロイするように指示するサンプルファイルが含まれています。`appspec.yml` ファイルは、アプリケーションデプロイのフローを制御するフックを含む CodeDeploy 設定ファイルです。サンプルファイル `index.html`、`start_server.sh`、`stop_server.sh`、及び `install_dependencies.sh` を使用して、Apache でホストされているウェブサイトを更新します。これらは例です。GitHub リポジトリのコードを使用して、あらゆるタイプのアプリケーションをデプロイします。ファイルが CodeCommit リポジトリにプッシュされる場合、非表示のパイプラインが自動的に開始されます。デプロイ結果については、CodeBuild コンソールと CodeDeploy コンソールの個々のフェーズの結果を確認します。 | AWS DevOps | 

## 関連リソース
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-resources"></a>
+ [開始方法](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites) (AWS CDK ドキュメント)
+ [( AWS Cloud Development Kit (AWS CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US)AWS Workshop Studio) の概要
+ [AWS CDK ワークショップ](https://cdkworkshop.com/)