GCPUG Tokyo February 2016に参加してきた

GCPUG Tokyo February 2016

2016/02/12(金) 19:00 〜 22:00

殴り書きなので記載ミスがあったらすいません。。

Compute Engine リソース概要

  • Local SSD
  • I/O重視したい人向け
  • snapshotは取れない
  • live migration対応した?(レプリカ作ったりするのは自分で?)

  • custom script

  • start / shutdown
  • shutdownは待ってくれないので注意。ベストエフォート

  • Network Load Balancer

  • TCP/IP Lv LoadBalancing
  • Regionに所属する
  • Forwarding Rule(region)
  • Target Pool(instance / instance group)
  • Backup poolできる。ただしホットスタンバイ
  • セッションアフィニティ対応

  • HTTP/HTTPS Load Balancer

  • Global
  • GCPのアンドロメダ上にいる(?)
  • Forwarding Rule -> Target Policy -> URL Map(URLごとの向き先制御) -> Backend Service(instance group)
  • muliti region対応

  • instance group

  • instance template
  • auto scaler or manual
  • zone base

  • unmanaged instance group

  • templateではなく任意のinstanceを任意で追加する
  • zone base

  • metadata

  • key value
  • instance wide
  • project wide
  • projectはまたげない

HTTPロードバランサの運用例

  • マナボでandroid技術者
  • AWSからコスト面うんぬんで乗り換えた
  • Network Loadbalancer

    • SSL Terminationはない
    • 単一リージョンのみ
    • NAT配下だとソースIPわからない
    • スマホなどグローバルIPがころころかわると困る
  • HTTP(S) Load Balancer

  • GAになった
  • SSL Terminationできる
  • リージョンまたげる
  • proxinityのLB
  • One Global IP(DNSベースのラウンドロビンではない)

  • アドベントカレンダーAWSユーザが15分でGCP入門を書いた

  • 作ってみる

  • ファイアウォールルール
  • tag
  • 複数リージョンで作成
  • ヘルスチェックも作成
  • 外部IPアドレス確保(typeはグローバルにしましょう)
  • グローバル転送ルールは80/443で二つ作成
  • バックエンドサービス
  • 分散モード (CPU使用率/リクエスト数)で閾値を決めることが可能
  • バックエンドは複数追加しないとFailoverしない

  • Tips

  • ファイアウォールをよりセキュアに
  • LBからの通信のみ許可した方がいいよね
  • そもそもインスタンスのexternal IPを取りましょう
  • メンテナンスの時はiptablesで止めるとかも

  • auto scale

  • インスタンステンプレートを作るのが面倒
  • スナップショットが楽
  • スナップショット作ったらそれを元にしてインスタンステンプレートを作る

GCE構築例

  • Glanysの代表の人
  • MSP事業、システム設計・構築。運用保守
  • Googleのテクニカルパートナー
  • インフラエンジニア
  • GCE初期から触ってます

  • 2年前ソーシャルゲームで画面タッチアクションゲーム

  • web socket
  • 当時mariaDB。最近はperconaつかってます
  • 当時HA proxyでやってた
  • consulというクラスタしながら監視してapiでその状態を拾えるやつを使ってた
  • 健全なweb serverを

  • 事例

  • ハグカムのGLOBAL CROWN(英会話のWEBレッスン)
  • webRTCを利用したリアルタイム動画対話型システム
  • バックエンドはHA Proxyでハンドリング

  • ピアラのresult master

  • perconaを使う予定
  • 絶賛設計中

  • capy 法人向け不正ログイン対策

  • caputureが最近はOCRで解析される
  • パズルを当てるような仕様に
  • 12月くらいすごい拡大
  • 300万クエリをperconaが受けてる
  • rabbitmq
  • cloudstorageの使い方が特殊
  • Elastic Search 8GB〜150GB。様々なレイヤーのエラーログをkibanaで。auto scaleはしていない。

  • ゲーム系

  • photon?ゲームエンジン
  • metadata活用している
  • ゲームサーバ起動時にmetadataからconfigにglobal ipを拾っている

  • teraform大好き

  • Base image

  • baseはcentos
  • 必要ミドルウェアは/usr/local配下にビルド
  • ソースはtarballとともに保管

  • consul

  • cluster情報
  • 監視

  • serf

  • 将来的に廃止

  • terraform

  • instance生成
  • disk attach
  • firewall設定
  • LB設定

  • rerun

  • bashのcommand line framewark
  • チームでコマンド体系化が行えて便利

  • envutils

  • 環境変数コントロール

  • clutils

  • consul/serfの自動設定

  • clctl

  • perlオーケストレーションツール

  • influxdb / grafana

  • 時系列データベース

  • gmonitor

  • influxdbに直接データを書き込める
  • リソース監視、通信、ミドルウェアのステータス取得

  • strecherのGCS版

  • GCSを利用した大規模向けデプロイツール
  • AWS界隈ならS3で情報ひっかかるかも

  • slack / pagerduty / twilio / bitbucket ...etc

