AWS Fargateについての説明

はじめに

AWSが提供するサービス中でも馴染みがあまりないAWS Fargateとは一体どのようなものなのか今回は簡単に説明させていただきます。

AWS Fargateとは何か

AWS Fargate(ファーゲートと読みます)は、AWSにてDockerコンテナを実行・管理するサービスであるAmazon ECS(Amazon Elastic Container Service)と、Amazon EKS(Amazon Elastic Kubernetes Service)の両方をサポートしています。AWSにおいて一般的な仮想サーバーであるAmazon EC2もコンテナのエンジンとして利用することができますが、コンテナ向けに設計されているAWS Fargateは、インスタンス管理が不要になる等のメリットがあり、料金(費用)も無駄がありません。コンテナ技術のメリットをより発揮させ、アプリケーションの構築に専念する環境を作ることができます。AWS Fargateの最大の特長は「ホストマシンの管理・運用が不要」という点です。

長所

アプリケーションのデプロイと管理

AWSの中でもメジャーなサービスであるAmazon EC2等は仮想マシンでクラスタを構築し運用する際には全体でどの程度のリソースが必要かを見積もった上で、インスタンスの選定と必要な総台数の計算が必要だったり、見積もりと実際の利用状況が乖離する可能性があるため、リソースのモニタリングをしないといけません。しかしAWS Fargateではコンテナ実行時に必要なCPU、メモリの組み合わせの選択すると、その他の要求される操作はコンテナのみであるため、Amazon ECSまたはAmazon EKSで実行するアプリケーションの構築および運用に集中することができます。

適切なサイズのリソース

コンテナを管理するクラスタ上で稼働している場合、クラスタのキャパシティに気を配る必要があります。これは、コンテナをスケールする際に、実行に必要なリソースが無ければコンテナを新規に実行することができないためです。クラスタ全体のキャパシティ状況を常にモニタリングしてコンテナと合わせてスケールする必要があります。以下の課題があります。

  • コンテナの起動時間にホストマシン起動のオーバーヘッドも含まれるため、コンテナのアジリティが低下する
  • 常に余分にホストマシンを稼働する必要があるため、サーバーコストも余分にかかる
  • ホストマシンを集約し残りを停止する場合に、実行中のコンテナをサービスに影響のないように稼働させる必要があります。

AWS Fargateを利用すると、上記のような事を考慮する必要がありません。コンテナに対して指定したリソース要件に一致するよう、コンピューティングを起動およびスケーリングします。

セキュリティレベルの向上

コンテナワークロードに限らず、通常Amazon EC2等の仮想マシンを運用する際にはOSやミドルウェアのバージョンアップセキュリティパッチの適用を随時しないといけません。しかしOSやDocker Engine、ecs-agent等のバージョンアップやセキュリティパッチの適用も、AWSにて行われるAWS Fargateプラットフォームの管理運用の対象に含まれます。そのためAWS Fargateを利用すると、後回しにしがちな業務から解放され、アプリケーションの構築と運用に注力することができます。

それ以外の長所

安全な分離

各Amazon ECSタスクまたは各Amazon EKSは、専用のカーネルのランタイム環境でそれぞれ実行されます。CPU、メモリ、ストレージ、ネットワークのリソースが他のタスクやポッドと共有されることはありません。これにより、各タスクまたは各ポッドでワークロードの分離とセキュリティの向上が実現します。

アプリケーションの可観測性

他のAWSサービスとの組み込み統合によって、すぐに利用できる可観測性を得ることができます。AWS Fargateでは、オープンなインターフェイスを有する幅広いサードパーティー製ツールを介してメトリクスおよびログを収集し、アプリケーションをモニタリングすることができます。

料金

Fargateは、1時間あたりのCPUとメモリの使用に対して課金されます。高いスケールで非常に予測可能なワークロードで使用する場合、Fargateだけに依存するのではなく、EC2インスタンスを使用して一部のECSタスクを実行することも可能です。EC2タスクの実行の場合「サーバーレス」の側面は失われますが、スポットインスタンスまたは予約済みインスタンスを使用すると、EC2を大幅に安価にできます。

まとめ

今回はAWS Fargateについて基本的なことを説明しました。以前は価格の高さからAmazon EC2を使用する方が多かったですが、AWS Fargateの利用料金値下げされたことでユーザーが利用しやすくなっています。AWS Fargateはホストマシンの管理が不要で、アプリケーションの構築に集中することができる利用しやすいサービスとなっていますので、実際に利用することで学習してみるのもいいかもしれません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です