Appearance
5. CI/CDパイプラインの実行
Qmonus Value Stream に登録した CI/CD パイプラインを実行し、API Backend をデプロイします。
5-1. AssemblyLineの確認(gcp-shared-infra)
gcp-shared-infra の AssemblyLine を確認して、登録された CI/CD パイプラインの内容を確認してみましょう。

Pipeline Stages を確認すると、deploy Pipeline が存在していることがわかります。この deploy Pipeline は、本チュートリアルで選択した構成(Architecture, Option)に基づいて生成された、gcp-shared-infra 用のクラウドリソースをデプロイする Pipeline になります。 gcp-shared-infra の AssemblyLine は、この deploy Pipeline のみから構成されています。このため、この AssemblyLine を実行すると deploy Pipeline が実行され、deploy Pipeline の実行が完了すると AssemblyLine の実行が完了することになります。
5-2. Deployment Configの登録(gcp-shared-infra)
gcp-shared-infra の AssemblyLine を実行するために Deployment Config を登録します。 Deployment Config は AssemblyLine の実行に必要なパラメータです。
以下の手順に従って gcp-shared-infra の AssemblyLine の Deployment Config を登録してください。
Deployment Config とは
Deployment Config とは、Deployment に対して定義可能な Key-Value 形式のパラメータです。 各環境ごとにアプリケーションに必要なパラメータや、AssemblyLine を実行するためのパラメータを設定するために利用できます。
AssemblyLine の Pipeline Stages で
deployを選択します。画面下部のパラメータ一覧で、赤色となっている箇所を確認します。

画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。空欄の場合は続けて Deployment Config を編集し、パラメータを設定する必要があります。(今回はすべてのパラメータが埋まっているため、設定は必要ありません。)
5-3. AssemblyLineの実行(gcp-shared-infra)
gcp-shared-infra の AssemblyLine を実行し、リソースを Google Cloud にデプロイします。
手順2-2でコピーした Git コミットのハッシュ値を確認します。
画面上部の Input Parameters に以下を入力し、
RUNボタンを押下して AssemblyLine を実行します。- gitRevision: Gitコミットのハッシュ値
5-4. AssemblyLineの実行結果の確認(gcp-shared-infra)
AssemblyLine を実行すると、自動的に AssemblyLine の進捗画面に遷移します。この画面で、AssemblyLine のステータス、ログ、イベントといった AssemblyLine の進捗を確認できます。
1. ステータスの確認
- Pipelines (Stages) に、各 Pipeline のステータスが表示されます。
- 表示されている
deployカードを選択することで、deployPipeline の中で実行される 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. 作成されたGoogle Cloudリソースの確認
Task および Pipeline のステータスがすべて完了となり、AssemblyLine の実行が完了したら、Google Cloud にリソースが作成されたかを確認します。
Google Cloudにログイン後に、Provisioning Target 設定時に入力したプロジェクトに移動し、以下の種類のリソースで新規にリソースが作成されているかを確認します。
VPCネットワーク
サブネット
Google Kubernetes Engine(GKE)
Secret Managerシークレット
Cloud NATゲートウェイ
Cloud Router
外部静的IPアドレス
Artifact Registry
Cloud SQL for MySQL
サービスアカウント以上で、gcp-shared-infra の AssemblyLine に関する作業は完了です。 続いて、gcp-api-backend の AssemblyLine を実行して、gcp-shared-infra によって作成されたクラウドリソース上に API Backend をデプロイする作業を進めます。
AssemblyLine 結果画面に表示される Next AssemblyLine to run の項目に、次に実行する必要のある AssemblyLine へのリンクが表示されます。 今回は、次に実行する必要のある gcp-api-backend の AssemblyLine へのリンクが表示されるので、リンクをクリックして gcp-api-backend の AssemblyLine 詳細画面に移動します。
5-6. GKEへのKubernetes Namespaceの作成
本チュートリアルでは、API Backend を Kubernetes クラスタにデプロイすることになります。 そのため、まずは gcp-shared-infra の AssemblyLine によって Google Cloud に作成された Google Kubernetes Engine(GKE)クラスタに、API Backend をデプロイするための Namespace を作成します。
Google Cloudにログイン後に、Provisioning Target 設定時に入力したプロジェクトに移動します。
リソース一覧から
Kubernetes Engine > クラスタをクリックします。
Kubernetes Engineの画面に移動したら、本チュートリアルで作成したqvs-gcp-shared-infra-clusterを選択します。クラスタを選択したら、画面上部にある"接続"をクリックします。

クリックすると接続用のコマンドが表示されるので、コマンドをコピーします。

