書類
Amazon ECSとApp RunnerとCloud runの比較

Amazon ECSとApp RunnerとCloud runの比較

AWS で 構築 し て い た dsp システム を Google cloud に 載せる 替える 必要 が あり 、 今回 は その 肝 と なる コンピューティング リソース に つい て 記載 し ます 。 元のシステムがどんなものだったかは、↓の登壇資料をご参照ください。 簡

Related articles

GoogleOneVPNをPC(windows)で使う方法。速度測定 筑波大学VPN Gateの危険性【安全でない理由を解説】 【無料VPN】たまに使うだけなら「マイクロソフトEdge」のVPNで良いかも。って話 パソコンから iPhone にファイルを送る方法(iCloud Drive) AzureVPN(P2S)でAzure証明書認証をする方法

AWS で 構築 し て い た dsp システム を Google cloud に 載せる 替える 必要 が あり 、 今回 は その 肝 と なる コンピューティング リソース に つい て 記載 し ます 。

元のシステムがどんなものだったかは、↓の登壇資料をご参照ください。

簡単な比較

Amazon ECS

Amazon ECS is 選ぶ は フルマネージド の コンテナ オーケストレーション サービス で 稼働 する 場所 ( Amazon ECS capacity ) を EC 2 か fargate か 選ぶ 事 が でき ます 。
管理コストを下げつつ、高負荷にも耐えれるコンテナホスティング環境としてファーストチョイスになるかなと思います。

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/Welcome.html

AWS App Runner

こちらもAWSが提供するフルマネージドのコンテナアプリケーションサービスで、ECSよりも煩わしい設定なしにアプリケーションを動作させることができます。
ECSが2015年にGAしたのに対して、こちらは2021年にGAした比較的新しいサービスです。
個人でやっている案件で、こちらを採用しましたがかなり楽に扱えるので気に入っています。

https://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/what-is-apprunner.html

cloud RUN

AWSでいうとApp Runnerに近いですがソースコードからのデプロイがサポートされていたり、インスタンス数をゼロに設定することでアクセスが無いときに停止させたりすることができます。

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

料金 に よる 比較

サービス 料金 1ヶ月あたりの料金目安(1vCPU/1GBと仮定)
AWS Fargate(ECS) Linux/ARM・東京リージョン
vCPU当たり0.04045USD/h
メモリ1GBあたり0.00442USD/h
32.3064 USD
App Runner アジアパシフィック (東京) リージョン
料金は 0.009 USD/GB 時および 0.081 USD/vCPU 時
64.8 USD
cloud RUN $0.00001800 / vCPU 秒
$ 0.00000200 / GiB 秒
51.84 USD

注意すべきなのは、Fargateはそれ単体での料金となっており、App Runnerやcloud RUNと同等のことをやるには最低でもALBなどの追加リソースが必要であること(上記にはその値段が入っていない。)と、App Runnerは常時アクティブで何らかのアクセスが有る場合の料金で計算していて、夜間などにプロビジョニング状態に移行できる場合はもっと安くなります。
また、cloud RUNは毎月無料枠があります。

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

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

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

私の個人的な感覚でいうと、日中帯だけ使われるようなWebアプリケーションで、リクエスト量もそんなにない場合は、

AWS Fargate > App Runner > cloud RUN(コールドスタート有)

となり、一般的なWebアプリケーションではあるが、それなりにリクエスト量が多く、App Runnerのプロビジョニングやcloud RUNのコールドスタートがほとんど意味を成さない場合でも上記の順番になる感覚です。
最初 に 例 を 上げる た dsp の よう な 特殊 な 場合 で は 、 cloud RUN の ほう が 高い なる か も しれる ませ ん ( 実際 に 運用 し た こと 無い の で 比較 でき て い ませ ん が 。 APP runner は そもそも 耐える られ ない と 思う 。 )

設定できるリソースとスケーラビリティ

最大 vcpu 最大メモリ
ECS on Fargate 16vCPU 120 Gb
App Runner 4vCPU 12 Gb
cloud RUN 8vCPU 32 Gb

ECSが設定できるリソースの幅が最も広く、App Runnerが最も低い計算となりました。

オートスケールについては、少し古いですが以下のような記事があり、私もcloud RUNが最も優秀なイメージがあります。

https://typewriter.hatenablog.jp/entry/2021/05/21/231428

これ は 運用 し て み て 確かめる て み たい ところ です 。

その 他 の ポイント

ECSに関しては、Kubernetesほど管理が複雑ではないがそこそこカスタマイズ性が高いように感じます。
App Runnerとcloud RUNは設定が本当に楽でエンジニアの人数が少ないプロジェクトではありがたいです。
App RunnerはECRの指定するイメージタグをlatestにしておくと、ECRのlatestイメージを更新するだけで勝手にデプロイが走ってくれるのが個人的に気に入っています。

cloud RUNはGoogle Next Tokyo ’23の際に目にした、オートスケールのデモが印象的で、かなり素早くスケーリングしていたのでそのあたりで力を発揮してくれることを期待しています。

まとめ

今回少し調べてみて、意外とApp Runnerがそんなに安くないことがわかったので、個人的な用途で利用する際もcloud RUNを検討してみようかなと思いました。