Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 1 year has passed since last update.

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

Posted at

取り組んだ背景

  • ✅ Elasticsearch -> Opensearch移設後の開発環境への影響
  • ✅ 特定のサーバの技術負債化 -> コンテナ化して気軽に扱いたい
  • ✅ 別環境におけるAWS Copilot化の成功実績
  • ✅ Github ActionsもCircleCIももうスタンダードなので、もうJenkinsから離れたい😭😭😭

Before × After

Before(環境作成)

Before(環境作成)

After(環境作成)

After(環境作成)

After(環境作成)

After(環境作成)

Before(デプロイ)

After(デプロイ)

❓どうやったのか

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

💬残った課題

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

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

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?