コマンドをコピーしたら以下コマンドで Namespace を作成します。
- コピーしたコマンドを実行し、作成したクラスタに接続します。
bash
# コピーしたコマンド
gcloud container clusters get-credentials qvs-gcp-shared-infra-cluster --zone asia-northeast1-a --project {your-project-name}- kubectl を実行して Namespace を作成します。
bash
# Namespace を作るコマンド
kubectl create namespace 2nd-tutorialnamespace/2nd-tutorial createdが表示されたら Namespace の作成は完了です。
bash
namespace/2nd-tutorial created5-7. kubeconfigの再設定
続いて、Qmonus Value Stream からデプロイ先の GKE クラスタにアクセスしてリソースをデプロイできるようにするために、GKE クラスタにアクセスするための kubeconfig を設定します。 kubeconfig は Google Cloud Credentialsとkubeconfigの登録にて登録しましたが、その時点ではまだ GKE クラスタが作成されていなかったためダミーの文字列を登録しただけだったので、実際に利用可能な kubeconfig を再登録する必要があります。
再登録する kubeconfig は、gcp-shared-infra の AssemblyLine によって GKE クラスタが作成されると同時に生成されています。 その時に生成された kubeconfig が Secret Manager に保管されているので、取得して Qmonus Value Stream に登録します。
はじめに、Secret Manager から kubeconfig を取得するのに必要な操作をします。
Google Cloudにログイン後に、Provisioning Target 設定時に入力したプロジェクトに移動します。
左のメニューより
セキュリティ > Secret Managerを選択します。
シークレット一覧から
qvs-gcp-shared-infra-cluster-kubeconfigを選択します。
シークレット詳細画面に移動したら、
操作を選択します。
一覧から
シークレットの値を選択します。
シークレットの値が表示されたら内容をコピーします。

kubeconfig を取得できたので、この kubeconfig を Qmonus Value Stream に再設定します。 再設定は以下の手順で行います。
左のメニューから
Applicationを選択します。
Application の一覧画面で
gcp-api-backendを選択します。選択すると Deployments の一覧に
application-3-tier-envが表示されるのでクリックします。Deployment 詳細画面に移動したら、画面右上の
EDITボタンをクリックします。Deployment 編集画面に移動したら、画面下の kubeconfig の入力欄に、コピーした kubeconfig を入力します。
最後に画面右下の
SAVEをクリックして設定を保存します。
以上で kubeconfig の再設定は完了です。
5-8. Artifact Registryのパスのコピー
次に、gcp-shared-infra の AssemblyLine によって作成された Artifact Registry のパスの値を確認します。この値は、このあと gcp-api-backend の AssemblyLine を実行する際に必要となります。 以下の手順に従って、値を確認してください。
Google Cloudにログイン後に、Provisioning Target 設定時に入力したプロジェクトに移動します。
画面上部の検索欄に
Artifact Registryと入力し、検索結果一覧に Artifact Registry が表示されたらクリックします。
Artifact Registry 一覧から、作成された
qvs-gcp-shared-infra-registryを選択します。
画面上部に表示されるパスのコピーマークをクリックしてパスをコピーします。こちらでコピーしたパスは後ほど使用するので、値をテキストエディタなどにコピーしておいてください。

5-9. SQLデータベースの情報のコピー
次に、SQL データベースのインスタンス ID とパブリック IP アドレスの値を確認します。これらの値は、このあと gcp-api-backend の AssemblyLine を実行する際に必要となります。 以下の手順に従って、値を確認してください。
Google Cloudにログイン後に、Provisioning Target 設定時に入力したプロジェクトに移動します。
画面上部の検索欄に
SQLと入力し、検索結果一覧にSQLが表示されたらクリックします。
インスタンス一覧から、作成された
qvs-gcp-shared-infra-mysqlを選択します。
画面上部に表示される、作成された SQL データベースのインスタンス ID をコピーします。こちらでコピーした ID は後ほど使用するので、値をテキストエディタなどにコピーしておいてください。

画面中央に表示される、作成された SQL データベースのパブリック IP アドレスをコピーします。こちらでコピーした IP アドレスは後ほど使用するので、値をテキストエディタなどにコピーしておいてください。

5-10. AssemblyLineの確認(gcp-api-backend)
Qmonus Value Stream からリソースをデプロイできる準備が整ったので、gcp-api-backend の AssemblyLine を確認して、登録された CI/CD パイプラインの内容を確認してみましょう。
左メニューから
AssemblyLineを選択します。
AssemblyLine 一覧画面に移動したら、一覧より
api-backendの AssemblyLine を選択します。AssemblyLine が表示されたら、
DETAILボタンをクリックして AssemblyLine 詳細画面へ移動します。

Pipeline Stages を確認すると、build deploy の Pipeline が存在していることがわかります。これらの Pipeline は、本チュートリアルで選択した構成(Architecture, Option)に基づいて生成された Pipeline であり、gcp-api-backend の AssemblyLine はこれらの Pipeline から構成されています。
各 Pipeline は、それぞれ以下の機能を担っています。
build: API Backend としてデプロイするアプリケーションのコンテナイメージをビルドする。deploy:gcp-api-backend用のクラウドリソースをデプロイする。
また、Pipeline Stages が build deploy の順番で配置されていることに注目してください。このため、この AssemblyLine を実行すると、まず build Pipeline が実行され、build Pipeline の実行が完了すると deploy Pipeline が実行され、deploy Pipeline の実行が完了すると AssemblyLine の実行が完了することになります。

