COLUMN

AWS Fargateとは?Amazon ECSとの関係性やメリット・デメリットを解説

NTT東日本がお届けする、AWSの情報満載のメールマガジンはこちらからご登録ください。

企業情報システムのITインフラストラクチャはオンプレミスからクラウドへと移行しています。それにともない、開発環境や本番環境のサーバーやネットワーク管理もユーザーの手から離れ、クラウドサービス事業者が管轄するようになってきました。また、従来のクラウドサービス利用ではクラウド上にユーザーが仮想マシンを構築するスタイルが一般的でしたが、近年のコンテナ利用に見られるようにクラウド上のホストマシンすら意識させないスタイルになりつつあります。そこで今回は、コンテナの実行環境であるAWS Fargateとは何なのか、Amazon ECSとの関係性を交えながらAWS Fargateを利用するメリット・デメリット、そしてユースケースについて解説します。

AWS Fargateとは

AWS Fargateとは、Amazon Elastic Container Service (ECS) と Amazon Elastic Kubernetes Service (EKS) で動作する、ホストマシンを意識せずにコンテナを実行できる環境です。AWS Fargateを利用すれば、コンテナとコンテナの実行環境の2重管理が不要になります。

いわゆる、コンテナ向けのサーバーレスコンピューティングです。

具体的には、EC2インスタンス(コンテナを実行するためのサーバー環境)やそのスケーリング、インスタンスの集合体であるクラスターを管理する必要がなくなり、管理の効率化を図れます。

AWS Fargateを理解するために必要な主な知識

ここで、AWS Fargateを理解するためにいくつかの必要な用語や知識をおさらいしておきましょう。

コンテナとは

コンテナとは、必要なコンポーネントをパッケージ化したものです。

例えば、開発に必要なランタイムやライブラリなどの依存関係や整合性を、サーバーごとに構築・管理するのは手間がかかります。このような問題を解決するために利用されるのがコンテナで、開発環境や本番環境などにコンテナを使えば、同じ環境をすぐに構築でき、アプリケーションを動作させることができます。

Dockerとは

Dockerとは、コンテナを実行するための機能です。

Docker Engineが動いている環境であれば、OSなどに依存することなくDockerコンテナを実行できます。

Amazon ECSとは

Amazon ECSとは「Amazon Elastic Container Service」のことで、Amazon EC2インスタンスを用いたDockerコンテナを管理するサービスです。

Amazon ECSを利用すれば、マルチホストで構成されたクラスター環境全体のホストOSを管理し、複数のコンテナを統合して管理できます。これをコンテナオーケストレーションと呼びます。

Amazon ECSについては「スケーラブルで高速なコンテナ管理サービス「Amazon ECS」の主な機能と使い方」や「コンテナ管理サービス「Amazon ECS」とは?実際に使用してみた」のコラムでも詳しく解説していますので、ぜひ参考にしてください。

なお、AWS FargateはAmazon EKSでも動作します。AWS ECSとAWS EKSの概要については「AWSにおけるクラウドネイティブ」でも触れておりますのでご参照ください。

AWS FargateとAmazon ECSの違いと関係性

AWS FargateとAmazon ECSの違いがイメージできないという方も多いかもしれません。双方は、連携してコンテナを起動する関係性にあります。簡単にいえば、Amazon ECSでコンテナを実行する方法としてAWS Fargateを利用するという選択肢があるということです。

実際に、Amazon ECSがコンテナを起動する方法としては「EC2」と「Fargate」の2つの起動タイプがあります。これら2つの起動タイプを比較してみると分かりやすいでしょう。

例えば、Amazon ECSのEC2でコンテナを実行した場合には、ホストマシン上でコンテナを起動するため、コンテナ環境のOSやDocker Engineなど、ホストマシンの管理や運用が必要です。また、ホストマシンの選択や起動するコンテナの数なども管理する必要があります。

しかし、EC2の替わりにAWS Fargateを利用してコンテナを起動すれば、ホストマシンを意識せずにコンテナを実行することが可能です。

AWS Fargateを利用するメリット

それでは、AWS Fargateを利用するメリットを見ていきましょう。

ホストマシンのOSやミドルウェアなどの構築が必要ない

AWS Fargateを利用することで、コンテナ実行環境のホストマシンなどの管理が必要なくなるというメリットがあります。つまり、EC2インスタンスのOSやDocker Agent、ミドルウェアなどの構築や設定操作の手間が省けるということです。

これにより、インフラ専任の技術者がいなくても、手軽に環境構築とインフラ管理を行えます。

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

AWS Fargateは、EC2起動タイプでのコンテナ実行と比べて、EC2インスタンスやクラスターの管理をしなくてよいというメリットもあります。

Amazon ECSでAWS Fargateを利用してコンテナを実行するときに意識するのは、実行時に必要なCPUやメモリの組み合わせのみです。

オートスケーリング

オンプレミスで環境構築をした場合において、途中で利用環境を拡張・縮小などが必要な時にはリソースの整合性やインフラの稼働状況を確認しながら、慎重に行わなければなりません。この作業は、工数がかかるだけでなくリスクも伴うため、担当者に負担がかかりやすいものです。

しかし、AWS Fargateならば、例えばコンテナ数をオートスケールできるメリットがあるのです。

AWS Fargateを利用するデメリット

