0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

とある開発環境をChatOps × CFn(EC2) から Github Actions × AWS Copilot CLI化した話

Last updated at Posted at 2023-02-18

取り組んだ背景

  • ✅ Elasticsearch 👉 Opensearch移設後の開発環境への影響を受け、開発環境も変更が必要
  • ✅ 特定のサーバの技術負債化 👉 コンテナ化して気軽にアプデできる状態で扱いたい
  • ✅ 別環境におけるAWS Copilot化の成功実績
  • ✅ Github ActionsやCircleCIがスタンダードなので、もうJenkinsから離れたい😭😭😭

Before × After

👷 環境作成

Before

before.png
before-2.png

After

after.png
after-3.png
after-4.png

🚀 デプロイ

Before

before-3.png

After(デプロイ)

after-5.png

❓どうやったのか

  • タイトル通りで、大きくは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にてバッチ処理実行時に環境変数を指定して実行することで解決👍

💬残った課題

💬 AWS Marketplaceのインスタンスを利用してるEC2サーバのコンテナ化ができない・・・・

💬 AWS Copilot CLIのアップデートに伴って微妙に挙動が変わるのでメンテがちょっとつらい

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?