5-11. Deployment Configの登録(gcp-api-backend)
gcp-api-backend の AssemblyLine を実行するために Deployment Config を登録します。 手順は、先に行った gcp-shared-infra の Deployment Config の登録と同様です。
AssemblyLine の Pipeline Stages で
buildカードを選択します。画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。これらの赤くなっている空欄の箇所のパラメータを Deployment Config で設定します。

同様に、Pipeline Stages で
deployカードを選択し、画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。EDIT DEPLOYMENT CONFIGボタンを押下し、表示される Edit Deployment Config ダイアログで、設定が必要なパラメータを入力します。今回設定する必要のあるパラメータは、以下の通りです。
パラメータ 説明 dnsARecordSubdomain 新たに作成するAレコードに設定するサブドメインのFQDN。末尾のルート( .)まで含めて指定してください(例: api.vsdev.axis-dev.io.)dnsZoneName 事前に用意したCloud DNSゾーン名(例: qvs-gcp-dns) dnsZoneProjectId 事前に用意したCloud DNSゾーンが所属するGoogle CloudプロジェクトID imageRegistryPath Artifact Registryのパスのコピーでコピーしたパス imageShortName ビルドするコンテナイメージの省略名 mysqlDatabaseName 新たに作成するCloud SQL for MySQLのデータベース名 mysqlInstanceId SQLデータベースの情報のコピーでコピーしたID mysqlUserName 新たに作成するCloud SQL for MySQLのユーザ名 mysqlInstanceIpAddress SQLデータベースの情報のコピーでコピーしたパブリック IP アドレス port API Backend のアプリケーションが利用するポート番号 pathToContext ソースディレクトリから Dockerfile のあるディレクトリへの相対パス
本チュートリアルではtodo-app/backendを指定してくださいenv1 API Backend のアプリケーションのデプロイに必要な環境変数
本チュートリアルではskip-verifyを指定してください
TIP
env1 は、本チュートリアルで使用するサンプルアプリケーションを動作させるために必要な設定です。 自分のアプリケーションをデプロイする場合、このパラメータは必須ではありません。
以下のようにパラメータを入力します。入力内容は適宜読み替えてください。
yaml
dnsARecordSubdomain: api.vsdev.axis-dev.io.
dnsZoneName: qvs-gcp-dns
dnsZoneProjectId: {Cloud DNSゾーンが所属するプロジェクトID}
imageRegistryPath: asia-northeast1-docker.pkg.dev/{プロジェクトID}/qvs-gcp-shared-infra-registry
imageShortName: api-backend
mysqlDatabaseName: database
mysqlInstanceId: qvs-gcp-shared-infra-mysql
mysqlUserName: dbuser
mysqlInstanceIpAddress: xxx.xxx.xxx.xxx
port: "8888"
pathToContext: todo-app/backend
env1: skip-verify
SAVEボタンを押下し、ダイアログを閉じます。Pipeline Stages で
buildカードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。Pipeline Stages で
deployカードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。
5-12. AssemblyLineの実行(gcp-api-backend)
gcp-api-backend の AssemblyLine を実行し、リソースを Google Cloud にデプロイします。
手順2-2でコピーした Git コミットのハッシュ値を確認します。
画面上部の Input Parameters に以下を入力し、
RUNボタンを押下して AssemblyLine を実行します。- gitRevision: Gitコミットのハッシュ値
- imageTag:
backend
5-13. AssemblyLineの実行結果の確認(gcp-api-backend)
AssemblyLine を実行すると、自動的に AssemblyLine の進捗画面に遷移します。
1. ステータスの確認
- Pipelines (Stages) に、各 Pipeline のステータスが表示されます。
- 表示されている
builddeployカードを選択することで、それぞれの Pipeline の中で実行される Task のステータスを確認できます。 - すべての Task および Pipeline のステータスが完了になると、AssemblyLine の実行が完了します。

TIP
AssemblyLine の実行には10分程度かかりますが、リアルタイムで状況が反映されます。実行が完了するまでお待ちください。
以上で AssemblyLine の実行は完了です。
5-14. デプロイされたサンプルアプリケーションの実行確認
Kubernetes にアクセスして、デプロイされたアプリケーションが実行されているかを確認します。 以下の URL にアクセスし、アプリケーションの実行確認を行ってください。
https://{新たに作成したAレコードのFQDN} 例: https://api.vsdev.axis-dev.io
TIP
gcp-api-backend の AssemblyLine の実行が完了しても、実際にアプリケーションにアクセスできるようになるには、API Backend 用に作成される Google マネージド SSL 証明書のプロビジョニングが完了する必要があります。この処理には時間がかかる場合があります。
以下のように WEB ブラウザ上に API のレスポンスが表示されれば、デプロイに成功しています。

以上で、Qmonus Value Stream が提供する構成を選択して API Backend をデプロイするまでの一連の手順を体験いただきました。
次のチュートリアルでは、ここまで使用してきた構成を編集して、追加で要件を選択することで、既存の構成を拡張することを体験できます。 本チュートリアルの実施後にぜひトライしてみてください。 API Backendの拡張
ここでチュートリアルを終了する場合は、リソースの削除手順がありますのでそちらを参考にリソースを削除してください。 リソースの削除