SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

SB C&S

AWS Fargateとは?

新興テクノロジー
2022.05.18

はじめに

こんにちは、SB C&Sの鈴木です。

最近、お客様とお話ししている中で、「AWS Fargate(以下、Fargate)を保護する製品はあるか?」というご質問をいただく機会が増えてきました。

Palo Alto Networks社のPrisma Cloudでは、Fargateを保護することが可能なのですが、Fargateがどんなものかというところから調べなおしてみました。

今回の記事では調べた内容のポイントをまとめつつ、AWS Fargate(以下、Fargate)のデプロイ手順まで解説していきます。

※Prisma Cloudについてはこちらの記事をご覧ください。

目次

  1. Fargateとは?
  2. Fargateを使ってECS の利用を開始する手順

Fargateとは?

Fargateを一言で表すと「AWS上でコンテナをサーバーレスで実行することができる機能」です。

サーバーレスとは、サーバーの構築や保守などを意識することなく、サーバー上でプログラムを実行できる仕組みであり、アプリケーション開発に全集中できるというメリットがあります。

Fargateはこの機能をAWS上で提供するのですが、他にも以下のような特徴があります。

  • データプレーンとしてECSやEKSと組み合わせて利用
  • AWSマネージドで、EC2インスタンスのプロビジョニング、スケール、管理が不要
  • 仮想マシンを意識しないシームレスなスケーリングができる
  • コンテナの起動時間、使用リソースに応じた従量課金
  • 他のAWSサービス(VPCネットワーキング、ELB、IAM、Cloud Watchなど)と連携可能

データプレーンとコントロールプレーン

Fargateを理解する際のポイントとして「データプレーン」という言葉がありますので、こちらについても解説していきます。

「データプレーン」と「コントロールプレーン」という言葉はいろんな場面で見かけますが、AWSでは「コンテナを管理するサービス」を語るときに出てきます。

AWS上でのそれぞれの役割は以下です。

  • データプレーン:コンテナの実行環境。FargateとEC2がこの機能に該当する。
  • コントロールプレーン:コンテナをコントロールする機能。ECSとEKSがこの機能に該当する。

上述したFargateの特長に「ECSやEKSと組み合わせて...」と記載いたしましたが、以下のようにデータプレーンとコントロールプレーンを組み合わせることができます。

  1. Fargate+ECS
  2. Fargate+EKS
  3. EC2+ECS
  4. EC2+EKS

実際に、ECSやEKSを作成しデータプレーンを選択する際には「起動タイプ」という項目で選択する形になっています。

fargate prisma_組み合わせ.png

ここまでお読みいただきますと、「EC2と組み合わせた時とは何が違うの?」とか「ECS、EKSって何?」という疑問が湧いてくるかと思いますので、こちらについても以下で解説いたします。

データプレーンでEC2を選ぶ場合との違いは?

データプレーンはFargateかEC2どちらか選べますが、両者の違いを端的にお伝えすると「Fargateでは細かい設定や管理が不要。EC2では細かい設定や管理が必要。」というものになります。

あくまで一例になりますが、具体的な違いは以下です。

データプレーン・起動タイプ Fargate EC2
OS/パッチ更新 不要 必要
スケーリング 簡単 EC2インスタンス数のスケーリングが必要
ネットワークモード awsvpcモードのみ awsvpcモード、bridgeモード、hostモード、noneモード
データボリューム Fargateでのバインドマウント、EFSボリューム EC2でのバインドマウント、EFSボリューム、Dockerボリューム
コンテナのデバック 不可 可能

※コストについては、AWSの公式ドキュメントで「ECS Fargate/EC2 起動タイプでの理論的なコスト最適化手法」がありますので、こちらをご覧ください。

上表の各機能の説明については割愛させていただきますが、「Fargateは細かい設定や管理を気にすることなく利用することが可能」ということがわかってきます。

知識を身に付けたり詳しい人を雇わず「まずはコンテナ環境で開発を始めてみよう」という方法をとれるのが、Fargateの大きなメリットになります。

ECSとEKSの違いは?

コントロールプレーンではECSとEKSを選べますが、それぞれの役割を端的にお伝えすると以下のようになります。

  • ECS(Elastic Container Service):AWSが提供するコンテナ管理サービス
  • EKS(Elastic Kubernetes Service):AWSでKubernetesを実行・管理できるサービス

両者の大きな違いは、「Kubernetesベースで実行・管理できるか」という点ですので、両者を選定する際のポイントとしては、「AWS上でKubernetesを使うか、使わないか」というところになります。

※Kubernetesの詳細については、こちらの記事をご覧ください。

Kubernetesは、他のKubernetes環境(オンプレ、他パブリッククラウド)から移行しやすいというのがメリットになりますが、AWS上でKubernetesを使わないのであれば、EKSを使う必要もありません。

なので、「AWSでコンテナを使いたいが、Kubernetesの知見はなく、今後Kubernetesを使うという予定もない。」ということであれば、ECSを選択して問題ないでしょう。

Fargateを使ってECSの利用を開始する手順

それではここから、ECSとFargateの組み合わせで利用開始する手順を記載していきます。

こちらを実装するにあたっては、AWSの提供するECSのチュートリアルがわかりやすいので、こちらを利用していきます。

1.チュートリアルにアクセスし、ECSを作成したいリージョンを選択してください。

2.利用したいコンテナイメージを選択します。本記事では「sample-app」を選んで作成していきます。

fargate prisma_設定手順1.png

3.タスク定義を確認します。「編集」をクリックすると設定を変更できますが、デフォルトのままで問題ありません。「次へ」をクリックします。

fargate prisma_設定手順2.png

4.「サービスを定義する」の「ロードバランサーの種類」にて、「Application Load Balancer」を選択し、「次へ」をクリックします。

fargate prisma_設定手順3.png

5.クラスター名に「default」と入力されています。このままでも問題ありませんので「次へ」をクリックします。

fargate prisma_設定手順4.png

6.確認画面になりますので、「次へ」をクリックします。

7.起動ステータスの画面になりますので、すべて起動完了すれば作成完了です。

8.AWSコンソール画面からECS > クラスター > 作成したクラスタ > タスク > 作成したタスク の順に選択し、表示された「パブリックIP」を確認します。

fargate prisma_設定手順24.png

9.ブラウザから確認したIPアドレスに接続し以下のような画面が表示されれば、無事作成完了です。

fargate prisma_設定手順25.png

まとめ

ECSの概要から、チュートリアルで簡単にFargateを使ってECSを利用開始する手順を説明させていただきました。

開発者の方々にとって、コンテナの知識をつけたり管理をしなければならないと聞くと、気が引けてしまうかもしれませんが、ECSだとそういった手間が省けますので、コンテナの利用を検討される際には、ECSも調べてみていただければと思います。

冒頭でPrisma Cloudについても触れさせていただきましたが、別の記事でPrisma CloudでFargateを保護する方法についても解説していきます。

※参考記事
[AWS Black Belt Online Seminar] CON202 ECS Fargate入門

他のおすすめ記事はこちら

著者紹介

SB C&S株式会社
テクニカルマーケティングセンター
鈴木 孝崇

テクニカルサポート、サーバー運用保守、RPA開発、パブリッククラウドのプリセールスを経て、現在ゼロトラスト領域のソリューションSEとして活動中。
PMP、Prisma Certified Cloud Security Engineer、Google Professional Cloud Architectなど20個の資格を取得。
CSPM、CWPPのプロフェッショナルを目指して、日々奮闘しています。