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