AWS Fargateとは?サーバー管理不要のコンテナ実行環境を解説!
thumb_awsfargate_01
AWS Fargateとは?サーバー管理不要のコンテナ実行環境を解説!
アンドエンジニア編集部
2022.09.15
この記事でわかること
AWS Fargateとは、コンテナ向けのサーバーレスコンピューティングエンジンを指します
ホストマシンを意識せずにコンテナを実行でき、OSの管理やパッチ運用から開放されます
Amazon ECSとEKSに対応し、アプリケーションの開発・構築に専念することができます

AWS Fargateとは

img_awsfargate_01

AWS Fargateとは、AWSが提供するコンテナ向けのサーバーレスコンピューティングエンジンを指します。読み方は、ファーゲートです。動作環境は、Amazon Elastic Container Service (ECS) と Amazon Elastic Kubernetes Service (EKS) の2種類に対応しています。

【参考】:AWS Fargate

AWS Fargateは 、インスタンスの選択やクラスター容量のスケーリングなどの設定をすることなく、適切なコンピュート資源が割り当てられます。わかりやすく言うとAWS Fargateとは、サーバー管理不要のコンテナ実行環境で、アプリケーション開発や構築の効率向上を可能にするAWSのサービスを意味します。

AWSのコンテナについて初心者にも分かりやすく解説!

AWS Fargateの特徴

AWS Fargateの特徴ですが、コンテナ実行環境の管理が不要な点が挙げられます。具体的には、サーバー運用で必要となるOSのメンテナンスやパッチ管理が不要となります。リソース要求に基づき、コンピューティングのスケールが自動的に行われます。

AWS Fargateはサーバーレスのため、ワークロード使用量に応じて課金されます。そのため料金プランは無駄がなく、オーバープロビジョニングが発生しません。

AWS Fargateの想定用途

AWS Fargateでは、コンテナの一般的な用途全般に対応しています。具体的には、コンテナを活用し、既存アプリケーションのリフト&シフトによる移行が可能となります。また、定型的なジョブを反復実行することが可能で、バッチ処理に活用することもできます。マイクロサービスに対応するアプリケーションを分散実行することも主要用途の1つです。

このように、コンテナを活用したアプリケーション開発と運用を効率的に行い、CI/CD(継続的インテグレーション/継続的デリバリー)を実践することができます。

AWS Fargateの料金体系

AWS Fargateの料金体系は従量課金制となっており、使用量に応じた料金が発生します。具体的にはコンテナ化されたアプリケーションで消費される vCPU およびメモリリソース・ストレージリソースに対する料金が発生します。

Savings Plans を利用して、1年間または 3年間、特定量のコンピューティング使用量契約により、使用料金を最大 50% 節約することも可能です。

【参考】:AWS Fargate の料金

AWS Fargateの提供リージョン

AWSの提供サービスは、リージョン毎に異なります。AWS Fargateの提供リージョンですが、Amazon ECSについてはアジアパシフィック(東京)、アジアパシフィック(大阪)ともにサービス提供されており、LinuxコンテナおよびWindowsコンテナともに支障なく利用することができます。

【参考】:AWS リージョン別のサービス 【参考】:Supported Regions for Amazon ECS on AWS Fargate

Amazon EKSは提供リージョンが限定されており、2022年8月時点ではアジアパシフィック(東京)で利用できますが、アジアパシフィック(大阪)ではまだ提供されていません。

AWSのリージョンとは?リージョン一覧と日本のリージョンを解説!
AWSのリージョンとは?提供サービスをリージョン一覧から解説!

AWS Fargateの関連知識

img_awsfargate_02

AWS Fargateを利用するにあたり、Amazonのサービスと連携する必要があります。そのため、いくつか関連するサービスについて用語の理解が求められます。ここでは、それぞれの用語とその違いについて解説していきます。

Amazon EC2とは

Amazon EC2とは、Amazon Elastic Compute Cloudの略で、AWSの主要コンピューティングサービスを指します。AWSはサーバーサービスで用いるコンピュータ資源の種類が豊富で、ニーズに合わせた関連サービスが多数提供されています。

【参考】:Amazon EC2

Amazon EC2では、コンピュートリソースを仮想サーバーとして切り出し、サービス提供します。SLAに応じて幅広いインスタンスが提供されており、業務に応じたキャパシティとスケールを確保することができます。

ITエンジニアなら知っておくべきAWS入門とAmazon EC2

AWS FargateとAmazon EC2との違い

Amazon ECSならびにAmazon EKSがコンテナを起動する方法としては、Amazon EC2とAWS Fargateのいずれかが必要です。AWS FargateとAmazon EC2ともにコンテナの実行環境(データプレーン)に使用します。

違いですが、Amazon EC2は通常の仮想サーバーとしてコンテナ実行環境に利用します。AWS Fargateの場合は、サーバーレスコンテナとしてホストマシンを意識せずにコンテナを実行することができる点に違いがあります。

Amazon ECSとは

