【Amazon ECS】Amazon Elastic Container Service (Fargate)

記事タイトルとURLをコピーする

こんにちは!イーゴリです。

前回のECS記事の続きとして、今回の記事では、Amazon Elastic Container Service (Fargate)をご紹介したいと思います。

Fargate と EC2 Linux + ネットワーキング の比較

Fargateを使用する場合、下記のメリットがあります。

  • インスタンスの管理が不要
  • EC2の場合はリソースが余っていた場合も課金されているが、Fargateの場合、利用分のみ課金される
  • スケールアウトが容易

Fargateのデメリットとしては

  • EC2に比べてリソースあたりの単価が高い
  • GPUが使えない
  • コンテナのフルコントロールができない

ECSクラスターの作成

[サービス]>[Elastic Container Service]>ECSの[クラスター]>[クラスターの作成]をクリックします。

[ネットワーキングのみ]を選択し、[次のステップ]をクリックします。

クラスター名を入力した上で、[作成]をクリックします。

※[VPC作成]にチェックを入れると、新規のVPCを作成できますが、既存のVPCを入れる予定です。

無事に作成されました。

タスク定義の作成

「タスク定義とはなんだろう」と思う方は下記のメモをご参考ください。

blog.serverworks.co.jp

[タスク]タブをクリックし、[新しいタスクの実行]ボタンをクリックします。

[FARGATE]を選択した上で、[次のステップ]をクリックします。

[タスク定義名]を入力し、[タスクサイズ]で適切なスペックを選択します。

[コンテナの追加]をクリックします。

コンテナ名を入力し、[イメージ]でイメージ名及びタグを入力します。

私の場合、DockerHubにあるNGINXのLatestイメージを入力します(nginx:latest)が、Amazon Elastic Container Registry (ECR) にプッシュしたしたイメージも選択が可能となります(例:AWSアカウント番号.dkr.ecr.<AWSリージョン>.amazonaws.com/<app名>:<appバージョン>)

https://cdn-ak.f.st-hatena.com/images/fotolife/s/swx-korotkov/20220527/20220527144602.png

EC2の方法と違って上記の設定でスペックを選択したため、[メモリ]欄で、メモリを設定しなくても問題ないです。

NGINXを展開したいため、[ポートマッピング]欄で80ポートを指定します。[追加]をクリックします。

コンテナの設定を確認した上で、[作成]をクリックします。

無事に作成されました。

タスク定義の起動

[クラスター ]>[cluster-fargate-1]>[タスク]>[新しいタスクの実行]をクリックします。

[FARGATE]を選択し、[タスク定義]を選択します。[タスクの数]を記載します。

VPC及びサブネットを選択し、[パブリック IP の自動割り当て]でENABLEを選択します(パブリックサブネットを選択したため)。

[タスクの実行]をクリックします。

正常性確認

クラスターにある[タスク]タブにてステータスが「PENDING」から「RUNNING」になるまで待機します。

ステータスが「RUNNING」になったら、対象タスクをクリックします。

パブリックIPをコピーし、ブラウザで<パブリックIP>をアクセスします。

NGINXの正常稼働が確認できます。

以上、御一読ありがとうございました。

本田 イーゴリ (記事一覧)

カスタマーサクセス部

・2024 Japan AWS Top Engineers (Security)
・AWS SAP, DOP, SCS, DBS, SAA, DVA, CLF
・Azure AZ-900
・EC-Council CCSE

趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