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
150
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
8.7k
AWS CDKのススメ
tokku5552
1
460
Messaging APIのメッセージオブジェクトを検証できるChrome拡張機能を作った話
tokku5552
1
110
FlutterにLINEログインを仕込んで通知メッセージを送る
tokku5552
2
880
AWS CDK × Reactでliffをつくる
tokku5552
1
500
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
tokku5552
1
84
ネットワーク基礎 - WEBページが表示されるまで
tokku5552
1
230
インフラエンジニアのお仕事(オンプレ)
tokku5552
0
120
hooks riverpod + state notifier + freezed でのドメイン駆動設計
tokku5552
0
350
Other Decks in Programming
See All in Programming
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
290
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
210
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
210
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
170
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
330
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
2
200
fs2-io を試してたらバグを見つけて直した話
chencmd
0
230
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
740
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
210
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
66
4.5k
RailsConf 2023
tenderlove
29
940
Product Roadmaps are Hard
iamctodd
PRO
49
11k
How GitHub (no longer) Works
holman
311
140k
How to train your dragon (web standard)
notwaldorf
88
5.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
GraphQLとの向き合い方2022年版
quramy
44
13k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
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など主要スタンドで配信中!