Skip to content

5. CI/CDパイプラインの実行

Qmonus Value Stream に登録した CI/CD パイプラインを実行し、API Backend をデプロイします。

5-1. AssemblyLineの確認(aws-shared-infra)

aws-shared-infra の AssemblyLine を確認して、登録された CI/CD パイプラインの内容を確認してみましょう。

AssemblyLineの詳細画面

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 を実行するためのパラメータを設定するために利用できます。

  1. AssemblyLine の Pipeline Stages で deploy を選択します。

  2. 画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。空欄の場合は続けて Deployment Config を編集し、パラメータを設定する必要があります。

    Deployment Configの登録(aws-shared-infra)手順

  3. EDIT DEPLOYMENT CONFIG ボタンを押下し、表示される Edit Deployment Config ダイアログで、設定が必要なパラメータを入力します。

    今回設定する必要のあるパラメータは、以下の通りです。

    パラメータ説明
    subnet1AvailabilityZone1つめのサブネットを所属させるアベイラビリティゾーン名
    subnet2AvailabilityZone2つめのサブネットを所属させるアベイラビリティゾーン名。subnet1AvailabilityZone とは異なるアベイラビリティゾーン名を指定してください。
    rdsrdsEngineVersionAmazon 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

Deployment Configの登録(aws-shared-infra)手順

  1. SAVE ボタンを押下し、ダイアログを閉じます。

  2. Pipeline Stages deploy の画面下部のパラメータ一覧が、すべて青色になっていることを確認します。

5-3. AssemblyLineの実行(aws-shared-infra)

aws-shared-infra の AssemblyLine を実行し、リソースを AWS にデプロイします。

  1. 手順2-2でコピーした Git コミットのハッシュ値を確認します。

  2. 画面上部の Input Parameters に以下を入力し、RUN ボタンを押下して AssemblyLine を実行します。

    • gitRevision: Gitコミットのハッシュ値

5-4. AssemblyLineの実行結果の確認(aws-shared-infra)

AssemblyLine を実行すると、自動的に AssemblyLine の進捗画面に遷移します。この画面で、AssemblyLine のステータス、ログ、イベントといった AssemblyLine の進捗を確認できます。

1. ステータスの確認

  • Pipelines (Stages) に、各 Pipeline のステータスが表示されます。
  • 表示されている deploy カードを選択することで、deploy Pipeline の中で実行される Task のステータスを確認できます。

AssemblyLineの実行結果の確認(aws-shared-infra)手順

  • すべての Task および Pipeline のステータスが完了になると、AssemblyLine の実行が完了します。

AssemblyLineの実行結果の確認(aws-shared-infra)手順

TIP

AssemblyLine の実行には10分程度かかりますが、リアルタイムで状況が反映されます。実行が完了するまでお待ちください。

2. ログの確認

  • ページ下部の Timeline に、各 Pipeline および Task の詳細が表示されます。
  • Task 名を選択すると、Task の中で実行済みおよび実行中の Step が表示されます。
  • Step 名を選択すると、Step の中で実行された処理のログを確認できます。

AssemblyLineの実行結果の確認(aws-shared-infra)手順

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 パイプラインの内容を確認してみましょう。

  1. 左メニューから AssemblyLine を選択します。

    AssemblyLineの確認(aws-api-backend)手順

  2. AssemblyLine 一覧画面に移動したら、一覧より api-backend の AssemblyLine を選択します。

  3. AssemblyLine が表示されたら、DETAIL ボタンをクリックして AssemblyLine 詳細画面へ移動します。

AssemblyLineの確認(aws-api-backend)手順

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 の実行が完了することになります。

AssemblyLineの確認(aws-api-backend)手順

5-7. ECR リポジトリのエンドポイントのコピー

