Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Google CloudとAWSのコンテナ実行環境比較
Search
tokku5552
February 22, 2024
Programming
0
140
Google CloudとAWSのコンテナ実行環境比較
Google CloudとAWSのコンテナ実行環境比較
2023/2/22 【Google Cloud】GDG Tokyo Monthly Online Tech Talksにて登壇
tokku5552
February 22, 2024
Tweet
Share
More Decks by tokku5552
See All by tokku5552
高スループット・低レイテンシを実現する技術
tokku5552
3
7.8k
AWS CDKのススメ
tokku5552
1
450
Messaging APIのメッセージオブジェクトを検証できるChrome拡張機能を作った話
tokku5552
1
100
FlutterにLINEログインを仕込んで通知メッセージを送る
tokku5552
2
850
AWS CDK × Reactでliffをつくる
tokku5552
1
470
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
tokku5552
1
82
ネットワーク基礎 - WEBページが表示されるまで
tokku5552
1
230
インフラエンジニアのお仕事(オンプレ)
tokku5552
0
110
hooks riverpod + state notifier + freezed でのドメイン駆動設計
tokku5552
0
330
Other Decks in Programming
See All in Programming
Java ジェネリクス入門 2024
nagise
0
600
弊社の「意識チョット低いアーキテクチャ」10選
texmeijin
5
23k
レガシーな Android アプリのリアーキテクチャ戦略
oidy
1
170
Kotlin2でdataクラスの copyメソッドを禁止する/Data class copy function to have the same visibility as constructor
eichisanden
1
140
Honoの来た道とこれから
yusukebe
19
3k
外部システム連携先が10を超えるシステムでのアーキテクチャ設計・実装事例
kiwasaki
1
230
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
3
400
カスタムしながら理解するGraphQL Connection
yanagii
1
1.2k
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
550
推し活としてのrails new/oshikatsu_ha_iizo
sakahukamaki
3
1.7k
CSC509 Lecture 09
javiergs
PRO
0
110
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
210
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Music & Morning Musume
bryan
46
6.1k
Art, The Web, and Tiny UX
lynnandtonic
296
20k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
[RailsConf 2023] Rails as a piece of cake
palkan
51
4.9k
Statistics for Hackers
jakevdp
796
220k
Fireside Chat
paigeccino
32
3k
Documentation Writing (for coders)
carmenintech
65
4.4k
The Art of Programming - Codeland 2020
erikaheidi
51
13k
GitHub's CSS Performance
jonrohan
1030
460k
Navigating Team Friction
lara
183
14k
Transcript
Google CloudとAWSの コンテナ実行環境比較 【Google Cloud】GDG Tokyo Monthly Online Tech Talks
2024/2/22 徳田真之介
自己紹介 徳田真之介 (とっく - @tokkuu) • 株式会社 Cyber Agent ◦
AI事業本部 • 好きな技術 ◦ TypeScript/Go/App Runner/Cloud Run ◦ Flutter/Firebase • 趣味など ◦ 3歳の娘のパパ ◦ ポーカー(超初心者) 2
はじめに
はじめに • AWS -> Google Cloudへの載せ替えを検討する際に整理した内容 ◦ 比較する単位の合わせ方や観点は主観で選んでます • 開発段階なので、実際運用してみた知見は含まれません
• アプリケーションエンジニア(バックエンドメイン)のみのチームで運用するという観点 なので、専属のSREやプラットフォームエンジニアが居る場合は結論が異なると思 います • zennの記事「Amazon ECSとApp RunnerとCloud runの比較」 https://zenn.dev/tokku5552/articles/diff-aws-google-cloud
背景 • AWSで構築していた広告配信シ ステム(DSP)をGoogle Cloudで構 築している。 • まだリリース前なので運用した所 感などはないが、開発段階での 気付きなどをシェア。
5 https://speakerdeck.com/tokku5552/gao-surupututodi-reitensiwoshi-xian-suruji-shu
Real Time Biddingの流れ 6 SSP ユーザー DSP ①インプレッション ②リクエスト AD
• ユーザーが広告を表示しようとしていることをSSPが検 知。 • SSPはDSP(複数)に対してリクエストを行う。
Real Time Biddingの流れ 7 SSP ユーザー 広告主 キャンペーン1 キャンペーン2 キャンペーン3
DSP ①インプレッション ②リクエスト ③入札(内部) ¥100 ¥120 ¥90 AD AD AD AD • DSPに予め登録しておいた広告の候補を内部で精査し て、いくらで入札するかを決定。(インナーオークション)
Real Time Biddingの流れ 8 SSP ユーザー 広告主 キャンペーン1 キャンペーン2 キャンペーン3
DSP ①インプレッション ②リクエスト ③入札(内部) ④入札(外部) ¥100 ¥120 ¥90 ¥120 AD AD AD AD AD • SSPに対して入札額と広告の情報を返却
Real Time Biddingの流れ 9 SSP ユーザー 広告主 キャンペーン1 キャンペーン2 キャンペーン3
DSP ①インプレッション ②リクエスト ③入札(内部) ④入札(外部) ⑤落札 DSP(A社) ¥100 ¥120 ¥90 ¥120 ¥110 AD AD AD AD AD AD • 他のDSPと比べて一番高い額で落札
Real Time Biddingの流れ 10 SSP ユーザー 広告主 キャンペーン1 キャンペーン2 キャンペーン3
DSP ①インプレッション ②リクエスト ③入札(内部) ④入札(外部) ⑥掲載 ⑤落札 DSP(A社) ¥100 ¥120 ¥90 ¥120 ¥110 AD AD AD AD AD AD
Real Time Biddingの流れ 11 SSP 秒間 数十万リクエスト に対して 50ms でレスポンス
ユーザー 広告主 キャンペーン1 キャンペーン2 キャンペーン3 DSP ①インプレッション ②リクエスト ③入札(内部) ④入札(外部) ⑥掲載 ⑤落札 DSP(A社) ¥100 ¥120 ¥90 ¥120 ¥110 AD AD AD AD AD AD
12 AWSでの構成
チーム体制 • プロダクト立ち上げというのもあり 実際に手を動かしているエンジニ アは3名 • FE・BE・SREなどのポジションはな く、全員全部やるスタイル (一応みんなBEがメイン) •
EKSやGKEなどのKubernetes サービスは除外 13 エンジニア 3名 PM・Biz
比較
Amazon ECS (on Fargate) • Amazon ECSはフルマネージドの コンテナオーケストレーションサービス • 稼働する場所(キャパシティ)をEC2か
Fargateか選べる。 • AWS Fargateはサーバーレスのコンテナ実行 環境。 15
App Runner • AWSが提供するフルマネージドの コンテナアプリケーションサービス • ECSよりも管理すべき部分が少なく、GitHubのリ ポジトリもしくはECRなどのイメージリポジトリと接 続して、CD環境が勝手に作られる。 •
カスタムドメインやHTTPSリダイレクト、Secret Manager、WAFもサポート (最近) • DSPシステムに採用できるほどではないが、 Cloud Runに近いので比較 16
Cloud Run • Google Cloudが提供するフルマネージドなコ ンテナ実行環境 • 対応している言語であればDockerfileなしで もデプロイ可能 •
コールドスタートが可能 17
18 サービス 最大vCPU 最大メモリ スケーリング上限 ECS on Fargate 16vCPU 120GB
5000(サービスあたりのタスク 数) App Runner 4vCPU 12GB 25 Cloud Run 8vCPU 32GB 1000(CPUやメモリによって変 動) 設定できるリソースとスケーラビリティ • App RunnerはDSPというワークロードには向いていなさそう • 元のシステムでの稼働実績としてはCloud Runで賄える
19 サービス 料金 1ヶ月あたりの料金目安 (1vCPU/1GBと仮定) 備考 AWS Fargate(ECS) Linux/ARM・東京リージョン vCPU当たり0.04045USD/h
メモリ1GBあたり0.00442USD/h 32.3064 USD App RunnerやCloud Runと 同じ構成にするには他のリ ソースが必須(ALBとか) App Runner アジアパシフィック (東京) リージョン 料金は 0.009 USD/GB 時および 0.081 USD/vCPU 時 64.8 USD 常時アクティブな場合の料 金 Cloud Run $0.00001800 / vCPU 秒 $0.00000200 / GiB 秒 51.84 USD 無料枠あり 料金による比較 • 実際の課金額はカタログスペックと逆転することもありそう
その他のポイント • App Runnerはimage uriにlatestタグを指定 しておくと、latestのイメージを更新するだけ で勝手にデプロイが走ってくれる • Cloud Buildの使い勝手が良い(主観)
• ECS、Cloud Runはサイドカーに対応している (App Runnerだけしてない...) 20
Cloud Runのメリット・デメリット(主観) • App RunnerとCloud Runはインフラ側の管理コストが かなり低く感じる • 管理コストに対して対応できるワークロードの幅が良 い(広く対応できる)
• Cloud Build使いやすい ◦ モノレポでも使えそう。 Code Pipeline系はモノレポだと厳し かった。 21 • VPCとの接続が分かりづらい • FireLens的なの欲しい メリット デメリット
Podcastやってます! https://podcasters.spotify.com/pod/show/5rh9uag8ah エンジニアがもがくラジオ エンジニアのキャリアなどについて雑談している Podcastです Spotify/Apple Podcast/Google Podcast/Amazon Musicなど主要スタンドで配信中!