コンテナってなに?Alibaba Cloud, AWS, Azure, Google Cloud のコンテナサービスを比べてみました

2022年05月31日掲載

キービジュアル

コンテナとは、クラウドサービスにおいて重要な要素技術であり、アプリケーション開発において、コンテナサービスを導入する企業も増えています。

コンテナとは一体どのような技術なのか、仮想マシンとはどのような違いがあるのか。
この記事では利用する際のメリットデメリットを含めてご紹介します。

さらに、4大パブリッククラウド、Alibaba Cloud(以降Alibabaと表記) 、 Amazon Web Service(以降AWSと表記)、 Azure、Google Cloud(以降Google と表記)のマネージドなコンテナサービスである、Elastic Container Instance(ECI), AWS Fargate, Azure Container Instances(ACI), Cloud Run もあわせてご紹介します。

各サービスの比較を通して、サービス概要および特長をご理解いただける内容となっています。

目次

  • この記事ではコンテナ技術の概要について説明しています
  • コンテナってなに?どんなサービスがあるの?という方向けの入門記事です

関連記事リンク

コンテナとは

コンテナとは、アプリケーションを実行するために必要な全ての要素を含む、ソフトウェアのパッケージです。そのためコンテナを起動させれば、どのような環境でもアプリケーションを同じように動作させることができます。

このようにパッケージにすることで、OSを仮想化するコンテナ技術は、環境を多くの利用者に提供するクラウドサービスとの相性がよいといわれています。実際に、Gmail やYouTube といった私たちに身近なアプリケーションもコンテナで実行されています。

仮想マシンとコンテナの違い

コンテナ技術をより理解するために、仮想マシンとの違いをみていきましょう。

仮想マシン

1つの物理マシンをいくつかに区切り、それぞれの領域に OS をインストールして、各領域を 1 台のマシンのように動かす技術です。

コンテナ

ホスト OS 上で「コンテナ エンジン」と呼ばれるシステムを動かし、「コンテナ」と呼ばれる実行環境を複数構築する技術です。1つひとつのコンテナは、仮想サーバに近い使い方が可能ですが、コンテナ内には OS がインストールされていません。

仮想マシンとコンテナの違い

コンテナのメリット・デメリット

それではどういったユースケースでコンテナ技術がより活用できるのか、メリット・デメリットをご紹介します。

メリット

  • ホストOSのカーネルを共有できることから起動時間が早い(仮想マシンでは起動に数分かかってしまうことも)
  • コンテナのサイズは一般的には数十MBと軽量(仮想マシンでは数十GBのサイズが必要)で処理速度が速い
  • リソース効率が良く、コスト削減につながる
  • 場所を選ばずアプリケーションを稼働することができる
  • 移行が簡単である

デメリット

  • 実行するアプリケーションがベースOSに依存する
  • カーネルを共有していることで仮想化と比較してセキュリティリスクが高くなるため、万全な対策を講じる必要がある

メリットの多いコンテナですが、システムを構築するためには、さまざまなパーツを作成する必要があります。数個であれば管理できるかもしれませんが、数が増えるにつれ管理は大変になります。

そこで登場したのがサーバレスコンテナです。システムの維持に必要な管理はクラウド側が担ってくれるため、利用者はサーバを意識せずアプリケーションの開発ができます。

本記事では、ある程度の制約はありつつも簡単で素早くスモールスタートが可能である、フルマネージドなサーバレスコンテナサービスに着目して各パブリッククラウドのサービスを比較しました。

パブリッククラウドのコンテナサービス

まずは、4大パブリッククラウド(Alibaba, AWS, Azure, Google)のコンテナ関連サービスにどのようなものがあるか、ご紹介します。

各パブリッククラウドのコンテナ関連サービスを表にまとめました。

 

Alibaba

AWS

Azure

Google

サーバレスコンテナ

Elastic Container Instance

AWS Fargate

Azure Container Instances

Cloud Run

コンテナレジストリ

Container Registry

Amazon Elastic Container Registry

Container Registry

Container Registry

コンテナクラスタ

(Kubernetesおよび独自仕様)

Container Service for Kubernetes

Amazon Elastic Kubernetes Service

Amazon Elastic Container Service

Azure Kubernetes Service

Google Kubernetes Engine

Anthos

コンテナサービスは、基本的に3種類に分類することができます。

コンテナレジストリというのは、コンテナイメージを非公開で保管・管理できるレジストリサービスです。

コンテナクラスタでは、Kubernetes クラスタを管理するコントロールプレーンをサービスとして提供しています。コンテナの管理方法としてKubernetes を採用するものがほとんどですが、AWSのみ独自の管理方法(ECS)も提供しています。OSの管理やインスタンスのスケーリング・モニタリングといったコンテナ オーケストレーションを制御することができます。逆に、内部のインフラを意識することなく、コンテナの管理のみに集中したい方にはマネージドサービスがお勧めです。

Kubernetes とは、Google の社内プロジェクトからオープンソース化したコンテナオーケストレーションツールです。現在ではデファクトスタンダードとなっています。詳細は、クラウドサービス運営を効率化・自動化するコンテナオーケストレーションツール「Kubernetes」とは をご覧ください。

サーバレスコンテナは、フルマネージドのサーバレス プラットフォームのため、インフラストラクチャーやオートスケーリングの管理が不要で、秒単位でコンテナ化されたアプリケーションのデプロイが可能です。