aws-shared-infra の AssemblyLine によって作成された ECR リポジトリのエンドポイントをコピーします。この値は、このあと aws-api-backend の AssemblyLine を実行する際に必要となります。以下の手順に従ってエンドポイントをコピーしてください。

  1. AWSマネジメントコンソールにログインします。
  2. 画面上部の検索欄に リポジトリ と入力し、検索結果一覧に リポジトリ(Elastic Container Registry の機能) が表示されたらクリックします。
  3. 作成されたリポジトリの URI の、リポジトリ名を含まないパス(例: xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com)をコピーします。この値は後ほど利用するので、値をテキストエディタなどに貼り付けておいてください。
  4. 作成されたリポジトリのリポジトリ名をコピーします。この値は後ほど利用するので、値をテキストエディタなどに貼り付けておいてください。

AssemblyLineの確認(aws-api-backend)手順

5-8. Aurora MySQL DB クラスタのライターエンドポイントのコピー

Aurora MySQL DB クラスタのライターエンドポイントの値を確認します。この値は、このあと aws-api-backend の AssemblyLine を実行する際に必要となります。以下の手順に従ってライターエンドポイントをコピーしてください。

  1. AWSマネジメントコンソールにログインします。
  2. 画面上部の検索欄に RDS と入力し、検索結果一覧に RDS(マネージド型のリレーショナルデータベースサービス) が表示されたらクリックします。
  3. 画面左のメニュー一覧より データベース を選択してデータベース一覧画面に移動します。

AssemblyLineの確認(aws-api-backend)手順

  1. 作成された DB クラスタを選択します。

AssemblyLineの確認(aws-api-backend)手順

  1. 接続とセキュリティ タブの エンドポイント から、タイプライター になっている エンドポイント名 をコピーします。この値は後ほど利用するので、値をテキストエディタなどに貼り付けておいてください。

AssemblyLineの確認(aws-api-backend)手順

5-9. Aurora MySQL DB インスタンスのマスターパスワードが格納された Secrets Manager シークレットの ARN のコピー

Aurora MySQL DB インスタンスのマスターパスワードが格納された Secrets Manager シークレットの ARN の値を確認します。この値は、このあと aws-api-backend の AssemblyLine を実行する際に必要となります。以下の手順に従って ARN をコピーして下さい。

  1. AWSマネジメントコンソールにログインします。
  2. 画面上部の検索欄に Secrets Manager と入力し、検索結果一覧に Secrets Manager が表示されたらクリックします。
  3. 作成されたシークレットを選択します。
  4. シークレットの詳細 から、シークレットの ARN をコピーします。この値は後ほど利用するので、値をテキストエディタなどに貼り付けておいてください。

5-10. Deployment Configの登録(aws-api-backend)

aws-api-backend の AssemblyLine を実行するために Deployment Config を登録します。 手順は、先に行った aws-shared-infra の Deployment Config の登録と同様です。

  1. AssemblyLine の Pipeline Stages で build カードを選択します。

  2. 画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。これらの赤くなっている空欄の箇所のパラメータを Deployment Config で設定します。

Deployment Configの登録(aws-api-backend)手順

  1. 同様に、Pipeline Stages で deploy カードを選択し、画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。

  2. 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アプリケーションが利用するポート番号
    appRunnerServiceCustomDomainApp Runner サービスにリンクするカスタムドメイン
    dnsZoneId事前に用意した Route 53 ホストゾーンのホストゾーン ID
    mysqlDatabaseName新たに作成する MySQL のデータベース名
    mysqlUserName新たに作成する MySQL のユーザ名
    pathToContextソースディレクトリから Dockerfile のあるディレクトリへの相対パス
    本チュートリアルでは todo-app/backend を指定してください
    env1API 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

Deployment Configの登録(aws-api-backend)手順

  1. SAVE ボタンを押下し、ダイアログを閉じます。

  2. Pipeline Stages で build カードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。

  3. Pipeline Stages で deploy カードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。

5-11. AssemblyLineの実行(aws-api-backend)

aws-api-backend の AssemblyLine を実行し、リソースを aws にデプロイします。

  1. 手順2-2でコピーした Git コミットのハッシュ値を確認します。

  2. 画面上部の 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 の実行が完了します。

AssemblyLineの実行結果の確認(aws-api-backend)手順

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 をデプロイするまでの一連の手順を体験いただきました。

チュートリアルを終了する場合は、リソースの削除手順がありますのでそちらを参考にリソースを削除してください。 リソースの削除