こんにちは!イーゴリです。
前回のECS記事の続きとして、今回の記事では、Amazon Elastic Container Service (Fargate)をご紹介したいと思います。
Fargate と EC2 Linux + ネットワーキング の比較
Fargateを使用する場合、下記のメリットがあります。
- インスタンスの管理が不要
- EC2の場合はリソースが余っていた場合も課金されているが、Fargateの場合、利用分のみ課金される
- スケールアウトが容易
Fargateのデメリットとしては
- EC2に比べてリソースあたりの単価が高い
- GPUが使えない
- コンテナのフルコントロールができない
ECSクラスターの作成
[サービス]>[Elastic Container Service]>ECSの[クラスター]>[クラスターの作成]をクリックします。
[ネットワーキングのみ]を選択し、[次のステップ]をクリックします。
クラスター名を入力した上で、[作成]をクリックします。
※[VPC作成]にチェックを入れると、新規のVPCを作成できますが、既存のVPCを入れる予定です。
無事に作成されました。
タスク定義の作成
「タスク定義とはなんだろう」と思う方は下記のメモをご参考ください。
[タスク]タブをクリックし、[新しいタスクの実行]ボタンをクリックします。
[FARGATE]を選択した上で、[次のステップ]をクリックします。
[タスク定義名]を入力し、[タスクサイズ]で適切なスペックを選択します。
[コンテナの追加]をクリックします。
コンテナ名を入力し、[イメージ]でイメージ名及びタグを入力します。
私の場合、DockerHubにあるNGINXのLatestイメージを入力します(nginx:latest)が、Amazon Elastic Container Registry (ECR) にプッシュしたしたイメージも選択が可能となります(例:AWSアカウント番号.dkr.ecr.<AWSリージョン>.amazonaws.com/<app名>:<appバージョン>)
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都道府県制覇)・ドライブ・音楽