次に、AWS Fargateを利用するデメリットも確認しておきましょう。

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

AWS Fargateでは、EC2インスタンスへのIPが自動割り当てのため、パブリックIPアドレスの固定割り当てができません。これにより、外部アクセスのためのIP許可や、API運用時に不便を感じる場合があります。

EC2インスタンスにEIPという固定IPアドレスを設定できますが、そのためにはNATゲートウェイ設定などのひと手間が必要であることもデメリットだといえるでしょう。

sshやdocker execが使えない

AWS Fargateでは、sshやdocker execでのコンテナアクセスをサポートしていません。これは、EC2を意識しない環境として、セキュアなサービス提供しているためです。

しかし、インフラのトラブル時に素早くコンテナに対してシェルで入れないという環境を不便だと感じる担当者も多いかもしれません。

NTT東日本がお届けする、AWSの情報満載のメールマガジンはこちらからご登録ください。

AWS Fargateのユースケース

AWS Fargateのユースケースとしては、アプリケーション開発において発生するインフラ運用工数の解決があります。少人数のスタートアップ企業などでインフラ担当がいなくても、アプリケーションの開発に専念できるのです。

例えば、オンプレミスや仮想マシンで開発環境と本番環境を作成するためには次のような手間がかかります。

オンプレミスの場合は物理サーバー選定やネットワーク構築に始まり、スーパーバイザーのインストールから仮想マシンへのOSやミドルウェアのインストールなどの作業が必要です。また、EC2を利用した場合でも、仮想マシンのリソース管理などは行わなければなりません。

そこで、Amazon ECSでAWS Fargateの起動タイプを選択することで、インフラストラクチャの設計や設定の手間を省き、すぐにアプリケーション開発に取りかかれます。開発環境で利用したコンテナをそのまま本番環境へ移行できるため、インフラ環境における不具合を最小限に抑えることも可能です。

また、AWS Fargateはインフラ専任担当者がいないスタートアップ企業だけではなく、大規模なオンラインゲームのプラットフォームとしても利用されています。将来的なゲームプレイの需要拡大を視野に入れ、スケーリングが容易にできる柔軟なサービスとしてAWS Fargateが採用されました。

AWS Fargate料金体系

AWS Fargateの料金は、コンテナのアプリケーションで利用したvCPUとメモリリソースに対して課金されます。従量課金なので、基本的に固定料金は発生しません。料金が発生するタイミングは、コンテナイメージのダウンロード開始からタスクの終了まで、リソースを使用したときです。

なお、料金の詳細についてはリージョンなどにより異なるため、最新の情報は公式サイトで確認してください。

AWS Fargate の料金別ウィンドウで開きます(AWS)

管理工数削減にAWS Fargateを検討しよう

OSやミドルウェアを含めたホストマシンを意識せずに運用できるAWS Fargateは、Amazon ECSと連携してコンテナを実行できる手段の一つです。EC2のインスタンスやクラスター管理が不要ですので、インフラ環境の専任担当者がいない少人数でのアプリケーション開発現場などでも、効率的に開発工程を開始できます。また、比較的スケーリングの多い環境も、オートスケーリングで対応できるため、大規模なオンラインインフラ環境にも採用されるなどといった例もあります。このように、ホストマシンを意識しないでコンテナを実行できるという特徴はさまざまなサービスで活用されはじめています。

開発や運用の管理工数削減をお考えの場合にはAWS Fargateの利用を検討してみてはいかがでしょうか?

Docker環境構築をご検討の方はNTT東日本にお気軽にご相談ください。

ページ上部へ戻る

無料ダウンロード

自社のクラウド導入に必要な知識、ポイントを
このに総まとめ!

あなたはクラウド化の
何の情報を知りたいですか?

  • そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
  • 【AWS・Azure・Google Cloud】
    どれが自社に最もマッチするの?
  • 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
  • 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?

初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。

NTT東日本では
そんなあなたにクラウド導入に必要な情報を

1冊の冊子にまとめました!

クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・

  • システムインフラの維持にかかるトータルコストがあまり変わらない。。
  • 情シス担当者の負担が減らない。。
  • セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
  • そもそも”クラウド化”とは?
    その本質的なメリット・デメリット
  • 自社にとって
    最適なクラウド環境構築のポイント
  • コストを抑えるため
    具体的なコツ
  • 既存環境からスムーズにクラウド化
    実現するためのロードマップ

など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。

クラウドのわからない・
面倒でお困りのあなたへ

クラウドのご相談できます!
無料オンライン相談窓口

NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!

NTT東日本が選ばれる5つの理由

  • クラウド導入を
    0からワンストップでサポート可能!
  • 全体最適におけるコスト効率・業務効率の改善
    中立的にご提案
  • クラウド環境に問題がないか、
    第3者目線でチェック
    してもらいたい
  • 安心の24時間・365日の対応・保守
  • NTT東日本が保有する豊富なサービスの組み合わせで
    ”課題解決”と”コスト軽減”を両立

特に以下に当てはまる方はお気軽に
ご相談ください。

  • さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
  • オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
  • オンプレミスとクラウド移行した際のコスト比較を行いたい
  • AWSとAzure、どちらのクラウドが自社に適切かわからない
  • クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
  • クラウド利用中、ネットワークの速度が遅くて業務に支障がでている

クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。