AWS Fargateとは?メリットや注意点などを解説

AWS Fargateとは?メリットや注意点などを解説

公開日
2023年12月13日

Amazonが提供するクラウドプラットフォームのAWS(Amazon Web Service)には、200種以上サービスが用意され、必要なサービスだけを選んで利用することが可能です。AWSのサービスのひとつで、サーバレスでのコンテナの実行を可能にするAWS Fargateの利用を検討している企業も多いのではないでしょうか。
ここでは、Amazon ECSとの関係性やAWS Fargateのメリット、注意点、利用料金などについて解説します。

AWS Fargateはコンテナ向けのサーバレスコンピューティング

AWS Fargateは、Amazon ECS(Elastic Container Service)とAmazon EKS(Elastic Kubernetes Service)の両方で利用可能な、サーバレスでのコンテナ実行を可能にするサーバレスコンピューティングエンジンです。

アプリなどのシステム開発を行うには、さまざまな環境下でアプリの動作を試せる開発環境が不可欠です。しかし、異なる開発環境のすべてに対してハードを用意することは難しいため、仮想開発環境を構築し、そこで動作を確認するのが一般的といえます。

必要な仮想環境を構築する方法として、以前はホストOSに仮想化ソフトウェアをインストールし、その上でゲストOSを稼働させる方法が取られていました。しかし、この方法は手軽に仮想環境を構築できる半面、ゲストOSがハードウェアにアクセスするには、ホストOSを経由する分、余計な処理時間・処理負担がかかるという問題があります。そのため、現在では、物理サーバに仮想化ソフトウェア(ハイパーバイザ)をインストールして仮想マシンを稼働させる方法が取られるようになりました。VMware社のvSphereで提供されるESXiなどが代表的です。

一方、近年急速に利用が進んでいるのが、ホストOSにコンテナエンジンと呼ばれる仮想化ソフトウェアをインストールし、その上にコンテナを置くことで、複数のアプリケーションを同じOS上で動かす方法です。コンテナには、プログラムとそれが動くために必要なミドルウェア、ライブラリ、設定、ファイルシステムなど、アプリの実行に必要な機能がパッケージとしてまとめられています。また、各コンテナはそれぞれ隔離されたアプリケーション実行環境になっています。この手法は、ゲストOSを持たないので、従来の方法より軽く、速い処理が行える点が特長です。

AWS Fargateでサーバレス化が可能

AWS Fargateを利用することで、コンテナのサーバレス化が可能になります。コンテナエンジンとして、一般的にDocker社のDockerが利用されています。ただし、Dockerには複数のコンテナを効率良く管理したり、組み合わせたりする機能はないので、複数のコンテナを管理するにはオープンソースのKubernetesなどのコンテナオーケストレーションシステムの活用が必要です。

Amazon ECSとAmazon EKSは、このコンテナを使った仮想環境構築方法を、AWS上で利用できるサービスです。Amazon ECSとAmazon EKSのどちらも、コンテナの実行環境として、AmazonがAWS上で提供している仮想サーバのAmazon EC2を利用できます。また、どちらもコンテナオーケストレーションシステム機能も備えていますが、Amazon EKSはKubernetesとほぼ同等の機能が使え、Amazon ECSより細かく、高度なコンテナ運用が可能です。

AWS Fargateを利用すれば、これらのコンテナの実行環境を自動化し、管理や保守を意識せずコンテナを実行することができます。

AWS FargateとAmazon ECSとの関係性

AWS FargateとAmazon ECSは、連携してコンテナを起動する関係にあります。簡単にいえば、AWS Fargateは、Amazon ECSでコンテナを実行する方法の選択肢のひとつといえるでしょう。具体的には、Amazon ECSでは、クラスター起動モードをAmazon EC2とAWS Fargateの2種類から選択できます。Amazon EC2モードでコンテナを起動する場合は、ホストマシンの管理や運用が必要になりますが、AWS Fargateを選択した場合は、ホストマシンなどを意識することなくコンテナの実行が可能です。

AWS Fargateを利用するメリット

AWS Fargateを利用することで、企業や開発者にとってさまざまなメリットがあります。ここでは、AWS Fargateを利用する3つのメリットについて解説します。

ホストマシンのOSやミドルウェアなどの管理が不要

AWS Fargateを利用するメリットとして、ホストマシンのOSやミドルウェアなどの管理が不要となる点が挙げられます。AWS Fargateを利用すれば、コンテナの実行環境を管理する必要がなくなります。そのため、EC2インスタンスのOSやミドルウェアの構築、設定操作などが不要となり、インフラ専任の技術者がいなくても、容易にコンテナが利用可能です。

インスタンスタイプやクラスター管理が不要

インスタンスタイプやクラスターの管理が不要となる点も、AWS Fargateを利用するメリットといえるでしょう。AWS Fargateを利用しない方法だと、EC2インスタンスタイプやクラスターの管理が必要ですが、AWS Fargateを利用する場合は必要ありません。コンテナ実行時に意識しなければいけないのは、実行時に必要なCPUやメモリの組み合わせのみとなります。

コンテナ数のオートスケールが可能

