取り組んだ背景
- ✅ Elasticsearch 👉 Opensearch移設後の開発環境への影響を受け、開発環境も変更が必要
- ✅ 特定のサーバの技術負債化 👉 コンテナ化して気軽にアプデできる状態で扱いたい
- ✅ 別環境におけるAWS Copilot化の成功実績
- ✅ Github ActionsやCircleCIがスタンダードなので、もうJenkinsから離れたい😭😭😭
Before × After
👷 環境作成
Before
After
🚀 デプロイ
Before
After(デプロイ)
❓どうやったのか
- タイトル通りで、大きくはAWS Copilot CLIを利用し、Github Actions上で実行
- これまで闇に葬ってきたDocker開発環境も利用し、WebやOpensearch,MySQLのイメージを作成し、Copilotデプロイ可能にした
💦ハマったところ
💦 WEBとBackendの複数サービス起動と互いに通信させるのが難しかった
- バックエンドはService Discoveryを利用して互いを接続👍
- 今だとService Connectもいけるっぽい👀
💦 開発環境だが、利用用途にUnitテストやE2Eテストがあり、データ管理に悩んだ
- Mysql,Opensearchそれぞれに移行前環境と同等のデータ入りの状態でコンテナ起動が必要
- Volume共有してない、データを入れた状態のコンテナをECRへコミット、プッシュすることで解決👍(イメージサイズがでかいのが難点💦)
💦 WEBはECSタスクの環境変数利用がされるがバッチがされない😭
- copilot svc execにてバッチ処理実行時に環境変数を指定して実行することで解決👍