2
2

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.

AWS ECSのタスク定義、クラスタ作成、サービス作成

Last updated at Posted at 2023-07-23

はじめに

Windows11Pro+WSL2+Ubuntu+Docker環境を構築し、
VS CodeからUbuntuに接続しプログラム作成、コンテナイメージ作成、
AWSのECRへプッシュ、ECSへのデプロイ・接続確認までを行います。

  1. WSL2のインストール
  2. Visual Studio CodeのインストールとUbuntu on WSL2への接続
  3. Docker Desktopのインストール、Dockerfile作成、コンテナビルドと修正
  4. AWS CLIインストール、IAMユーザー作成、アクセスキー作成、AWSリソースへのアクセス
  5. AWS ECRリポジトリ作成、Ubuntu on WSL2からECRへのプッシュ
  6. AWS ECSのタスク定義、クラスタ作成、サービス作成 (今回の記事)

要約

最小限の設定でECRのコンテナイメージをECS Fargateにデプロイし、
ブラウザから疎通確認できるところまでを目指します。

タスク定義の作成

AWS -> Elastic Container Service -> タスク定義 へ遷移します。
「新しいタスク定義の作成」をクリックします。
image.png

タスク定義ファミリー:test-task-defとします。
コンテナ詳細 -> 名前:mayappとします。
コンテナ詳細 -> イメージURI:111111111111.dkr.ecr.ap-northeast-1.amazonaws.com/myapp:v2とします。
「111111111111」部分は、ご自身のAWSアカウントIDに読み替えてください。
myapp:v2
AWS ECRリポジトリ作成、Ubuntu on WSL2からECRへのプッシュ
でECRにプッシュしたコンテナイメージです。
image.png
ポートマッピング等、その他の設定は不要です。
「次へ」をクリックします。

アプリケーション環境:AWS Fargate(サーバーレス)
オペレーティングシステム/アーキテクチャ:Linux/X86_64
タスクサイズ -> CPU:.25 vCPU
タスクサイズ -> メモリ:.5 GB
image.png

タスク実行ロール:ecsTskExecutionRole(デフォルト)
image.png

ログ収集は今回不要なのでチェックを外します。「次へ」をクリックします。
image.png

「作成」をクリックします。
image.png

クラスターの作成

「クラスターの作成」をクリックします。
image.png

クラスター名:test-clusterとします。
VPC、サブネットを選択します。ここではVCP、サブネットの作成方法は省略します。
今回は簡単にブラウザからコンテナへ直接接続ができるように、パブリックサブネットを選択してください。
image.png

「作成」をクリックします。
image.png

サービスの作成

上記で作成したtest-clusterをクリックします。
image.png

サービスの「作成」をクリックします。
image.png

コンピューティングオプション:起動タイプを選択します。
image.png

アプリケーションタイプ:サービス
ファミリー:test-task-def
サービス名:test-service
必要なタスク:1 と設定します。
image.png

パブリックIPがオンになっている状態で、「作成」をクリックします。
image.png

疎通確認

サービスの作成が完了しました。
「test-service」をクリックします。
image.png

タスクをクリックします。
image.png

「オープンアドレス」をクリックします。
image.png

http://xx.xx.xx.xx/という形でブラウザが開きますが、
今回のコンテナは5000番ポートでリッスンしているため、
http://xx.xx.xx.xx:5000/
という形にURLを変更します。

Docker Desktopのインストール、Dockerfile作成、コンテナビルドと修正
でローカル環境で表示された画面と同じ画面が表示されました。
image.png

接続できない場合は、セキュリティグループの設定を確認してください。
サービスに紐づいているセキュリティグループは下記画面で確認できます。

image.png

サービス、クラスターの削除

検証で作ったAWSのリソースはこのままにしておくと料金が発生し続けるため、削除しましょう。

サービスの画面で「サービスを削除」をクリックします。
image.png

「serviceを強制削除」にチェックを入れ、テキスト入力フィールドに「削除」と入力し、「削除」をクリックします。
image.png

「クラスターの削除」をクリックします。
image.png

「delete test-cluster」を入力し、「削除」をクリックします。
image.png

ECRに保管されたコンテナイメージの削除

ECR -> リポジトリ画面で、
「myapp」にチェックをいれ、「削除」をクリックします。
image.png

「delete」を入力し、「削除」をクリックします。
image.png

リポジトリが削除されることで、リポジトリ内のコンテナイメージも削除されます。

さいごに

ECSを設定し、ブラウザからコンテナのコンテンツにアクセスできました。

AWSリソースの削除漏れが原因で想定外の金額を請求される場合があります。
AWS Budgetsでアラームを作成し、設定した金額を超過したら気づけるようにしておきましょう。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?