🐳

【Go, AWS】ECS(Fargate)でGoを動かす(M1)

2022/01/30に公開

はじめに

【Go, AWS】DockerfileをECRへPushする(M1)の続きです。
今回はFargateで動かすところまでやります。

前提

  • Docker、ECR、ECSの概要についてはここでは説明しないので、よく分からない方は公式のドキュメントを参照してください。
  • Dockerfileやmain.goの中身は前回のこちらの記事に書いてあります。
    【Go, AWS】DockerfileをECRへPushする(M1)

環境

  • go 1.17
  • macOS 12.0.1
  • M1チップ

手順

  1. ECSクラスターを作成する。
  2. タスク定義を作成する。
  3. サービスを作成する。

解説

手順を解説していきます。

1. ECSクラスターを作成する。

ECSのクラスターに入り、「クラスターの作成」ボタンをタップします。

クラスターテンプレートの選択をします。今回はネットワーキングのみを選択。

クラスター名の入力とクラスターの設定をします。

クラスターが作成出来ました。

2. タスク定義を作成する。

次にタスク定義を作成します。

「新しいタスク定義の作成」ボタンをタップします。

Fargateを選択します。

タスクとコンテナの定義の設定をします。

  • タスク定義名
  • タスクロール
  • タスクメモリ
  • CPU
    を入力します。

「コンテナの追加」をタップして、コンテナ情報を入力します。

  • イメージ欄には前回の記事でアップしたECRのイメージURIを使用します。

入力が終わったら、一番下の「作成」ボタンをタップします。

作成出来ました。

3. サービスを作成する。

1で作成したクラスターの中に入り、「サービス」タブの「作成」ボタンをタップします。

  • 起動タイプ→Fargate
  • サービス名
  • タスクの数
    を入力します。

VPCとサブネットを入力します。

AutoScalingが必要な場合は設定します。

サービスが作成されました。

動作確認

作成したサービスのステータスが「ACTIVE」となっている事を確認します。

「タスク」タブからタスクの中に入ります。

タスクの中の「log」タブをタップします。

この中に「Hello World」が表示されていたら成功です。

さいごに

次は定期バッチを作ってみようかな。

参考

Discussion