Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GCP Compute 概要と選定 / DevFest Tokyo 2018

Masahiro Wakame
September 01, 2018

GCP Compute 概要と選定 / DevFest Tokyo 2018

Masahiro Wakame

September 01, 2018
Tweet

More Decks by Masahiro Wakame

Other Decks in Technology

Transcript

  1. GCP Compute 概要と選定
    DevFest Tokyo 2018
    わかめ まさひろ
    クラウド初⼼心者向け!

    View Slide

  2. わかめ まさひろ @v vakame
    Masahiro Wakame
    GAE/Go
    TypeScript
    技術書典

    View Slide

  3. 本⽇日のテーマ
    •GCPのサービスをいくつか紹介
    •これからGCPを始める⼈向け(初級)
    •クラウド、やっていきます!
    始めた後に後悔悔しない!

    View Slide

  4. クラウド⼼心得
    あなたもアプリも
    変わるともっと幸せ

    View Slide

  5. クラウドとは
    •⾃分で何もかも管理するの だる…
    •追加リソースの調達が秒でできる
    •管理を外部(Googleとか)にやってもらう
    •システムの価値増⼤に注⼒できる!
    セキュリティ周りも仕組み多数

    View Slide

  6. 可⽤用性について
    •スケールアップɾダウン →
    •1台が強くても限界が来るし運⽤⾟い
    •スケールアウトɾイン→
    •台数の増減で対応のほうが運⽤が楽
    SpinUp, SpinDown

    View Slide

  7. 可⽤用性について
    •DBボトルネック問題
    •マスターがスケールしない問題
    •Cloud SQL(MySQL)でよくある
    •分散データベース → 可能であればこっち

    View Slide

  8. 分散処理理に慣れる
    •クラウド ≒ 分散処理 (縛ると不便)
    •いつマシンが増えるかわからん
    •いつマシンが減るかわからん
    •状態をメモリにだけ持つと死ぬ!!
    •ある時突然死ぬ (ことを許容すると安い)
    graceful shutdown…

    View Slide

  9. 分散処理理に慣れる
    Load Balancer
    どのサーバに⾏行行くかわからん!

    View Slide

  10. 適材適所
    •特性を知れば知るほど上⼿にできる
    •特性≒⾧所と短所
    •短所(秘孔)を突く=まもなく死ぬ
    •有識者に相談する=コスパ良

    View Slide

  11. IaaS, PaaS, SaaS
    •IaaS = Infrastructure as a Service
    •PaaS = Platform as a Service
    •SaaS = Software as a Service
    柔軟 運⽤用⼤大変
    不不⾃自由 運⽤用楽

    View Slide

  12. チームと組織の話
    •組織構造から逆算して設計を決める
    •Microservice vs Monolith
    •Monolithでもクラウドの恩恵⼤!

    View Slide

  13. ⾦金金
    •cloud.google.com/products/calculator/
    •計算してみましょう
    •youtu.be/TaO-GbvBonc
    •Pokemon Go Datastore→Spanner 50%減
    Spanner最⼩小推奨構成⽉月額22万円くらい

    View Slide

  14. 略略語⼀一覧

    View Slide

  15. GCP = Google Cloud Platform, GAE = Google App
    Engine, CF = Cloud Functions, GCE = Google
    Compute Engine, GKE = Google Kubernetes
    Engine, k8s = Kubernetes, BQ = BigQuery, GCS =
    Google Cloud Storage, GCB = Google Cloud Build,
    ML = Machine Learning, TF = TensorFlow, IAM =
    Identity & Access Management, VPC = Virtual
    Private Cloud, IAP = Identity-Aware Proxy, GCLB =
    Google Cloud Load Balancing

    View Slide

  16. サービス概要
    cloud.google.com/docs/choosing-a-compute-option

    View Slide

  17. Google App Engine
    AppEngine, GAE

    View Slide

  18. メリット
    •Webアプリ構築に便利
    •管理いらずメンテいらず⼿間いらず
    •⾃動でスケール
    •⾼速なスピンアップ(起動)
    •100msとかで1台確保できる(Goの場合)

    View Slide

  19. メリット
    •Service, Versionの概念がある
    •リリースのロールバックも容易
    •専⽤Managedサービスがある
    •→最近は是正の動きがある
    •⼩さいチーム、運営に向いている

    View Slide

  20. デメリット
    •固定IPアドレス使えない
    •GCEにProxy⽴てたりして対処
    •好きなツールをインストールできない
    •Java, Python, Node.js で緩和(2nd gen)
    AppEngineに魂がロックイン

    View Slide

  21. 実は2種類類ある
    •Standard Environment (SE)
    •⾃由度は少ない SpinUp⾼速!
    •Flexible Environment (FE)
    •裏でGCEが⽴ち上がる SpinUpは遅い
    SEだけがAppEngineです(過激派

    View Slide

  22. Google Kubernetes Engine
    GKE

    View Slide

  23. メリット
    •Kubernetes関連システム⼀式
    •コンテナオーケストレーション
    •複数アプリ、Microserviceなんでもござれ
    •やりたいこと全部できる…!(かも?

    View Slide

  24. メリット
    •Load BalancerなどGCPフル活⽤
    •GKE On-prem の登場…
    •オンプレミスにNode pool作れるやつ
    •実践できてる企業さん、おる?

    View Slide

  25. デメリット
    •まだOSSとして発展途上
    •運⽤チームがいないと⾟い
    •要求される勉強量が単純に多い
    •Spinnaker, Envoy, Istio etc, etc…

    View Slide

  26. Google Compute Engine
    GCE

    View Slide

  27. メリット
    •素のVirtual Machine相当
    •⾃分でなんもかんも管理運⽤する必要
    •Docker imageそのまま動かしたりも…
    •APIで上げ下げできるのでbare metalより
    はマシ

    View Slide

  28. デメリット
    •⾃分で管理しないといけない(時も)
    •OSのパッチ管理とかも…
    •基本何らかの抽象化があったほうが…
    •GAE/FE, Dataflow, etc…

    View Slide

  29. Cloud Functions
    CF(稀)

    View Slide

  30. メリット
    •イベント処理を捌くのが主な⽤途
    •アプリリクエストの処理はちょっと微妙
    •単機能ɾ管理不要
    •Node.js v8, Python 3.7 に対応
    •AppEngineとは課⾦形態が違う

    View Slide

  31. デメリット
    •単⼀関数がデプロイ単位
    •アプリの構成には向かない
    •関数有りすぎ問題
    •ていうかAppEngineでよくね?
    と信者が申しております

    View Slide

  32. Firebase Hosting
    Firebaseと略略しては
    いけない…(他にも⾊色々

    View Slide

  33. メリット
    •ファイルホストできる
    •redirectとかの設定ちょろちょろ書ける
    •Web frontendの⼈はこれで満⾜では?
    •Netlify, GitHub Pages…

    View Slide

  34. デメリット
    •サーバ上で計算はできない
    •CFに投げるかAppEngine使うか…
    お⼿手軽!

    View Slide

  35. CF for Firebase
    •Cloud Functions for Firebase
    •CFとは微妙に異なる
    •デプロイに使うツールも違う
    •Firebase関連機能を使うならこっち

    View Slide

  36. 体験するには?

    View Slide

  37. Codelabs
    •各プロダクトのQuickStart的なの
    •codelabs.developers.google.com

    View Slide

  38. お⼿手軽フローチャート
    ざっくりわかる!

    View Slide

  39. VMだけあればいい?

    View Slide

  40. VMだけあればいい?
    Compute Engine
    Yes! No…

    View Slide

  41. 運⽤チームが作れる?

    View Slide

  42. 運⽤チームが作れる?
    Kubernetes Engine
    Yes! No…

    View Slide

  43. 特殊なことがやりたい?

    View Slide

  44. 特殊なことがやりたい?
    Kubernetes Engine
    Yes… No!

    View Slide

  45. ファイルをホストするだけ?

    View Slide

  46. ファイルをホストするだけ?
    Firebase Hosting
    Yes! No…
    AppEngine

    View Slide

  47. イベントを捌きたい?

    View Slide

  48. イベントを捌きたい?
    Cloud Functions
    Yes! No…

    View Slide

  49. AppEngineだと達成できない?

    View Slide

  50. AppEngineだと達成できない?
    Kubernetes Engine
    Yes… No!

    View Slide

  51. よろしいならばAppEngineだ
    GCPの他のサービスと
    組み合わせ可能か調べよう!

    View Slide

  52. もっと詳しく?

    View Slide

  53. GCPUG
    •GCP User Group
    •gcpug-tokyo.connpass.com
    •slack.gcpug.jp
    •github.com/gcpug/nouhau

    View Slide

  54. この後のGCPセッション
    •apstndb ←GCPマニア
    •sinmetal ←GCP⽣き字引
    •Kuma ←コンテナ(GKE)おじさん
    •永井 洋⼀ ←データ処理おじさん
    • 〃 ←機械学習おじさん

    View Slide

  55. この後のGCPセッション
    •11:20- GCPのデータベースストレージ
    •12:50- Cloud Kata
    •13:30- Container (タイトル雑では?)
    •14:10- GCPでつくるデータ処理パイプライン
    •14:50- Auto ML Overview

    View Slide

  56. View Slide