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
GCP native cloud migration
Search
Ryosuke TAKASHIMA
December 03, 2020
Programming
560
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GCP native cloud migration
Ryosuke TAKASHIMA
December 03, 2020
More Decks by Ryosuke TAKASHIMA
See All by Ryosuke TAKASHIMA
Cloud migration of the essential service
rst76
1
630
About purely functional language
rst76
0
160
performance-tuning-of-the-microservice.pdf
rst76
0
1.7k
red-black-tree.pdf
rst76
0
96
Understanding Subtype in 5 Minutes
rst76
0
200
Fun of Types
rst76
0
68
Embedded Probabilistic Programming
rst76
0
400
Other Decks in Programming
See All in Programming
ソフトウェアラスタライザ
fadis
1
790
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
190
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
210
新卒PdEのリアル
ryu1013
1
420
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
120
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
220
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
340
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
120
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
1
940
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
640
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
110
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
750
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
520
Designing for Timeless Needs
cassininazir
1
470
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
430
The Spectacular Lies of Maps
axbom
PRO
1
980
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
370
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
Transcript
GCP native なクラウド移行 〜 2000年創業エムスリーが挑む 大規模クラウド移行の舞台裏 #2 〜 2020/12/03 高島 亮祐
自己紹介 • 高島 亮祐(@rst76) • 2019/01- エムスリー 基盤開発チーム ◦ 認証やメール配信など共通サービスの開発運用
◦ 最近はクラウド移行がメイン • 最近学んだこと: メダカは秋でも卵を産む(狭い部屋がさらに狭く…)
エムスリーの標準的なクラウド移行 • Web サーバ、AP サーバは Fargate に • DB は
Aurora や RDS に • ALB、Route 53、S3、Cloud Watch、Lambda • 基本に忠実な構成
今回移行したサービス • ユーザーのアクティビティをトラッキング ◦ ページに埋め込まれた画像リンクからアクセス ◦ アクセスを記録 ◦ 実際の画像の URL
にリダイレクト ◦ 画像を取得 • アクセス増加に伴って性能問題の 一因となっており、クラウド化 • よし、GCP でサーバーレスだ トラッ キング コンテ ンツ ① ② ③ ④ ① ② ③ ④
GCP アーキテクチャ(旧) オンプレミス ブラウザ ロード バランサ Webサーバ apache アップ ローダ
(随時) ログ Webサーバ apache DB アップ ローダ (日次) アップ ローダ ログ BigQuery 他のサービスと共用で 相互に悪影響… 移行にともない この経路は廃止
アーキテクチャ(新) ブラウザ GCP Cloud Pub/Sub Cloud Dataflow BigQuery Cloud Run
(随時) (日次) 基本的な流れは単純 → ぜんぶ GCP でいけそう 既存の連携処理と並行稼働が 必要で構成が少し複雑に
Cloud Run • 役割はログ出力とリダイレクトなので nginx だけのコンテナ • Kubernetes の管理はしたくないので、フルマネージドを選択 •
Cloud Pub/Sub への連携はログ出力先を設定するだけ • とても楽だが注意点も ◦ 1 つのコンテナインスタンスが受信できるリクエストは最大 80 ◦ リクエスト数や連携するログ容量も従量課金 GCP Cloud Pub/Sub Cloud Dataflow BigQuery Cloud Run (随時) (日次)
Cloud Pub/Sub • 安定性のために導入 → 非常に安定して稼働しており安心 • at-least-once の仕様が問題になる場合は対応が必要だが、 今回は対応せず
GCP Cloud Pub/Sub Cloud Dataflow BigQuery Cloud Run (随時) (日次)
Cloud Dataflow • 単純なデータ連携なら Google の提供するテンプレートをそのまま 利用可能 ◦ 例:BigQuery のスキーマに則った
JSON が Cloud Pub/Sub にある • 今回はデータ加工のために実装する必要があった • データ連携という要求の単純さと比べると、実装は面倒 ◦ Google の提供するテンプレート(Pub/Sub Subscription to BigQuery)は複雑(Apache Beam、AutoValue など独特の技術) ◦ 実装しなくてすむよう事前にデータを加工しておく方がいいかも GCP Cloud Pub/Sub Cloud Dataflow BigQuery Cloud Run (随時) (日次)
BigQuery • BigQuery to BigQuery の連携に、Scheduled Query を利用 ◦ SQL
を定時起動するだけなので、管理は非常に容易 ◦ 通常のデータ連携では、あまり出番がないかも ◦ エムスリーでは、GCS / S3、既存の RDB、スプレッドシートなどの 外部データソースからデータを取り込むのにも使われている GCP Cloud Pub/Sub Cloud Dataflow BigQuery Cloud Run (随時) (日次)
料金 Cloud Run の CPU (同時実行設定に誤り…) Cloud Run の リクエスト数
ログ容量 Cloud Dataflow の CPU フロントエンド(Cloud Run の部分)を AWS にした類似サービスも
まとめ • GCP でも問題なくクラウド移行できた • 細かい制約に注意が必要 ◦ Cloud Run はリクエスト数に対して従量課金
◦ Cloud Run の同時接続数 ◦ Cloud Dataflow の実装要否 • 基盤開発チームはメンバを募集中です! (12/16 に採用説明会を予定)