1. ハンズオン内容
- ハンズオンでは各リソースを段階的に作成していきます
※Cloud9はVSCodeとPowerShellで代用
※画像はAWS公式ページより引用
前提条件&注意事項
- 一部課金が発生します(数十円程度)。終了後は必ず削除しましょう。
- 親ページ見てない人は見てね
- CodeCommitは利用しません。GitHubを代用しますので、AWSから接続できるようご用意ください。
- ブログ内でバケット、ドメインを扱っている場合、同一名称は使わないでください。
- UIの操作は基本的にはルートアカウントを使っています。必要に応じてサービスロールを作成しています
2. Step1、S3、パイプライン作成
CodeCommitは利用しません。GitHubを代用しますのでご用意ください
※画像はハンズオンより引用
2.1. (Step1)S3
2.1.1. (Step1)S3バケット作成
| 一般的な設定 | バケットタイプ | ✅ 汎用 ⬜ ディレクトリ |
|
|---|---|---|---|
| 🔴バケット名 | handson-lab.click | 自分の保有ドメインを使うこと。直接S3ウェブサイトエンドポイントを使う場合は、ドメイン名とバケット名をする必要がある | |
| オブジェクト所有者 | - | ✅ ACL 無効 (推奨) ⬜ ACL 有効 |
デフォルト |
| オブジェクト所有者 | ✅ 希望するバケット所有者 ⬜ オブジェクトライター |
||
| このバケットのブロックパブリックアクセス設定 | 🔴パブリックアクセス | ⬜ パブリックアクセスをすべて ブロック | |
| 🔴 | ✅ 現在の設定により、このバケットとバケット内のオブジェクトが公開される可能性があることを承認します。 | これはUIのみに存在する項目 | |
| タグ - オプション | - | ||
| デフォルトの暗号化 | 暗号化タイプ | ✅ Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE-S3) ⬜ AWS Key Management Service キーを使用したサーバー側の暗号化 (SSE-KMS) ⬜ AWS Key Management Service キーを使用したデュアルレイヤーサーバー側の暗号化 (DSSE-KMS) |
KMSを選択すると設定項目が増えますがここでは割愛 |
| バケットキー | ✅ 無効にする ⬜ 有効にする |
暗号化タイプがSSE-KMSのときは有効にすることが可能 | |
| 詳細設定 | オブジェクトロック | ✅ 無効にする ⬜ 有効にする |
2.1.2. (Step1)S3バケットにファイルアップロード
- Amazon S3 > バケット > handson-lab.click > アップロード
今回はUIでアップロードします。
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 🔴ファイルとフォルダ (アップロードファイル) |
index.html | アップロードファイルはこちら | |
| 送信先 | |||
| アクセス許可 | |||
| プロパティ | ストレージクラス | ✅ スタンダード ⬜ Intelligent-Tiering ⬜ 標準 - IA ⬜ 1 ゾーン -IA ⬜ Glacier Instant Retrieval ⬜ Glacier Flexible Retrieval (旧 Glacier) ⬜ Glacier Deep Archive |
|
| サーバー側の暗号化 | ✅ 暗号化キーを指定しない ⬜ 暗号化キーを指定する |
しない場合は実質SSE-S3らしい | |
| チェックサム | |||
| タグ | |||
| メタデータ - オプション | データを検索するときに活用 |
2.1.3. (Step1)バケット設定(静的ホスティング)
- Amazon S3 > バケット > handson-lab.click > プロパティ > 静的ウェブサイトホスティング > 編集
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| バケットのバージョニング | 項目が多いので省略 | ||
| タグ | 項目が多いので省略 | ||
| デフォルトの暗号化 | 項目が多いので省略 | ||
| Intelligent-Tiering Archive 設定 | 項目が多いので省略 | ||
| サーバーアクセスのログ記録 | 項目が多いので省略 | ||
| AWS CloudTrail データイベント | 項目が多いので省略 | ||
| イベント通知 | 項目が多いので省略 | ||
| Transfer Acceleration | 項目が多いので省略 | ||
| オブジェクトロック | 項目が多いので省略 | ||
| リクエスタ支払い | 項目が多いので省略 | ||
| 静的ウェブサイトホスティング | 🔴静的ウェブサイトホスティング | ⬜ 無効にする ✅ 有効にする |
|
| ホスティングタイプ | ✅ 静的ウェブサイトをホストする ⬜ オブジェクトのリクエストをリダイレクトする |
||
| 🔴インデックスドキュメント | index.html | ||
| エラードキュメント - オプション | |||
| リダイレクトルール – オプション |
2.1.4. (Step1)バケット設定(バケットポリシー)
- Amazon S3 > バケット > handson-lab.click > アクセス許可 > バケットポリシー > 編集
バケットポリシーが複雑になっているが、理由を忘れてしまった。全体通して必要になったポリシーと他バケットで使いまわしを想定していろいろマージしたんだと思う。
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| アクセス許可(タブ) | ブロックパブリックアクセス (バケット設定) | ||
| 🔴バケットポリシー | ここ参照 | バケット名は修正すること | |
| オブジェクト所有者 | |||
| アクセスコントロールリスト (ACL) | |||
| Cross-Origin Resource Sharing (CORS) |
2.1.5. (Step1)バケット動作確認
ブラウザで http://handson-lab.click.s3-website-ap-northeast-1.amazonaws.com/ にアクセスし、
Hello, AWS World!!
が表示されればOK。URLのバケット名は適宜読み替えてね
2.2 (Step1)パイプライン作成
- デベロッパー用ツール > CodePipeline > パイプライン > 新規のパイプラインを作成する
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 🔴Category | カスタムパイプラインを構築する | ||
| パイプラインの設定 | 🔴パイプライン名 | aws-code-services-cicd-s3 | ここはバケットを作成するパイプライン名と勘違い注意 |
| 実行モード | ⬜優先済み ✅キュー ⬜並行 |
||
| 🔴サービスロール | ⬜新しいサービスロール ✅既存のサービスロール |
||
| 🔴ロールの ARN | handson-pipeline-service-role | 別のハンズオンで作ったものを利用します | |
| 高度な設定 | 🔴アーティファクトストア | ⬜デフォルトのロケーション ✅カスタムロケーション |
デフォルトのロケーションはS3です |
| 🔴バケット | codepipeline-ap-northeast-artifacts-moritokey | 出力アーティファクト先を固定します | |
| 暗号化キー | ✅デフォルトの AWS マネージド型キー ⬜カスタマーマネージド型キー |
||
| 変数 | |||
| ソース | 🔴ソースプロバイダー | GitHub(GitHubアプリ経由) | GitHub OAuth(旧方式)は非推奨 |
| 🔴接続 | github4 | 作った接続を選択。接続の作り方はこちら | |
| 🔴リポジトリ名 | aws-code-services-cicd | 目的のリポジトリを選択 | |
| 🔴デフォルトブランチ | main | 目的のブランチを選択 | |
| 出力アーティファクト形式 | CodePipeline のデフォルト | ||
| ✅ステージ障害時の自動再試行を有効にする | |||
| ウェブフックイベント | デフォルトでOK | ||
| 構築する - オプショナル | ビルドステージをスキップする | ||
| 構築する - オプショナル | テストステージをスキップする | ||
| デプロイ | 🔴デプロイプロバイダー | Amanzon S3 | |
| 🔴リージョン | 東京 | ||
| 入力アーティファクト | SourceArtifact | ||
| 🔴バケット | handson-lab.click | 今回はリポジトリ内のファイルがすべてS3に展開される想定 | |
| S3 オブジェクトキー | 個別のファイルをデプロイするオプションではない。zipでデプロイするときに必要なオプション | ||
| 🔴 | ✅デプロイする前にファイルを抽出する | SourceArtifactはzip化されているため必要 | |
| 追加設定 | KMS 暗号化キー ARN - オプショナル | ||
| 固定 ACL - オプショナル | |||
| キャッシュコントロール - オプショナル | |||
| 出力ファイル名 | ✅ステージ障害時の自動ロールバックを設定 |
この設定ではリポジトリ内のファイル全てがS3バケットに展開されます。
動作確認として、バケット内にindex.htmlがあればOKです。
index.htmlをアップデートすれば自動でデプロイされますが、手順は省略します。
このパイプラインは用済みとなります。
3. Step2、EC2作成
EC2を作成します
※画像はハンズオンより引用
3.1. (Step2)ネットワークの作成
- VPC > お使いの VPC > VPC を作成
ハンズオンでは触れられていないと思うのですが、事前にネットワークの作成が必要です。
作成するリソースにVPCなどを選択し、必要なものを全部作ってしまいましょう。手順は簡単なので省略します。
3.2. (Step2)IAMロールの作成
- IAM > ロール > ロールを作成
EC2がS3にアクセスするためのロールを作成します。
画面名:信頼されたエンティティを選択
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 信頼されたエンティティタイプ | 🔴 | ✅ AWS のサービス ⬜ AWS アカウント ⬜ ウェブアイデンティティ ⬜ SAML 2.0 フェデレーション ⬜ カスタム信頼ポリシー |
画面名:許可を追加
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| ユースケース | 🔴サービスまたはユースケース | EC2 | |
| 🔴ユースケース | EC2 | ||
| 🔴許可ポリシー | ✅ AmazonS3FullAccess ... |
||
| 許可の境界を設定 - オプション | ✅ 許可の境界なしでロールを作成 ⬜ 許可の境界を使用して、最大ロール許可を制御 |
画面名:名前、確認、および作成
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| ロールの詳細 | 🔴ロール名 | handson-ec2-exec-role | |
| 説明 | Allows EC2 instances to call AWS services on your behalf. | ||
| 信頼ポリシー | 省略 | ||
| 許可ポリシーの概要 | AmazonS3FullAccess | ||
| タグを追加 - オプション |
3.3. (Step2)EC2用セキュリティグループ作成
- EC2 > セキュリティグループ > セキュリティグループを作成
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 基本的な詳細 | 🔴セキュリティグループ名 | handson-ec2-sg | |
| 🔴説明 | handson-ec2-sg | 必須です | |
| 🔴VPC | handson-vpc | ||
| インバウンドルール1 | 🔴タイプ | SSH | |
| プロトコル | TCP | ||
| ポート範囲 | 22 | ||
| 🔴ソース | 0.0.0.0/0 | 可能なら制限した方がよい | |
| 説明 - オプション | |||
| インバウンドルール2 | 🔴タイプ | HTTP | |
| プロトコル | TCP | ||
| ポート範囲 | 80 | ||
| 🔴ソース | 0.0.0.0/0 | 可能なら制限した方がよい | |
| 説明 - オプション | |||
| アウトバウンドルール | |||
| タグ - オプション |
3.4. (Step2)EC2作成
- EC2 > インスタンス > インスタンスを起動
画面名:インスタンスを起動
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 基本的な詳細 | 🔴セキュリティグループ名 | handson-ec2-sg | |
| 🔴説明 | handson-ec2-sg | 必須です | |
| 🔴VPC | handson-vpc | ||
| インバウンドルール1 | 🔴タイプ | SSH | |
| プロトコル | TCP | ||
| ポート範囲 | 22 | ||
| 🔴ソース | 0.0.0.0/0 | 可能なら制限した方がよい | |
| 説明 - オプション | |||
| インバウンドルール2 | 🔴タイプ | HTTP | |
| プロトコル | TCP | ||
| ポート範囲 | 80 | ||
| 🔴ソース | 0.0.0.0/0 | 可能なら制限した方がよい | |
| 説明 - オプション | |||
| アウトバウンドルール | |||
| タグ - オプション | 🔴 | Name=Web | こことデプロイグループを合わせる。このWebという値を持つEC2にデプロイされる仕組みと思われる |
3.5. (Step2)動作確認
- EC2へインスタンスコネクト接続
- httpdインストール
sudo yum install -y sudo yum install httpd -y sudo systemctl start httpd.service sudo systemctl enable httpd.service sudo systemctl status httpd.service # active (running)が表示されればOK - ブラウザで http://
EC2のパブリック IPv4 アドレス/ にアクセスして、以下が表示されればOKIt works!
3.6. CodeDeployエージェントインストール
sudo dnf install -y ruby wget
cd /home/ec2-user
wget https://aws-codedeploy-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/latest/install # 日本リージョン用
chmod +x ./install
sudo ./install auto
sudo systemctl enable codedeploy-agent
sudo systemctl status codedeploy-agent # active (running)が表示されればOK
4. Step3、CodeBuild
※画像はハンズオンより引用
4.1. (Step3)Artifact用バケット作成
以前作ったcodepipeline-ap-northeast-artifacts-moritokeyを使います。ない人は作りましょう。特に設定はありません。
4.2. (Step3)CodeBuild用サービスロール作成
ロール名:handson-h4b-codebuild-service-role、ユースケース:CodeBuild
カスタムポリシー:handson-codebuild-all-in
マネージドポリシー:AWSCodeDeployDeployerAccess
ロールを自動生成した結果、うごかず苦労したので、事前に作りました。
4.3. (Step3)CodeBuild作成
- デベロッパー用ツール > CodeBuild > ビルドプロジェクト > ビルドプロジェクトを作成する
画面名:ビルドプロジェクトを作成する
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| プロジェクトの設定 | 🔴プロジェクト名 | h4b-handson | |
| プロジェクトタイプ | ✅ デフォルトプロジェクト ⬜ ランナープロジェクト |
||
| 追加設定 | 説明 - オプショナル | ||
| パブリックビルドアクセス - オプショナル | ⬜ パブリックビルドアクセスを有効化 | ||
| ⬜ ビルドバッジを有効にする | |||
| 同時ビルド制限の有効化 - オプショナル | ⬜ このプロジェクトが開始できる同時ビルドの数を制限する | ||
| Tags | キー: 値: |
||
| ソース | 🔴ソースプロバイダ | GitHub | |
| 🔴 | ✅ このプロジェクトにのみオーバーライド認証情報を使用 | これにチェックを入れると以前作ったCodeConnectionの設定を使うことができる | |
| 🔴接続 | github4 | 以前作ったGithub接続用の「接続」を選択する | |
| ✅ codebuild:source タグが付いたシークレットのみを表示 | |||
| リポジトリ |
✅ GitHub アカウントのリポジトリ ⬜ パブリックリポジトリ ⬜ GitHub スコープウェブフック |
||
| 🔴リポジトリの URL | https://github.com/aws-hands-on-training/aws-code-services-cicd | ||
| ソースバージョン - オプショナル | |||
| 追加設定 | Git のクローンの深さ - オプショナル | 1 | |
| git サブモジュールを有効にする | ⬜ git サブモジュールを有効にする | ||
| プライマリソースのウェブフックイベント | ウェブフック - オプショナル | ✅ コードの変更がこのレポジトリにプッシュされるたびに再構築する | |
| ビルドタイプ | ✅ 単一ビルド ⬜ バッチビルド |
||
| コメント承認 | ✅ ALL_PULL_REQUEST ⬜ ... |
||
| 承認者ロール | ✅ GITHUB_WRITE ✅ GITHUB_MAINTAIN ✅ GITHUB_ADMIN |
||
| ウェブフックイベントフィルタグループ | フィルタグループ 1 | イベントタイプ - オプショナル | |
| 追加設定 | 手動作成 - オプショナル | ⬜このリポジトリのウェブフックを GitHub コンソールで手動で作成します。 | |
| 環境 | プロビジョニングモデル | ✅ オンデマンド ⬜ リザーブドキャパシティ |
|
| 環境イメージ | ✅ マネージド型イメージ ⬜ カスタムイメージ |
||
| コンピューティング | ✅ EC2 ⬜ Lambda |
||
| 実行モード | ✅ コンテナ ⬜ インスタンス |
||
| オペレーティングシステム | ✅ Amazon Linux ⬜ Ubuntu |
||
| ランタイム | ✅ Standard | ||
| 🔴イメージ | ✅ aws/codebuild/amazonlinux-x86_64-standard:5.0 ⬜ ... |
standardの1番新しいものを選択すればOK。standard:correttoはJAVAのアプリを使うときに選択する | |
| 🔴イメージのバージョン | ✅ aws/codebuild/amazonlinux-x86_64-standard:5.0-25.06.25 ⬜ ... |
standardの1番新しいものを選択すればOK。 | |
| ⬜ GPU 強化コンピューティングを使用 | |||
| 🔴サービスロール | ⬜ 新しいサービスロール ✅ 既存のサービスロール |
||
| 🔴ロールの ARN | |||
| ✅ AWS CodeBuild にこのサービスロールの編集を許可し、このビルドプロジェクトでの使用を可能にする。 | |||
| 追加設定 | 自動再試行の上限 | 値は省略。デフォルトでOK | |
| タイムアウト | 値は省略。デフォルトでOK | ||
| キュータイムアウト | 値は省略。デフォルトでOK | ||
| 特権付与 | 値は省略。デフォルトでOK | ||
| レポート自動検出 | 値は省略。デフォルトでOK | ||
| 自動検出ディレクトリ - オプショナル | 値は省略。デフォルトでOK | ||
| 証明書 | 値は省略。デフォルトでOK | ||
| VPC | 値は省略。デフォルトでOK | ||
| コンピューティング | 8 GiB メモリ、4 vCPU | ||
| Docker server configuration | 値は省略。デフォルトでOK | ||
| Docker server compute type | 値は省略。デフォルトでOK | ||
| レジストリの認証情報 - オプショナル | 値は省略。デフォルトでOK | ||
| 環境変数 | 値は省略。デフォルトでOK | ||
| ファイルシステム | 値は省略。デフォルトでOK | ||
| Buildspec | 🔴ビルド仕様 |
⬜ ビルドコマンドの挿入 ✅ buildspec ファイルを使用する |
|
| Buildspec 名 - オプショナル | |||
| バッチ設定 | ⬜ バッチ設定を定義 - オプショナル | ||
| アーティファクト | 🔴タイプ | ✅ Amazon S3 ⬜アーティファクトなし |
|
| 🔴バケット名 | codepipeline-ap-northeast-artifacts-moritokey | ||
| 名前 | 出力アーティファクトを含むバケット内のフォルダまたは圧縮ファイルの名前です。 | ||
| ⬜ セマンティックバージョニングの有効化 | |||
| パス - オプショナル | |||
| 名前空間のタイプ - オプショナル | ✅ なし ⬜ ビルドID |
||
| アーティファクトのパッケージ化 | ✅ なし ⬜ Zip |
||
| ⬜ アーティファクト暗号化の削除 | |||
| 追加設定 | 暗号化キー - オプショナル | ||
| キャッシュタイプ | ✅ キャッシュなし ⬜ Amazon S3 ⬜ ローカル"" |
||
| ログ | ✅ CloudWatch Logs - オプショナル | ||
| グループ名 - オプショナル | |||
| ストリーム名のプレフィックス - オプショナル | |||
| ✅ S3 ログ - オプショナル | |||
| バケット | |||
| パスのプレフィックス | |||
| ⬜ S3 ログの暗号化を無効にする |
5. Step4、CodeDeploy
※画像はハンズオンより引用
5.1. (Step4)CodeDeploy用サービスロール作成
- IAM > ロール
ロール名:handson-h4b-codedeploy-service-role、ユースケース:CodeDeploy
マネージドポリシー:AWSCodeDeployRole
5.2. (Step4)CodeDeployアプリケーション作成
- デベロッパー用ツール > CodeDeploy > アプリケーション > アプリケーションの作成
アプリケーションの作成
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| アプリケーションの設定 | 🔴アプリケーション名 | h4b-app | |
| 🔴コンピューティングプラットフォーム | ✅ EC2/オンプレミス ⬜ Amazon Lambda ⬜ Amazon ECS |
||
| タグ |
phases:
build:
commands:
- aws deploy push --application-name h4b-app --s3-location s3://codepipeline-ap-northeast-artifacts-moritokey/artifact.zip --source src
artifacts:
files:
- '**/*'
base-directory: src
5.2. (Step4)CodeDeployデプロイグループ作成
- デベロッパー用ツール > CodeDeploy > アプリケーション > h4b-app > デプロイグループの作成
画面名:デプロイグループの作成
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| デプロイグループ名 | 🔴デプロイグループ名の入力 | Web | ここは任意だと思う |
| 🔴サービスロール | handson-h4b-codedeploy-service-role | ||
| デプロイタイプ | ✅ インプレース ⬜ Blue/Green |
||
| 環境設定 | 🔴 | ⬜ Amazon EC2 Auto Scaling グループ ✅ Amazon EC2 インスタンス ⬜ オンプレミスインスタンス |
|
| 🔴 | キー:Name 値 - オプショナル:Web |
ここはEC2側のタグと合わせるのだと思う | |
| ⬜ オンプレミスインスタンス | |||
| AWS Systems Manager を使用したエージェント設定 | 🔴AWS CodeDeploy エージェントのインストール | ✅ なし ⬜ 1 回のみ ⬜ 今すぐ更新し、更新をスケジュール |
手動でインストールしたため「なし」 |
| デプロイ設定 | ⬜ CodeDeployDefault.OneAtATime ⬜ CodeDeployDefault.HalfAtATime ✅ CodeDeployDefault.AllAtOnce |
||
| Load balancer | 🔴 | ⬜ ロードバランシングを有効にする | |
| トリガー | |||
| アラーム | |||
| ロールバック |
✅ ロールバックを無効にする |
||
| デプロイグループタグ |
5.3. (Step4)CodeDeployデプロイグループ作成
- デベロッパー用ツール > CodeBuild > ビルドプロジェクト > h4b-handson > ビルド開始
成功するのを待ちましょう
5.4. (Step4)CodeDeployデプロイの作成
- デベロッパー用ツール > CodeDeploy > アプリケーション > h4b-app > Web
Create deployment
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| デプロイ設定 | 🔴デプロイグループ | Web | 選びましょう |
| リビジョンタイプ | ✅ アプリケーションは Amazon S3 に格納されています ⬜ アプリケーションは GitHub に格納されています |
S3でいいんだろうか? | |
| 🔴リビジョンの場所 | 選びましょう | ||
| リビジョンファイルの種類 | zip | ||
| デプロイの説明 | |||
| 追加のデプロイ動作設定 | ApplicationStop ライフサイクルイベントの障害 - オプショナル | ⬜ このインスタンス上のライフサイクルイベントの障害で、デプロイを失敗させない | |
| コンテンツオプション - オプショナル | ⬜ デプロイの失敗 ⬜ コンテンツの上書き ⬜ コンテンツの保持 |
||
| デプロイグループのオーバーライド | デプロイ設定 | ⬜ CodeDeployDefault.OneAtATime ⬜ CodeDeployDefault.HalfAtATime ✅ CodeDeployDefault.AllAtOnce |
|
| ロールバック設定の上書き | ⬜ デプロイが失敗したときにロールバックする ⬜ アラームのしきい値が一致したときにロールバックする ✅ ロールバックを無効にする |
6. Step5、CodePipeline
※画像はハンズオンより引用
6.1. (Step5)CodePipelineの作成
- デベロッパー用ツール > CodePipeline > パイプライン > パイプラインを作成する
画面名:作成オプションを選択する
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 🔴Category | カスタムパイプラインを構築する |
画面名:パイプラインの設定を選択する
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| パイプラインの設定 | 🔴パイプライン名 | aws-code-services-cicd-ec2 | |
| 実行モード | ⬜優先済み ✅キュー ⬜並行 |
||
| 🔴サービスロール | ✅新しいサービスロール ⬜既存のサービスロール |
||
| 🔴ロールの ARN | AWSCodePipelineServiceRole-ap-northeast-1-aws-code-services-cic | 別のハンズオンで作ったものを利用します | |
| 高度な設定 | 🔴アーティファクトストア | ⬜デフォルトのロケーション ✅カスタムロケーション |
デフォルトのロケーションはS3です |
| 🔴バケット | codepipeline-ap-northeast-artifacts-moritokey | 出力アーティファクト先を固定します | |
| 暗号化キー | ✅デフォルトの AWS マネージド型キー ⬜カスタマーマネージド型キー |
||
| 変数 |
画面名:ソースステージを追加する
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| ソース | 🔴ソースプロバイダー | GitHub(GitHubアプリ経由) | GitHub OAuth(旧方式)は非推奨 |
| 🔴接続 | github4 | 作った接続を選択。接続の作り方はこちら | |
| 🔴リポジトリ名 | aws-code-services-cicd | 目的のリポジトリを選択 | |
| 🔴デフォルトブランチ | main | 目的のブランチを選択 | |
| 出力アーティファクト形式 | CodePipeline のデフォルト | ||
| ✅ステージ障害時の自動再試行を有効にする | |||
| ウェブフックイベント | ウェブフック - オプショナル | ✅プッシュおよびプルリクエストイベントでパイプラインを開始します。 | デフォルトでOK |
| ウェブフックイベントフィルター - オプショナル | イベントタイプ | ||
| これらの条件でパイプラインを開始 - オプショナル | フィルタータイプ | ||
| これらの条件でパイプラインを開始しないでください - オプショナル | フィルタータイプ |
画面名:ビルドステージを追加する
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 構築する - オプショナル | 🔴プロバイダーを構築する | ⬜ コマンド ✅ その他のビルドプロバイダー |
ビルドステージをスキップする |
| 🔴 | ✅ AWS CodeBuild ⬜ AWS ECR ⬜ ジェンキンス |
||
| 🔴プロジェクト名 | h4b-handson | ||
| ⬜ buildspec オーバーライドの定義 - オプショナル | |||
| 環境変数 - オプショナル | |||
| ビルドタイプ | ✅ 単一ビルド ⬜ バッチビルド |
||
| リージョン | ✅ 東京 | ||
| 入力アーティファクト | SouceArtifact |
画面名:テストステージを追加
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| 構築する - オプショナル | テストステージをスキップする |
画面名:デプロイステージを追加する
| 大項目 | 中項目 | 選択肢 | 備考 |
|---|---|---|---|
| デプロイ | 🔴デプロイプロバイダー | AWS CodeDeploy | |
| 🔴リージョン | 東京 | ||
| 入力アーティファクト | BuildArtifact | ||
| 🔴アプリケーション名 | h4b-app | ||
| 🔴デプロイグループ | Web | ||
| 🔴 | ✅デプロイする前にファイルを抽出する | SourceArtifactはzip化されているため必要 | |
| 追加設定 | KMS 暗号化キー ARN - オプショナル | ||
| 固定 ACL - オプショナル | |||
| キャッシュコントロール - オプショナル | |||
| 出力ファイル名 | ✅ステージ障害時の自動ロールバックを設定 |
さいごに
感想です
- ロールが相変わらずわからん。githubのロールが面倒すぎる。ロールの自動作成してもgithubの権限が漏れていることがある
- コードデプロイエージェントはデフォルトでインストールされていない
- buildspec.yamlではなく、yml。appspec.yamlではなく、yml





