LoginSignup
2
0

TL;DR

  • 弊チームではGitHub ActionsとTerraform Cloudを用いてデプロイ作業の自動化、デプロイ構成情報を管理しています
  • GitHub ActionsからTerraform Cloudの設定を変更することによって、構成情報の一元管理を実現しています。
  • Terraform Cloudの設定を変更できるGitHub Actionsがあれば嬉しい

弊チームのデプロイ方針

弊チームでは、タクシー事業者のDXを推進  LINEを活用した「配車サービス」の8月本格提供に向けて 一部タクシー事業者へのテスト導入を開始に記載されているLINEを活用した「配車サービス」をタクシー事業者に提供しております。このサービスのデプロイ作業の可視化(コード化)にTerraformを、自動デプロイを実現するためにGitHub Actionsを用いました。またデプロイ構成情報(tfstate)の保管先にTerraform Cloudを用いて、デプロイ作業のチーム内における「べき等性」を確保しました。

このおかげで、同様な構成をもつサービスを横展開する際にデプロイ作業の簡略化も実現しています。

上記のフローは以下の通りです。

課題

このフローを実現するためには、課題がありました。Amazon Elastic Container Serviceへのデプロイ - GitHub ActionsAzure App Service に Docker をデプロイする - GitHub Actionsにあるように、GitHub Actiosのドキュメントで継続的デプロイ(CD)を実現するために、AWS for GitHub ActionsGitHub Actions for Azureを用いています。

この方法では、デプロイ構成情報がTerraform Cloudに保存されません。Terraform Cloud上で想定している使用コンテナーイメージと実際に動作しているコンテナーイメージの不一致が発生しました。

解決方法

この課題を解決する上でTerraform Cloud上で作成したWorkspace特有のVariableをGitHub Actionsから直接変更する方針を採用しました。
幸いにも、Terraform CloudにはWebAPIが提供されています。

本作業に必要なWebAPIは以下の3つです。

このWebAPIを利用して、Workspace特有のVaribleと指定しているデプロイに使うコンテナーイメージの値を更新 しています

今後の課題

Terraform CloudのWebAPIをたたくことができるGitHub Actionsがあればいいですね。
業務ではありませんが個人的にレポジトリを作成しました(README.mdしか作成していませんが)。時間を見つけて埋めていきます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0