GAE + GCEの運用事例

  • Google Developer Expert Apps Script
  • フルスタックエンジニアやってます
  • kabukuで働いている
  • rinkak(GCE)
  • 3Dプリントプロダクトのマーケットプレイス
  • rinkak MMS(App engine / GCE)
  • 工場側に導入して決済やったり見積もりしたり
  • rinkak backend(GCE / EC2)

  • サーバサイド

  • python(FLASK)
  • クライアント再度
  • angularJS
  • Cofee Script
  • Bootstrap

  • GCE側にデータ持っていない

  • datastoreに直接アクセスしない(Appengineを必ず通す)
  • Front serverにアクセスしたユーザからAjaxで直接アクセス

  • なぜGAE + GCE??

  • 独自ドメインで運用したい場合がある
  • GAEだとGAE独自ドメイン + SSL
  • Google Apps for workの契約が必要

  • GCEでやるしかない

  • GCEの構成を深堀り

  • L4LB
  • websocketを使う可能性があるから
  • 開始当時はHTTP LBのSSLがα版だった
  • ターゲットプールでブルーグリーン
  • マルチAZ
  • webサーバはnginx
  • appサーバはflask + usgi
  • instanceテンプレートは更新負荷
  • startup-scriptはmetadataサーバに直接書かないことをおすすめ(instance templateに書き込むと・・・)

  • nginx

  • 静的配信、SSL解き、ルーティング
  • GAEの -dot-バジージョン番号でアクセス

  • app(docker)

  • バージョンごとにDocker Imageがいる
  • バージョン番号はpackage.json+ブランチ名

  • Docker Image

  • BitbucketにコードをプッシュするとJenkinsが自動Build
  • GCRにバージョン番号付きでpush

  • wacher

  • metadataサーバにwait-for-changeリクエストを使って監視
  • metadataサーバに入っているバージョン番号を見てDocker imageをrun

  • Google Cloud Storage

    • GAEで権限チェックとSigned URL化
  • Cloud logging

  • 基本はjson形式で
  • PubSubにも入れている

  • 今後とまとめ

  • 多くのweb Frontはパターン化されている
  • GASよく落ちる
  • AWSクラウドデザパタは読むべし

GCEをTerraformする

  • Terraformってなに?
  • vagrantの会社が2014/7から
  • Cloud Formationみたいなもの

  • リソースの数だけIaaSを操作できる。

  • googleも35個ある
  • ドライランある
  • 冪等性とドライラン弱い

Google Compute Engine入門 (アスキー書籍)

Google Compute Engine入門 (アスキー書籍)

Amazon Web Services クラウドデザインパターン実装ガイド 改訂版

Amazon Web Services クラウドデザインパターン実装ガイド 改訂版


シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。

このエントリーをはてなブックマークに追加

KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド

KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド

KVM -- Virtualisierung unter Linux. (German Edition)

KVM -- Virtualisierung unter Linux. (German Edition)