翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
と HashiCorp Packer を使用してパイプライン CodePipeline と AMI を作成する
作成者:Akash Kumar (AWS)
環境:PoC またはパイロット | ソース: DevOps | tターゲット:Amazon マシンイメージ (AMI) |
R タイプ:リホスト | ワークロード:その他すべてのワークロード | テクノロジー: DevOps、モダナイゼーション、ウェブおよびモバイルアプリ |
[概要]
このパターンでは、AWS を使用して Amazon Web Services (AWS) クラウドにパイプラインを作成するコードサンプルとステップ CodePipeline 、および HashiCorp Packer を使用して Amazon マシンイメージ (AMI) の両方を作成します。このパターンでは、Git ベースのバージョン管理システムでコードの構築とテストを自動化する「継続的インテグレーション」 手法に基づいています。このパターンでは、AWS を使用してコードリポジトリを作成し、クローンを作成します CodeCommit。次に、AWS を使用してプロジェクトを作成し、ソースコードを設定します CodeBuild。最後に、リポジトリにコミットされる AMI を作成します。
前提条件と制限
前提条件
アクティブなAWS アカウント
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動するための Amazon Linux AMI
HashiCorp Packer
0.12.3 以降 Amazon CloudWatch Events (オプション)
Amazon CloudWatch Logs (オプション)
アーキテクチャ
次の図表には、このパターンのアーキテクチャを使用して AMI の作成を自動化するアプリケーションコードの例を示しています。
この図表は、次のワークフローを示しています:
デベロッパーは、プライベート CodeCommit Git リポジトリにコード変更をコミットします。次に、 CodePipeline を使用してビルド CodeBuild を開始し、Amazon Simple Storage Service (Amazon S3) バケットにデプロイできる新しいアーティファクトを追加します。
CodeBuild は Packer を使用して、JSON テンプレートに基づいて AMI をバンドルおよびパッケージ化します。有効にすると、ソースコードに変更が発生すると、 CloudWatch イベントは自動的にパイプラインを開始できます。
テクノロジースタック
CodeBuild
CodeCommit
CodePipeline
CloudWatch Events (オプション)
ツール
AWS CodeBuild – AWS CodeBuild は、cloud. CodeBuild compiles your source code でフルマネージド型のビルドサービスです。ユニットテストを実行し、すぐにデプロイできるアーティファクトを生成します。
AWS CodeCommit – AWS CodeCommit は、AWS クラウドで Git リポジトリをプライベートに保存および管理できるバージョン管理サービスです。 は、独自のソース管理システムを管理する必要や、インフラストラクチャのスケーリングについて心配する必要 CodeCommit を排除します。
AWS CodePipeline – AWS CodePipeline は、ソフトウェアのリリースに必要なステップをモデル化、視覚化、自動化するために使用できる継続的な配信サービスです。
HashiCorp Packer
– HashiCorp Packer は、単一のソース設定から同一のマシンイメージの作成を自動化するためのオープンソースツールです。パッカーは軽量で、すべての主要オペレーティングシステムで動作し、複数のプラットフォーム用のマシンイメージを並行で作成します。
コード
このパターンには、以下の添付ファイルが含まれます。
buildspec.yml
– このファイルは、 CodeBuild を使用してデプロイ用のアーティファクトを構築および作成します。amazon-linux_packer-template.json
– このファイルは、パッカーを使用して Amazon Linux AMI を作成します。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
リポジトリを作成します。 | AWS システム管理者 | |
リポジトリをクローン作成します。 | アプリ開発者 | |
ソースコードをリモートリポジトリにプッシュします。 |
| アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
ビルドプロジェクトを作成します。 |
| アプリ開発者、AWS システム管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
パイプライン名 |
| アプリ開発者、AWS システム管理者 |
関連リソース
添付ファイル
このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip」