2024年7月5日

【Google Cloud】【AWS】コンテナサービスの比較 (Cloud Run / Fargate)


Content
こんにちは、さとたかです!

最近、私はお仕事で Google Cloud と AWS の両方で提供されているマネージドのコンテナサービスに触れる機会がありまして、それぞれのサービスでどのような違いがあるのかが気になったので、さっそく調べてまとめてみました。

本記事では概要レベルではありますが、各サービスの特徴やランニングコストの違い、アプリが利用できるようになるまで(デプロイ)の工程差をポイントでまとめております。

本記事では、 Google Cloud で Cloud Run を、 AWS で Fargate をピックアップして比較をしております。

これからクラウドのコンテナサービスを運用しようと考えていて、
・クラウドプラットフォームの選定で迷っている。
・それぞれのクラウドのコンテナサービスでどのような違いがあるんだろう?
などのように気になっていて、ざっくりとサービスの違いや特徴を把握したい方向けの記事構成となっております。

 

★記事を読んでいただくに当たっての前提知識

  • コンテナについて知識があること
  • クラウドプラットフォームサービスである Google Cloud や AWS について、ある程度知識があること
  • コンテナが利用できるようになるまで(デプロイ)の流れの知識があること
 

それでは紹介していきます!

各サービスの特徴

 Cloud Run

  • 必要な設定をサービスで集約している分、利用できるようになるまで (デプロイ)の作業工程が少ない
  • 利用無料枠が存在する
  • 自動コールドスタンバイ機能あり
    ※アクセスが無い場合に自動でサーバ(タスク)を停止し、スタンバイ状態となる。
    スタンバイ状態は初回のアクセスで起動およびレスポンスに時間が掛かる。
  • デフォルトエンドポイントが備わっている (ロードバランサーがなくても直接のアクセスが可能)
    ※可用性や性能・拡張性、セキュリティを考慮してロードバランサーや WAF の導入は別途検討した方が良い。

 Fargate

  • 各設定項目がリソースとして分かれており、細かな設定が可能
  • 1台(タスク)あたりのスペックやタスク数の上限値が高い

 

ランニングコスト比較

サービス コスト計算 月額コスト例
(1CPU/1GBの場合)
無料枠の有無
Cloud Run CPU: $0.000018 / vCPU 秒
メモリ: $0.000002 / GiB 秒 ※100ミリ秒単位
$51.84
($46.656+$5.184)
あり
Fargate CPU: $0.00001404 / vCPU 秒
メモリ: $0.00000154 / GB 秒 ※1秒あたりで計算 (最低1分)
$40.38
($36.39168+$3.99168)
なし

※ ランニングコストの算出は2024/6/1時点を参考にしている。
※ グローバルIPアドレスなどのランニングコストは見積対象外としている。
※ Fargateについては最小構成で利用するために別途ロードバランサーが必要となる。(+$22.27~ ランニングコストの上乗せが発生。)

参考

Cloud Run

https://cloud.google.com/run/pricing?hl=ja

 

Fargate

https://aws.amazon.com/jp/fargate/pricing/

 

拡張性の比較

サービス 1台あたりの
最小スペック
1台あたりの
最大スペック
サービス上の
タスク上限数
(いずれも制限引き上げ不可)
備考
Cloud Run CPU: 0.08
メモリ: 128MB
CPU: 8
メモリ: 32GB
1,000 CPU を1以下にする場合は、インスタンスあたりの最大同時リクエスト数を1にしなくてはならない。
Fargate CPU: 0.25
メモリ: 512MB
CPU: 16
メモリ: 120GB
5,000

デプロイ手順の比較

Cloud Run

  1. コンテナイメージをデプロイ ( Artifact Registry サービスにイメージ作成のビルド&プッシュを行う)
  2. サービスを作成

 

補足

  • スペック変更を含むサービスの設定変更は、新しいリビジョンの編集とデプロイで行う必要がある。
  • デフォルトで自動コールドスタンバイ設定となっている。
    常時起動にしたい場合は、最小インスタンスを1とし、 CPU ブーストを有効にしておく必要がある。

 

Fargate

  1. コンテナイメージをデプロイ ( ECR サービスにイメージの作成&プッシュを行う)
  2. タスク定義を作成
  3. クラスタを作成
  4. サービスを作成

 

補足

  • タスクを起動して利用可能になるまでの流れは以下のとおりとなる。
    • クラスタ作成 (サービスを載せる基盤)
    • タスク定義作成 (コンテナタスクの設定情報)
    • サービス作成 (タスクのデプロイ設定)
  • サービスのタスクは、設定したタスク数分常時起動となる。
  • スペック変更などの設定変更はタスク定義で変更を行い、サービスで新しいタスク定義のリビジョンをデプロイする必要がある。 (設定変更とデプロイが分かれている。)

 

まとめ

各クラウドサービスで比較をしてみて感じた所見をまとめます。

Cloud Run

  • デプロイまでの工程が少なく、機能が複雑ではないため入りやすいと感じた
  • Cloud Run のほうは起動に必要な設定をサービスで集約している分、 Fargate と比べて構築工程が少なくなっている。(設定の為のリソースがサービスに集約されている。)
  • 社内システムや小~中規模のような、クリティカルなサービスを展開しない場合には、以下の特徴がコスト削減に繋がり、コストパフォーマンスが良いと感じた。
    • 利用無料枠が存在する
    • 最小構成でロードバランサーが不要
    • 自動コールドスタンバイ機能が存在する
  • ミニマム構成であればサービスにエンドポイントが付与されるため、ロードバランサー無しですぐサービスにアクセス可能。

Fargate

  • 高負荷が掛かるような大規模なサービスを展開する場合には、1台あたりのサーバ(タスク)のスペックを高性能にすることができるため、より安定した機能を提供できそうだと感じた。
  • タスクの設定変更とデプロイの機能が分離されており、設定変更時のデプロイ運用が少し複雑になると感じた。
  • ロードバランサーや WAF を必要とするサービスを展開する場合には、 Cloud Run と比べてランニングコストが少し安くなりそうだと感じた。

 

いかがでしたでしょうか?

本記事を見て少しでも各クラウドでの違いや特徴を理解し、お役に立てれば光栄です。それでは!

2024年7月5日 【Google Cloud】【AWS】コンテナサービスの比較 (Cloud Run / Fargate)

Category Google Cloud

ご意見・ご相談・料金のお見積もりなど、
お気軽にお問い合わせください。

お問い合わせはこちら