フォーム読み込み中
コンテナとは、クラウドサービスにおいて重要な要素技術であり、アプリケーション開発において、コンテナサービスを導入する企業も増えています。
コンテナとは一体どのような技術なのか、仮想マシンとはどのような違いがあるのか。
この記事では利用する際のメリットデメリットを含めてご紹介します。
さらに、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 がインストールされていません。
それではどういったユースケースでコンテナ技術がより活用できるのか、メリット・デメリットをご紹介します。
メリットの多いコンテナですが、システムを構築するためには、さまざまなパーツを作成する必要があります。数個であれば管理できるかもしれませんが、数が増えるにつれ管理は大変になります。
そこで登場したのがサーバレスコンテナです。システムの維持に必要な管理はクラウド側が担ってくれるため、利用者はサーバを意識せずアプリケーションの開発ができます。
本記事では、ある程度の制約はありつつも簡単で素早くスモールスタートが可能である、フルマネージドなサーバレスコンテナサービスに着目して各パブリッククラウドのサービスを比較しました。
まずは、4大パブリッククラウド(Alibaba, AWS, Azure, Google)のコンテナ関連サービスにどのようなものがあるか、ご紹介します。
各パブリッククラウドのコンテナ関連サービスを表にまとめました。
Alibaba | AWS | Azure | ||
---|---|---|---|---|
サーバレスコンテナ | 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 | ||
---|---|---|---|---|
サーバレスコンテナ | 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(黄線)とほぼ同額であり、線が重なっているためです
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は中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。
ソフトバンクはAWS アドバンストティアサービスパートナーです
「はじめてのAWS導入」から大規模なサービス基盤や基幹システムの構築まで、お客さまのご要望にあわせて最適なAWS環境の導入を支援します。
Microsoft Azureは、Microsoftが提供するパブリッククラウドプラットフォームです。コンピューティングからデータ保存、アプリケーションなどのリソースを、必要な時に必要な量だけ従量課金で利用することができます。
Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。
条件に該当するページがございません