ここでは、4大パブリッククラウド(Alibaba, AWS, Azure, Google)のフルマネージドなコンテナサービスについてドキュメントベースで比較を行いました。対象は東京リージョン、料金は米国ドルで統一しています。リージョンによって、料金やCPUメモリの条件が異なる場合がありますので詳細は各サービスの公式サイトをご確認ください。

 

Alibaba

AWS

Azure

Google

サーバレスコンテナ

Elastic Container Instance

AWS Fargate

Azure Container Instances

Cloud Run

CPU料金(vCPU/h) 

$0.02772

$0.05056 

$0.05060

$0.08640※

メモリ料金(GB/h) 

$0.003456

$0.00553 

$0.00553

$0.00900※

最低CPU 

0.25vCPU

0.25vCPU 

1vCPU 

1vCPU 

最低メモリ 

0.5GB

0.5GB 

1GB 

128MB 

最大CPU 

64vCPU

4vCPU 

4vCPU 

4vCPU 

最大メモリ 

256GB

30GB 

16GB 

16GB 

※Cloud Run:月間 50 vCPU hと100 GB h メモリの無料枠があります
Elastic Container Instance:https://www.alibabacloud.com/ja/product/elastic-container-instance
AWS Fargate:https://aws.amazon.com/jp/fargate/
Azure Container Instances:https://azure.microsoft.com/ja-jp/services/container-instances/
Cloud Run:https://cloud.google.com/run

 

例えば、1vCPU・2GBで24時間利用した場合の各サービス料金は、こちらです。
※リクエスト数や無料枠・割引等は考慮していません。

Elastic Container Instance (Alibaba Cloud)
 (1vCPU × $0.02772 + 2GB × $0.003456 )× 24h = $0.831168
AWS Fargate (AWS)
 (1vCPU × $0.05056 + 2GB × $0.00553 ) × 24h = $1.47888
Azure Container Instances (Azure)
 (1vCPU × $0.05060 + 2GB × $0.00553 )× 24h = $1.47984
Cloud Run (Google)
 (1vCPU × $0.08640 + 2GB × $0.00900 )× 24h = $2.5056
 ※実際は無料利用枠の範囲内なので、$0

Alibaba Cloud のECI が最も安く、AWS Fargate ・Azure のACI はほぼ同額となりました。
Google のCloud Run は最も高額になりましたが、無料利用枠があるため実質0ドルで利用することが可能です。

次に、Google の無料枠を考慮した1か月分・1週間分の利用料金の推移は次の通りです
グラフ上にAWS(赤線)がありませんが、Azure(黄線)とほぼ同額であり、線が重なっているためです

1か月分・1週間分のコンテナサービス利用料金比較

1vCPU・2GBで計算しているため、Google のCloud Run では、はじめの2日分は無料枠の範囲内で課金が発生していません。

1か月の料金推移を見ると、 AWS とAzure がほぼ同額であることがわかります。また、月75時間以上の利用で、Google がAlibabaCloud より高くなり、月123時間以上の利用で、Google がAWS とAzure より高くなることが想定されます。

ただし、AWS のSavings Plans や Google の確約利用割引といった割引は考慮していないので、必ずしもグラフ通りの課金が発生する訳ではありません。あくまで参考値となりますので、ご了承ください。

 

最後に、各サービスの特長をまとめると

Elastic Container Instance は、 今回比較する3クラウド中で、CPUとメモリ料金設定が最安であり、また利用可能なCPU、メモリ上限とも最高となります。

AWS Fargate は、ドキュメントやベストプラクティス記事が圧倒的に充実していますので、コンテナの勉強をはじめる初心者はもちろん、他のAWS サービスとスムーズな連携が必要なユーザにも利用しやすいです。

Azure Container Instances は、AWS Fargate とほぼ一致する料金設定ですが、メモリとvCPUがそれぞれ自由に指定できる点は柔軟性が高まります。

Cloud Runは、 今回比較する3クラウド中で、唯一1ヶ月あたり180,000 vCPU 秒と360,000 GiB 秒の無料枠が毎月もらえます。料金設定3クラウド中で一番高いですが、ライトユーザや事前検証にはかなり優しいと言えます。

さいごに

コンテナ技術はアプリケーション開発を高速化および効率的な運用がかなう技術として多くの企業で導入されています。

また、今回ご紹介したパブリッククラウドのフルマネージドなコンテナサービスをご利用いただくことで、運用負荷をさらにおさえ、低コストで導入することが可能です。

各パブリッククラウドで機能自体は似ているものの、価格や設定の柔軟さには違いがありますので、利用ケースに合わせたサービスの選定が必要となります。

関連サービス

Alibaba Cloud

Alibaba Cloudは中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。

Amazon Web Services (AWS)

ソフトバンクはAWS アドバンストティアサービスパートナーです

「はじめてのAWS導入」から大規模なサービス基盤や基幹システムの構築まで、お客さまのご要望にあわせて最適なAWS環境の導入を支援します。

Microsoft Azure

Microsoft Azureは、Microsoftが提供するパブリッククラウドプラットフォームです。コンピューティングからデータ保存、アプリケーションなどのリソースを、必要な時に必要な量だけ従量課金で利用することができます。

Google Cloud

Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。

おすすめの記事

条件に該当するページがございません