コンテナ数のオートスケールが可能な点も、AWS Fargateを利用するメリットのひとつです。オートスケールとは、サーバにかかる負荷に応じて、自動的にクラウドサーバの台数やスペックを増減させる機能です。システムにアクセスが集中したときはサーバを増やし、アクセスが少ないときは減らすことで、常に必要最小限のサーバ数でシステムを起動させます。AWS Fargateを利用すると、Amazon EC2起動タイプのAmazon ECSの場合に比べて、制約が少なくオートスケールを使えるようになります。

AWS Fargateを利用する際の注意点

AWS Fargateを利用する際の注意点

AWS Fargateには多くのメリットがある一方で、使用する際には注意点もあります。ここでは、2つの注意点について解説します。

sshやdocker execが利用できない

AWS Fargateを利用する際の注意点として、sshやdocker execが利用できないことが挙げられます。起動モードにAmazon Fargateを選んだ場合、その環境ではsshやdocker execでのコンテナアクセスはサポートされません。sshは、Secure Shell(セキュアシェル)の略称で、リモートコンピュータと通信するためのプロトコルを意味します。
一方、docker exectは、実行中のコンテナの環境内で指定したコマンドを実行するもので、仮想環境内でオペレーションを行いたい場合に、コンテナ内でシェルを起動するときなどに使います。sshやdocker execが利用できないことで、開発環境でシェルに入る技術者は、不便に感じる可能性があります。

パブリックIPの固定割り当てができない

AWS Fargateを使う際には、パブリックIPの固定割り当てができないことにも注意しましょう。AWS Fargateでは、Amazon EC2インスタンスへのIPアドレスの割り当ては自動で行われるため、パブリックIPアドレスの固定割り当てができません。固定IPを必要とする場合は、NAT(IPアドレス変換技術)の仕組みを別途用意するなどの対策が必要になります。このため、外部アクセスのためのIP許可やAPI運用時に不便さを感じる可能性があります。

AWS Fargateの料金

AWS Fargateの利用料金は、初期費用はなく、使用した分のリソースを支払う方式です。利用料金は、ECSまたはEKS上で作動するコンテナ化されたアプリケーションによって消費されるvCPU、メモリ、オペレーティングシステム、CPUアーキテクチャ、およびストレージリソースにもとづいて算出されます。従量課金制なので、無駄な出費が生じることはありません。なおvCPUとは、クラウドコンピューティングにおいて仮想的に割り当てられるCPUを示します。
一般的に、クラウド提供されるマネージドサービスは、提供者の責任範囲が増えれば増えるほど、利用料金はかさむものです。運用者による運用コストがかかるため、ある意味当然ではありますが、もちろんこれはAWS Fargateでも同様のことがいえます。AWSでコンテナを使う際、どのサービスを選ぶかはマネージドサービスの利用料金と、マネージドサービスを利用せずに自社で行う場合のコストとの比較をすることが重要です。

AWS Fargateの料金について、詳しくはこちらをご覧ください。

AWS Fargate導入の際はTrend Cloud Oneでセキュリティ対策をしよう

アプリの開発環境を確保するにあたり、コンテナ利用を考えているなら、AWS Fargateを使うことでコンテナの運用環境の運用・管理が不要となり、専任の技術者がいない場合でもアプリ開発がしやすくなります。アプリ開発のための仮想空間構築を考えている場合は、コンテナ実行環境としてAWS Fargate、コンテナの管理環境としてAmazon ECSやAmazon EKSを導入し、サーバレス体制で開発を行うのがおすすめです。
ただし、AWSのセキュリティ対策は、サービスの提供者と利用者が担当する範囲を明確に区分けし、それぞれがそれぞれの範囲に責任を持つ責任共有モデルなので、Amazon ECSやAmazon EKSおよびAWS Fargateを利用するにあたっては、利用者自身もセキュリティ対策をしっかり行うことが欠かせません。

トレンドマイクロのTrend Cloud Oneは、アンチウイルスやマルウェアの検知・駆除などのセキュリティ機能を備えておりAWS Fargateのセキュリティ対策に効果を発揮します。Trend Micro Cloud One - Container Security™ではコンテナのスキャンやデプロイの制御、ランタイムの監視などが可能です。Trend Micro Cloud One - Network Security™では脆弱性を悪用した攻撃や、不正な通信をブロックできます。情報セキュリティリスクに備え、企業のビジネスに貢献するTrend Cloud Oneをぜひお試しください。

監修

福田 俊介

福田 俊介

トレンドマイクロ株式会社 ビジネスマーケティング本部
ストラテジックマーケティンググループ
グループ長 シニアマネージャー

IPA 情報処理安全確保支援士(第000893号)、AWS Certified Solutions Architect – Professional保有。
約10年間クラウドセキュリティ領域およびエンドポイントセキュリティ領域に従事、クラウドの最新アーキテクチャに対応するセキュリティ戦略を立案、市場啓蒙を実施。これまでのセミナー登壇は100回を超える。専門領域は「クラウド」「サーバ」「仮想化」「コンテナ」「脆弱性」「EDR」「XDR」。

関連記事

新着記事