Amazon ECSとは、Amazon Elastic Container Serviceの略で、Amazon EC2インスタンスやAWS Fargateを用いてDockerコンテナを管理するサービスを指します。

【参考】:Amazon Elastic Container Service (Amazon ECS)

マネージドクラスターでアプリケーションを実行しますので、自前でクラスター管理ソフトウェアのインストールや管理を行う必要がありません。ECSでは関連するAWSサービスと連携し、可用性を高めることもできます。

Amazon EKSとは

Amazon EKSとは、Amazon Elastic Kubernetes Serviceの略で、オープンソースのKubernetesを用いてDockerコンテナを管理するサービスを指します。自前でKubernetesのコントロールプレーンやワーカーノードをインストールすることなく、管理を容易にします。

【参考】:Amazon Elastic Kubernetes Service (EKS)

オープンソースのKubernetesが用いられているため、通常のKubernetes環境で動作するアプリケーションと互換性があります。

コンテナ化を楽に!KubernetesとDockerの違いを解説

Amazon ECSとEKSの違い

Amazon ECSとEKSの違いですが、ともにコンテナをコントロールする機能(コントロールプレーン)として使用し、コンテナの稼働や停止などの管理を行います。コンテナのスケールやロードバランスを行い、アプリケーション構築や運用を簡素化し、環境を適切に維持します。ご使用の環境に合わせて選択することができます。

選択方法の違いは、Dockerコンテナを管理する際にはECSを使い、Kubernetesを用いる場合はEKSを使う点が異なります。すでにAWSを利用しており、AWSの環境を最大限活用する場合も、ECSが候補となります。EKSはオンプレミス環境でKubernetesをすでにお使いの方や、Kubernetes向けアプリケーションをクラウド環境へ移行する際に有効です。

AWS Fargateの使い方

img_awsfargate_03

AWS Fargateの使い方ですが、あくまでコンテナの実行環境ですので、コンテナをコントロールするAmazon ECSまたはEKSが必要です。EKSはKubernetesを用いるため、Kubernetes自体の知識が必要となります。ここではECSを用いてAWS Fargateの使い方を解説していきます。

【参考】:AWS スタートアップのためのコンテナ入門 – AWS Fargate 編 【参考】:AWS Fargateとは?

AWS Fargateを始める

AWS Fargateを始めるために、ECSでクラスター作成を行います。AWS マネジメントコンソールから作業を開始します。Amazon ECSでは、Amazon Linux 2およびWindows Server 2019 Full・Windows Server 2019 Coreのコンテナがサポートされています。

【参考】:Amazon ECS User Guide for AWS Fargate 【参考】:AWS マネジメントコンソール

クラスターのセットアップ

Fargateを用いたクラスターのセットアップを行います。Amazon ECS コンソールを開き、「クラスター」「クラスターの作成」を選択します。CLIを利用するには、先行してAmazon ECS CLIをインストールしておきます。

【参考】:Amazon ECS デベロッパーガイド チュートリアル: Amazon ECS CLI を使用して Fargate タスクのクラスターを作成する 【参考】:Amazon ECS デベロッパーガイド Amazon ECS CLI をインストール

AWS CLIのインストール手順から使い方まで解説!

クラスターテンプレートの選択

クラスターの作成を簡略化するために、クラスターテンプレートが用意されています。テンプレートで「AWS Fargateを使用」の記載がある「ネットワーキングのみ」を選択し、「次のステップ」をクリックします。

クラスターの設定

クラスター名を設定し、「作成」をクリックします。「起動ステータス」が表示され、クラスター作成が完了します。その後、コンテナのイメージをAmazon ECR(Elastic Container Registry)に格納するか、Docker Hubを活用します。

【参考】:Amazon Elastic Container Registry (Amazon ECR) 【参考】:Docker Hub

ECSのタスク定義

Amazon ECS コンソールを開き、「タスク定義」で起動タイプに「FARGATE」を選択し、「次のステップ」をクリックします。そこで「タスク定義名」を設定し、「コンテナの追加」をクリックします。「コンテナの追加」では、ECRのリポジトリあるいはDocker Hubに格納したイメージを指定します。同様に、コンテナで実行するコマンドを記載します。

ECSのタスク実行

Amazon ECSマネジメントコンソールを開き、「タスク定義」に表示されている作成済みのタスク定義を選択し、「タスクの実行」をクリックします。起動タイプは「FARGATE」を選択し、「タスクの実行」をクリックします。これでタスクが実行されました。実行結果は、タスクの詳細から確認できます。

サーバーレスのメリットを享受できます

img_awsfargate_04

AWS Fargateでは、サーバーレスのコンテナ実行環境が提供されます。ホストマシンを意識せずにコンテナを実行でき、OSの管理やパッチ運用から開放されます。ワークロードのキャパシティ要件に応じてスケールするので、コンテナアプリケーションの構築と管理に専念できます。Dockerの知識習得とともに、AWS Fargateの情報収集をおすすめします。

Docker入門!メリットや用途を交えて基本情報を解説!
気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT