Skip to content
/ ecspresso-example Public template

ecspressoで0からECS(Fargate)環境を構築する

License

Notifications You must be signed in to change notification settings

hxrxchang/ecspresso-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ecspresso-example

このリポジトリは Classi Advent Calendar 2020 19 日目の記事 のサンプルリポジトリです。
新規の ECS 構築をecspressoで行います。
ALB 経由で、Fargate で動いている Next.js アプリケーションにアクセスできるところまで行います。

必要なもの

Deploy 手順

1. 環境変数定義

cp .envrc.test .envrc
  • デフォルトで TF_VAR_PROJECT_NAME="ecspresso-example" となっていますが、お好きな名前に変更してください。
  • TF_VAR_ECS_SERVICE_NAMEもお好きな名前を設定できますが、HTML を返す仕事をする ECS サービスなので、"web"とかにするといいでしょう。
direnv allow

2. terraform で AWS リソース作成

この時点では ECS 関連のリソースは、ECS クラスターと ECR のみが作成されていて、ECS サービスと ECS タスクは後で実行するecspresso createで作成します。

3. ECR に image を push

ECR にリポジトリが作成されているので、マネジメントコンソールでそのページを開いて、"プッシュコマンドの表示"で表示される通りコマンドを実行してください。

4. ECS サービスの作成とタスクの起動

はじめにecspresso/config.ymlの"cluster"の値を、作成した ECS クラスター名に変更してください。

ecspresso create --config ecspresso/config.yml

上のコマンドで、terraform で作成した ECS クラスターに、ECS サービスとタスクが作成されます。

5. 確認

  • マネジメントコンソールで作成した ECS サービスを開き、タスクのステータスが"RUNNING"になっていることを確認します。
  • マネジメントコンソールで作成した ALB を開き、その DNS 名をブラウザで開いて Next.js のスターター画面が開いたら動作確認 OK です。

6. アップデート

サービスの設定やタスク定義を変更したり、新しいイメージをデプロイする場合にはecspresso deployコマンドを使用します。

ecspresso deploy --config ecspresso/config.yml