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
AWSからGCP/GKEに移行してみた / From AWS to GKE on GCP
Search
yukinagae
September 09, 2019
Technology
6
8.7k
AWSからGCP/GKEに移行してみた / From AWS to GKE on GCP
Slides for Webエンジニアが使う身近な Kubernetes 2019/09
https://m3-engineer.connpass.com/event/143295/
yukinagae
September 09, 2019
Tweet
Share
More Decks by yukinagae
See All by yukinagae
BerglasとCloud Buildを使って秘密情報をセキュアに(できるかも) / Berglas with Cloud Build
yukinagae
1
1.1k
ある機械学習システムをAWSからGCP/GKEに移行した話 / Machine Learning System Migration from AWS to GKE
yukinagae
8
3.8k
Python用のマイクロサービスフレームワークを探す旅 / A journey to find a microservices framework for Python
yukinagae
0
1.1k
Spotifyのレコメンドを理解する / Recommender Systems using Collaborative Filtering - Spotify
yukinagae
1
580
kintone事例紹介 JAMS.TV ケーススタディ / kintone-casestudy-jamstv
yukinagae
0
200
BigQuery MLの新機能紹介 Cloud Next '19 / BigQuery ML New Features Announced at Google Cloud Next 2019
yukinagae
2
16k
学習行動データ分析基盤 Learning Record Store(LRS)開発事例 / LRS case study
yukinagae
5
1.8k
本当に簡単なkaggleの始め方 / Easy Way to Start Kaggle - short ver.
yukinagae
2
480
本当に簡単なkaggleの始め方 / Easy Way to Start Kaggle
yukinagae
2
3k
Other Decks in Technology
See All in Technology
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
240
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
280
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
32k
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
380
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
190
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
250
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
480
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
16
4.3k
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
110
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
160
Postman と API セキュリティ / Postman and API Security
yokawasa
0
200
Featured
See All Featured
Speed Design
sergeychernyshev
25
670
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Designing for humans not robots
tammielis
250
25k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
4 Signs Your Business is Dying
shpigford
181
21k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Agile that works and the tools we love
rasmusluckow
328
21k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
The Language of Interfaces
destraynor
154
24k
Transcript
AWS からGCP/GKE に移行してみた Web エンジニアが使う身近な Kubernetes - 2019/09 @yukinagae
早速ですが
今日の勉強会のテーマ覚えてますか?
Web エンジニアが使う 身近なKubernetes
ふむ ( `・ω ・´)
と言いつつ難しいんでしょう? (/ ・ω ・)/ 汗
ご安心ください 今からゆるふわな話だけします
というか 先々月からk8s 触り始めたので ゆるふわな話しかできません ( ˘ω˘) スヤァ
_人人人人人人人人人人_ > 圧倒的な経験不足 <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y  ̄
優しい世界でお願いします
ここから本題
本番環境でGKE を使い始めました! (今日)
登壇に間に合ってよかった 登壇駆動開発(TDD )(/ ・ω ・)/
TL;DR 既存AWS システムをGCP/GKE 化した(まず一部) AI チームではGCP/GKE 化を進めてる GCP/GKE 化の理由 可用性の向上
リリースサイクルの高速化 インフラコストの削減 ( リソースの共有) 「GKE 使うぞ!」という熱い気持ち ← New! 14
自己紹介 永江悠紀 @yukinagae エムスリー株式会社 ソフトウェアエンジニア データエンジニア寄り 元々Java/Scala でサーバサイドの開発をやっていた 最近はGo +
Python を触ることが多い クラウド周りはGCP のみを担当 (※AWS はよくわ かっていない) terraform + yaml を触る日々 15
システム移行の背景 M3 では多くのシステムをオンプレ or AWS で構築 AI チームではすでに複数の機械学習のサービスを 開発・リリース(※基本的にAWS )
※詳しくはこれを見てね: エムスリーにおける 機械学 習活用事例と開発の効率化 - Speaker Deck 16
多数のマイクロサービス 短い1 年半という間に7 つのサービスがリリース 現在も増加中 すごいね!(´∀`) 17
ポイント 1. サービス数(API )が多い 18
今回の移行対象のシステム Cantor 記事などのコンテンツの関連度(類似度)を計 算するシステム(API ) ※おまけ: AI チームではシステムに数学者の名前をつ ける文化があり(中二病!)、実際に Georg
Cantor というドイツの数学者がいます( `・ω ・´) 19
既存システム構成 GCP BigQuery AWS ECS S3 DynamoDB Lambda API Gateway
20
既存システム構成(図) 21
ん? ( `・ω ・´) 22
既存システムの課題① 現状のシステム構成だと、GCP/BigQuery -> AWS と いうクラウドをまたいだ構成になってしまっている 23
ポイント 2. BigQuery とAWS の混在 24
既存システムの課題② Cantor というシステム構成特有の課題: Lambda でもろもろ問題があった 15 分に一度バックエンドのECS が停止されてし まう(確率的にタイムアウトが発生) 25
既存システムの課題③(※改善点) 簡単・頻繁にリリースしたい すぐリリースしたい(※カナリアリリース etc ) バグなどの際すぐ以前のバージョンに戻したい マイクロサービスが増えているので各環境を用意 するのは大変 運用や管理が面倒 インフラコストがかかる
26
ポイント 3. どんどんリリースしたい 27
いろいろ選択肢あるよね AWS なら EC2 ECS EKS GCP なら Cloud Run
GAE ( ex ) GCE GKE 28
技術選定のポイントいろいろ インフラコスト 運用の手間 クラウドベンダーのサービスの成熟度やマイルス トーン ワークロードの特性 必要なリソース要件 チーム体制(ex. 人数 /
スキル / 学習コスト) 29
ポイントを振り返る 1. サービス数(API )が多い 2. BigQuery とAWS の混在 3. どんどんリリースしたい
30
もろもろありましたが 結局、、、 31
解決案: AWS/ECS → GCP/GKE 32
GKE でいい感じに作れるのでは? ( `・ω ・´) 33
想定するメリット コスト削減 複数サービスをGKE で構築しリソース最適化 メンテナンスコストも削減(されるはず) リリースの高速化 オーダーメイドから量産体制へ terraform k8s 可用性も向上
全部GCP にできてBigQuery もにっこり(´∀`) 34
それでは早速やっていきましょう 35
移行方針: どうやって移行する? 1. まずはAPI 部分(システムの一部)からの移行 2. 段階的にすべてを移行していく まずはAPI 部分からの移行を実施 影響範囲を小さくしたい
API だけなら最悪どうにでもなる もともとのAWS ヘの切り戻しも容易 機械学習部分をいきなり移行してデグレったら 嫌だよね(/ ・ω ・)/ 汗 36
移行後の構成(API 部分のみ) ここまでリリースできた 37
移行後の理想(全部GCP/GKE 化) 38
今後の移行方針 既存サービスのGCP/GKE 化 まずは今回のプロジェクトで導入実績を作り、 運用経験を積む 他サービスも徐々に移行していく(※移行すれ ばするほど、インフラ・運用コストを削減でき る) 新規サービスは最初からGCP/GKE で構築
現在 @katio2 が開発中、年内にリリース予定 39
移行してみての感想 40
k8s 難しいよ k8s/GKE のノウハウが少ない(※特に運用面) そもそもk8s 自体の学習コストが高い ある日のtwitter のつぶやき 41
つまり
Web engineer should be k8s itself!
まとめ 良かったこと terraform + yaml でk8s 環境構築・リリースは楽 とりあえず本番リリースはできた 悪かったこと ノウハウや経験がないので手探り
k8s の公式ドキュメントそのままだと動かない GKE はだいたいβ 版 本番運用でいろいろ問題起きると思うので怖い (ガクブル) 44
ありがとうございました! (´∀`) 45
F.Y.I. おまけ 既存のAWS システムではdatadog をdashboard で使 ってたが、GCP で使うのは辛い PubSub 経由でdatadog
にpush する仕組みを毎回 作らないといけない GCP プロジェクト毎に認証をしないといけない の大変 datadog APM の導入はめちゃくちゃ楽 しかし、もちろんcontainer 周りの指標しか取得 できない 46
stackdriver monitoring 使う理由 datadog 用に追加のintegration 作業が不要 複数プロジェクトを一つのworkspace にまとめれ ば、GKE やCloud
SQL のプロジェクトが別でも1 つ のdashboard で監視できる alert policy やuptime check もそのまま作れる 47
現状の運用・監視方法 GCP の場合にはStackdriver 使うことにした Stackdriver monitoring での監視 alert policy の作成
+ slack 通知 dashboard の作成 Stackdriver trace でのパフォーマンスチェック opencensus 入れた Stackdriver for python はα 版。。。( `・ω ・´) 汗 48
参考資料 GCP Google Kubernetes Engine Stackdriver Monitoring OpenCensus OpenCensus GitHub
- census-instrumentation/opencensus- python 49
Special Thanks! ( ˘ω˘) スヤァ @kaito2 @saiya_moebius @SassaHero @yokomotod @chidakiyo
50