Appearance
5. CI/CDパイプラインの実行
Qmonus Value Stream に登録した CI/CD パイプラインを実行し、API Backend をデプロイします。
5-1. AssemblyLineの確認(aws-shared-infra)
aws-shared-infra
の AssemblyLine を確認して、登録された CI/CD パイプラインの内容を確認してみましょう。
Pipeline Stages を確認すると、deploy
Pipeline が存在していることがわかります。この deploy
Pipeline は、本チュートリアルで選択した構成(Architecture, Option)に基づいて生成された、aws-shared-infra
用のクラウドリソースをデプロイする Pipeline になります。 aws-shared-infra
の AssemblyLine は、この deploy
Pipeline のみから構成されています。このため、この AssemblyLine を実行すると deploy
Pipeline が実行され、deploy
Pipeline の実行が完了すると AssemblyLine の実行が完了することになります。
5-2. Deployment Configの登録(aws-shared-infra)
aws-shared-infra
の AssemblyLine を実行するために Deployment Config を登録します。 Deployment Config は AssemblyLine の実行に必要なパラメータです。
以下の手順に従って aws-shared-infra
の AssemblyLine の Deployment Config を登録してください。
Deployment Config とは
Deployment Config とは、Deployment に対して定義可能な Key-Value 形式のパラメータです。 各環境ごとにアプリケーションに必要なパラメータや、AssemblyLine を実行するためのパラメータを設定するために利用できます。
AssemblyLine の Pipeline Stages で
deploy
を選択します。画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。空欄の場合は続けて Deployment Config を編集し、パラメータを設定する必要があります。
EDIT DEPLOYMENT CONFIG
ボタンを押下し、表示される Edit Deployment Config ダイアログで、設定が必要なパラメータを入力します。今回設定する必要のあるパラメータは、以下の通りです。
パラメータ 説明 subnet1AvailabilityZone 1つめのサブネットを所属させるアベイラビリティゾーン名 subnet2AvailabilityZone 2つめのサブネットを所属させるアベイラビリティゾーン名。 subnet1AvailabilityZone
とは異なるアベイラビリティゾーン名を指定してください。rdsrdsEngineVersion Amazon Aurora MySQLのエンジンバージョン番号。MySQL 8.0互換のエンジンバージョンのみ指定できます。利用可能なバージョンは aws rds describe-db-engine-versions
コマンドで確認できます。
以下のようにパラメータを入力します。入力内容は適宜読み替えてください。
yaml
subnet1AvailabilityZone: ap-northeast-1a
subnet2AvailabilityZone: ap-northeast-1c
rdsEngineVersion: 8.0.mysql_aurora.3.05.2
SAVE
ボタンを押下し、ダイアログを閉じます。Pipeline Stages
deploy
の画面下部のパラメータ一覧が、すべて青色になっていることを確認します。
5-3. AssemblyLineの実行(aws-shared-infra)
aws-shared-infra
の AssemblyLine を実行し、リソースを AWS にデプロイします。
手順2-2でコピーした Git コミットのハッシュ値を確認します。
画面上部の Input Parameters に以下を入力し、
RUN
ボタンを押下して AssemblyLine を実行します。- gitRevision: Gitコミットのハッシュ値
5-4. AssemblyLineの実行結果の確認(aws-shared-infra)
AssemblyLine を実行すると、自動的に AssemblyLine の進捗画面に遷移します。この画面で、AssemblyLine のステータス、ログ、イベントといった AssemblyLine の進捗を確認できます。
1. ステータスの確認
- Pipelines (Stages) に、各 Pipeline のステータスが表示されます。
- 表示されている
deploy
カードを選択することで、deploy
Pipeline の中で実行される Task のステータスを確認できます。
- すべての Task および Pipeline のステータスが完了になると、AssemblyLine の実行が完了します。
TIP
AssemblyLine の実行には10分程度かかりますが、リアルタイムで状況が反映されます。実行が完了するまでお待ちください。
2. ログの確認
- ページ下部の Timeline に、各 Pipeline および Task の詳細が表示されます。
- Task 名を選択すると、Task の中で実行済みおよび実行中の Step が表示されます。
- Step 名を選択すると、Step の中で実行された処理のログを確認できます。
3. イベントの確認
- 画面右上の
EVENTS
ボタン、もしくは Pipeline および Task カード上の虫眼鏡マーク🔎 から、Pipeline および Task のイベントのログを確認できます。AssemblyLine の実行に失敗した場合などは、原因を分析するためにこちらのログを参照してください。
5-5. 作成されたリソースの確認
Task および Pipeline のステータスがすべて完了となり、AssemblyLine の実行が完了したら、AWS にリソースが作成されたかを確認します。
AWSマネジメントコンソールにログイン後に、Provisioning Target 設定時に アカウントIDにあるリソースを確認し、以下の種類のリソースが生成されていればデプロイは完了です。
VPC
サブネット(2 つ)
インターネットゲートウェイ
ルートテーブル
セキュリティグループ
サブネットグループ
Aurora MySQL DB クラスタ
Aurora MySQL DB インスタンス(2 つ)
ECR リポジトリ
Secrets Manager シークレット
IAM ロール
以上で、aws-shared-infra
の AssemblyLine に関する作業は完了です。 続いて、aws-api-backend
の AssemblyLine を実行して、aws-shared-infra
によって作成されたクラウドリソース上に API Backend をデプロイする作業を進めます。
5-6. AssemblyLineの確認(aws-api-backend)
Qmonus Value Stream からリソースをデプロイできる準備が整ったので、aws-api-backend
の AssemblyLine を確認して、登録された CI/CD パイプラインの内容を確認してみましょう。
左メニューから
AssemblyLine
を選択します。AssemblyLine 一覧画面に移動したら、一覧より
api-backend
の AssemblyLine を選択します。AssemblyLine が表示されたら、
DETAIL
ボタンをクリックして AssemblyLine 詳細画面へ移動します。
Pipeline Stages を確認すると build
deploy
の Pipeline が存在していることがわかります。これらの Pipeline は、本チュートリアルで選択した構成(Architecture, Option)に基づいて生成された Pipeline であり、aws-api-backend
の AssemblyLine はこれらの Pipeline から構成されています。
各 Pipeline は、それぞれ以下の機能を担っています。
build
: API Backend としてデプロイするアプリケーションのコンテナイメージをビルドする。deploy
:aws-api-backend
用のクラウドリソースをデプロイする。
また、Pipeline Stages が build
deploy
の順番で配置されていることに注目してください。このため、この AssemblyLine を実行すると、まず build
Pipeline が実行され、build
Pipeline の実行が完了すると deploy
Pipeline が実行され、deploy
Pipeline の実行が完了すると AssemblyLine の実行が完了することになります。
5-7. ECR リポジトリのエンドポイントのコピー
aws-shared-infra
の AssemblyLine によって作成された ECR リポジトリのエンドポイントをコピーします。この値は、このあと aws-api-backend
の AssemblyLine を実行する際に必要となります。以下の手順に従ってエンドポイントをコピーしてください。
- AWSマネジメントコンソールにログインします。
- 画面上部の検索欄に
リポジトリ
と入力し、検索結果一覧にリポジトリ(Elastic Container Registry の機能)
が表示されたらクリックします。 - 作成されたリポジトリの URI の、リポジトリ名を含まないパス(例: xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com)をコピーします。この値は後ほど利用するので、値をテキストエディタなどに貼り付けておいてください。
- 作成されたリポジトリのリポジトリ名をコピーします。この値は後ほど利用するので、値をテキストエディタなどに貼り付けておいてください。
5-8. Aurora MySQL DB クラスタのライターエンドポイントのコピー
Aurora MySQL DB クラスタのライターエンドポイントの値を確認します。この値は、このあと aws-api-backend
の AssemblyLine を実行する際に必要となります。以下の手順に従ってライターエンドポイントをコピーしてください。
- AWSマネジメントコンソールにログインします。
- 画面上部の検索欄に
RDS
と入力し、検索結果一覧にRDS(マネージド型のリレーショナルデータベースサービス)
が表示されたらクリックします。 - 画面左のメニュー一覧より
データベース
を選択してデータベース一覧画面に移動します。
- 作成された DB クラスタを選択します。
接続とセキュリティ
タブのエンドポイント
から、タイプ
がライター
になっているエンドポイント名
をコピーします。この値は後ほど利用するので、値をテキストエディタなどに貼り付けておいてください。
5-9. Aurora MySQL DB インスタンスのマスターパスワードが格納された Secrets Manager シークレットの ARN のコピー
Aurora MySQL DB インスタンスのマスターパスワードが格納された Secrets Manager シークレットの ARN の値を確認します。この値は、このあと aws-api-backend
の AssemblyLine を実行する際に必要となります。以下の手順に従って ARN をコピーして下さい。
- AWSマネジメントコンソールにログインします。
- 画面上部の検索欄に
Secrets Manager
と入力し、検索結果一覧にSecrets Manager
が表示されたらクリックします。 - 作成されたシークレットを選択します。
シークレットの詳細
から、シークレットの ARN
をコピーします。この値は後ほど利用するので、値をテキストエディタなどに貼り付けておいてください。
5-10. Deployment Configの登録(aws-api-backend)
aws-api-backend
の AssemblyLine を実行するために Deployment Config を登録します。 手順は、先に行った aws-shared-infra
の Deployment Config の登録と同様です。
AssemblyLine の Pipeline Stages で
build
カードを選択します。画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。これらの赤くなっている空欄の箇所のパラメータを Deployment Config で設定します。
同様に、Pipeline Stages で
deploy
カードを選択し、画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。EDIT DEPLOYMENT CONFIG
ボタンを押下し、表示される Edit Deployment Config ダイアログで、設定が必要なパラメータを入力します。今回設定する必要のあるパラメータは、以下の通りです。
パラメータ 説明 containerRegistry 手順5-7 でコピーした、リポジトリの URI の、リポジトリ名を含まないパス imageRegistryPath 手順5-7 でコピーした、リポジトリの URI の、リポジトリ名を含まないパス imageShortName 手順5-7 でコピーしたリポジトリ名 rdsEndpoint 手順5-8 でコピーしたライターエンドポイント rdsMasterPasswordSecretArn 手順5-9 でコピーした ARN appRunnerServicePort アプリケーションが利用するポート番号 appRunnerServiceCustomDomain App Runner サービスにリンクするカスタムドメイン dnsZoneId 事前に用意した Route 53 ホストゾーンのホストゾーン ID mysqlDatabaseName 新たに作成する MySQL のデータベース名 mysqlUserName 新たに作成する MySQL のユーザ名 pathToContext ソースディレクトリから Dockerfile のあるディレクトリへの相対パス
本チュートリアルではtodo-app/backend
を指定してくださいenv1 API Backend のアプリケーションのデプロイに必要な環境変数
本チュートリアルではskip-verify
を指定してください
TIP
env1
は、本チュートリアルで使用するサンプルアプリケーションを動作させるために必要な設定です。 自分のアプリケーションをデプロイする場合、このパラメータは必須ではありません。
以下のようにパラメータを入力します。入力内容は適宜読み替えてください。
yaml
containerRegistry: XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com
imageRegistryPath: XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com
imageShortName: qvs-aws-shared-infra-repository
rdsEndpoint: qvs-db-cluster-XXXXXXXXXXXXXXXXXXXXXXXXX.cluster-xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
rdsMasterPasswordSecretArn: arn:aws:secretsmanager:ap-northeast-1:XXXXXXXXXXXX:secret:qvs-aws-shared-infra-db-master-password-XXXXXXXXXXXXXXXXXXXXXXXXX-ZZZZZZ
appRunnerServicePort: "80"
appRunnerServiceCustomDomain: api.vsdev.axis-dev.io
dnsZoneId: XXXXXXXXXXXXXXXXXXXX
mysqlDatabaseName: database
mysqlUserName: db_user
pathToContext: todo-app/backend
env1: skip-verify
SAVE
ボタンを押下し、ダイアログを閉じます。Pipeline Stages で
build
カードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。Pipeline Stages で
deploy
カードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。
5-11. AssemblyLineの実行(aws-api-backend)
aws-api-backend
の AssemblyLine を実行し、リソースを aws にデプロイします。
手順2-2でコピーした Git コミットのハッシュ値を確認します。
画面上部の Input Parameters に以下を入力し、
RUN
ボタンを押下して AssemblyLine を実行します。- gitRevision: Gitコミットのハッシュ値
5-12. AssemblyLineの実行結果の確認(aws-api-backend)
AssemblyLine を実行すると、自動的に AssemblyLine の進捗画面に遷移します。
1. ステータスの確認
- Pipelines (Stages) に、各 Pipeline のステータスが表示されます。
- 表示されている
build
deploy
カードを選択することで、それぞれの Pipeline の中で実行される Task のステータスを確認できます。 - すべての Task および Pipeline のステータスが完了になると、AssemblyLine の実行が完了します。
TIP
AssemblyLine の実行には10分程度かかりますが、リアルタイムで状況が反映されます。実行が完了するまでお待ちください。
以上で AssemblyLine の実行は完了です。
5-13. デプロイされたサンプルアプリケーションの実行確認
App Runner サービスにアクセスして、デプロイされたアプリケーションが実行されているかを確認します。 以下の URL にアクセスし、アプリケーションの実行確認を行ってください。
https://{App Runner サービスにリンクするカスタムドメイン}
例: https://api.vsdev.axis-dev.io
以下のように WEB ブラウザ上に API のレスポンスが表示されれば、デプロイに成功しています。
以上で、Qmonus Value Stream が提供する構成を選択して API Backend をデプロイするまでの一連の手順を体験いただきました。
チュートリアルを終了する場合は、リソースの削除手順がありますのでそちらを参考にリソースを削除してください。 リソースの削除