翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用してパイプラインを作成し、アーティファクトの更新をオンプレミスEC2インスタンスにデプロイする CodePipeline
作成者: Akash Kumar (AWS)
環境:PoC またはパイロット | ソース: DevOps | ターゲット: Amazon EC2/オンプレミス |
R タイプ: リホスト | テクノロジー: DevOps、モダナイゼーション、ウェブおよびモバイルアプリ | AWS サービス: AWS CodeBuild; AWS CodeCommit; AWS CodeDeploy; AWS CodePipeline |
[概要]
このパターンでは、Amazon Web Services (AWS) クラウドでパイプラインを作成し、更新されたアーティファクトを のオンプレミスの Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにデプロイするコードサンプルと手順を示しますAWS CodePipeline。このパターンでは、継続的インテグレーションの手法に基づいています。この手法では、Git ベースのバージョン管理システムを使用してコードの構築とテストを自動化します。このパターンでは、 を使用してコードリポジトリを作成し、クローンを作成しますAWS CodeCommit。次に、 を使用してプロジェクトを作成し、ソースコードを設定しますAWS CodeBuild。最後に、 を使用してアプリケーションを作成し、オンプレミスEC2インスタンスのターゲット環境を設定しますAWS CodeDeploy。
前提条件と制限
前提条件
アクティブなAWSアカウント
デプロイ中にEC2インスタンスを識別するためのユーザー定義タグ
EC2 インスタンスにインストールされた CodeDeploy エージェント
EC2 インスタンスにインストールされている必要なランタイムソフトウェア
Java 開発キット用のAmazon Corretto 8
インストールされたApache Tomcat ウェブサーバー
Amazon CloudWatch Events (オプション)
ウェブサーバーにログインするキーペア (オプション)
ウェブアプリケーションの Apache Maven アプリケーションプロジェクト
アーキテクチャ
次の図は、このパターンのアーキテクチャを使用してオンプレミスEC2インスタンスにデプロイされる Java ウェブアプリケーションの例を示しています。
この図表は、次のワークフローを示しています:
デベロッパーは、プライベート CodeCommit Git リポジトリにコード変更をコミットします。
CodePipeline は CodeBuild を使用してビルドを開始し、Amazon Simple Storage Service (Amazon S3) バケットにデプロイする準備が整った新しいアーティファクトを追加します。
CodePipeline は CodeDeploy エージェントを使用して、デプロイアーティファクトの変更に必要な依存関係をプリインストールします。
CodePipeline は CodeDeploy エージェントを使用して、S3 バケットからターゲットEC2インスタンスにアーティファクトをデプロイします。有効にすると、ソースコードに変更が発生すると、 CloudWatch イベントは自動的にパイプラインを開始できます。
テクノロジースタック
CodeBuild
CodeCommit
CodeDeploy
CodePipeline
CloudWatch Events (オプション)
ツール
AWS CodeBuild は、ソースコードをコンパイルし、ユニットテストを実行し、すぐにデプロイできるアーティファクトを生成するのに役立つフルマネージド型のビルドサービスです。 は、ソースコードを CodeBuild コンパイルし、ユニットテストを実行し、すぐにデプロイできるアーティファクトを生成します。
AWS CodeCommit は、独自のソース管理システムを管理することなく、Git リポジトリをプライベートに保存および管理できるようにするバージョン管理サービスです。
AWS CodeDeploy は、Amazon Elastic Compute Cloud (Amazon EC2) またはオンプレミスインスタンス、AWSLambda 関数、または Amazon Elastic Container Service (Amazon ECS) サービスへのデプロイを自動化します。
AWS CodePipeline は、ソフトウェアリリースのさまざまな段階を迅速にモデル化して設定し、ソフトウェアの変更を継続的にリリースするために必要なステップを自動化するのに役立ちます。
コード
このパターンには、以下の添付ファイルが含まれます。
buildspec.yml
– このファイルは、デプロイ用のアーティファクトを構築して作成 CodeBuild するために必要なアクションを指定します。appspec.yml
– このファイルは、 がアプリケーションを作成し、オンプレミスEC2インスタンスのターゲット環境を設定する CodeDeploy ために必要なアクションを指定します。install_dependencies.sh
– このファイルは Apache Tomcat ウェブサーバーの依存関係をインストールします。start_server.sh
– このファイルにより Apache Tomcat ウェブサーバーが起動します。stop_server.sh
– このファイルは Apache Tomcat ウェブサーバーを停止します。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
リポジトリを作成します。 | AWS システム管理者 | |
リポジトリをクローン作成します。 | アプリ開発者 | |
ソースコードをリモートリポジトリにプッシュします。 |
| アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
ビルドプロジェクトを作成します。 |
| AWS 管理者、アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
アプリケーションの作成 |
| AWS システム管理者、アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
パイプラインを作成します。 |
| AWS システム管理者、アプリ開発者 |
関連リソース
添付ファイル
このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip」