AWS Fargateとは?AWS ENIとは?

AWS Fargateとは

AWS Fargateとは、端的に言うとAWS EC2と同様にサーバーレスでアプリケーションサーバーを構築することを可能にしたAWSのサービスです。AWS EC2はEC2インスタンスを用いて仮想マシンを用意してそのインスタンス上にサーバーを用意する必要があったのに対して、AWS FargateではEC2インスタンスや仮想マシンを用意する必要は無く、コンテナを用いることでメモリの使用率を抑えアプリケーションサーバーの構築を迅速に行うことを可能にしています。コンテナのイメージとしては、仮想マシンは元々ホストとなるマシンの上に複数台の仮想OSを立て、それぞれのユーザーが使用できるOSを提供していたのに対し、コンテナではホストとなるマシンにOSを構築するわけではなく、同じホストマシンの上にそれぞれのユーザが使用出来るリソースと空間を提供します。また、コンテナはコンテナエンジンをベースとして動作するためコンテナエンジンさえあればどんな状況でも動作させることが可能なので可搬性が高い、というメリットもあり仮想化の新しい手法として注目を集めています。

ところがコンテナにはデメリットも存在します。その構成上、一つのホストマシンの上で動作するために仮想マシンの様に一つのマシンの上で個別に異なるOSを選ぶことは出来ません。OSを構築する手間を省いているため、その分メモリの使用率の節約や構築にかかる時間の低減に成功していますが、複数種類のOSを開発において利用する必要がある方にとっては無駄が多くコストがかさむ可能性があります。また、同じく一つのマシンの上で動作している関係上問題となってくる点が、仮想マシンの構築と比べてそれぞれのコンテナの分離性が低いことです。分離性が低いことで問題となってくるのが、セキュリティレベルが低いと一つのコンテナが外部から攻撃を受けた際、他のコンテナも脅威にさらされることになります。そのためセキュリティ面でも十分対策を行っておく必要が生まれてきます。追加料金を支払うことでこの分離性の強化にはある程度対応が可能です。

コンテナの管理ツールであるAWS ECSをシステムの基盤として利用しており、AWS EC2の場合はインスタンスの利用数やそれぞれのインスタンスの管理、クラスターの管理などが必要だったのに対してAWS Fargateではそういった煩わしいインスタンスの管理などを行う必要は無く、コンテナのイメージを構築しCPUやメモリといったリソースを指定するだけですぐに使用が可能です。また、CPUなどのリソースのスケーリングも自動で
行われ最適化が行われます。デメリットも多少あるものの、利用までにかかる迅速さや簡便性は大きなAWS Fargateの魅力であると言えます。

ENIとは

AWS ENIとはElastic Network Interfaceの略称です。AWS VPC(Amazon Web Services Virtual Private Cloud)と呼ばれる、それぞれのユーザーにおいて個別に提供されるプライベートなクラウドにおいてIPアドレスなどのネットワーク上の情報をENIに付与することでより柔軟なネットワーク構成の実現を可能にした仮想ネットワークインターフェースのことです。物理的な環境においてサーバーの役割に応じて複数のIPアドレスを持たせるなどのンネットワークインターフェースを増やすには、サーバーにNIC(Network Interface Card)を追加で挿入する必要がありますが、AWS ENIを用いればクラウド上でIPアドレスなどの登録やセキュリティグループの登録を行うことで簡単にネットワークインターフェースを追加することが可能になりました。

AWS FargateとENI

Fargateでコンテナを用いてECSタスクを実行する場合、ECSはネットワークとしてawsvpcネットワークモードを必要とします。このネットワークモードにおいて各タスクにはENIとプライマリプライベートIPアドレスが付与されます。awsvpcネットワークが各タスクにENIを付与するため、タスクの種別ごとにセキュリティグループを分けて通信制御を行うことが可能、といったメリットがあります。awsvpcネットワークは特にAWS Fargate固有の機能というわけではないですが、AWS Fargateのネットワークの裏側ではENIが用いられています。

終わりに

ここまでお読みいただきありがとうございます。いかがだったでしょうか。AWS Fargateはクラウドにおける仮想環境の実現方法の1つとして注目されている機能です。今後アプリケーションサーバーを立てる必要が出てきた際、是非一度ご検討いただければと思います。

コメントを残す

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