gcp httpロードバランサ運用例

71
GCP HTTPロードバランサ 運用例@マナボ GCPUG Tokyo February 2016

Upload: fumihiko-shiroyama

Post on 09-Jan-2017

1.788 views

Category:

Software


4 download

TRANSCRIPT

Page 1: GCP HTTPロードバランサ運用例

GCP HTTPロードバランサ 運用例@マナボGCPUG Tokyo February 2016

Page 2: GCP HTTPロードバランサ運用例

• 白山 文彦

• 株式会社マナボ 技術者

• @fushiroyama

Page 3: GCP HTTPロードバランサ運用例

• Rx Ja Night #1

• http://connpass.com/event/25532/

• Android Testing Bootcamp #1

• http://connpass.com/event/26911/

Page 4: GCP HTTPロードバランサ運用例

• GCPUG Tokyo March 2016

• http://eventdots.jp/event/579264

• Firebase祭り

Page 5: GCP HTTPロードバランサ運用例

ロードバランサの種類

Page 6: GCP HTTPロードバランサ運用例

• HTTP(S) Load Balancing

• Network Load Balancing

Page 7: GCP HTTPロードバランサ運用例

Network Load Balancing• いわゆるL4ロードバランサ

• IP、ポート、プロトコルで振り分けを決定

• セッションアフィニティのサポート

• ある程度振り分け先を固定化可能

• WebSocket等も利用可能

Page 8: GCP HTTPロードバランサ運用例

• セッションアフィニティ

• 当然NAPTは同一ホストとみなされる

• スマホなどグローバルIPがコロコロ変わる環境では無力

• SSL Terminationがない

• 単一リージョンのみ!

Page 9: GCP HTTPロードバランサ運用例

HTTP(S) Load Balancing• HTTPロードバランサ

• いわゆるL7ロードバランサ

• リージョンをまたがるロードバランシングが可能

• 1グローバルIP!

• URLリソースごとの振り分けも可能

• SSL Termination

• proximity(近さ)考慮の自動振り分け

• WebSocket利用不可

Page 10: GCP HTTPロードバランサ運用例

• Global Load Balancing

• One Static IP

• DNSベースのラウンドロビンとかではないのでリージョンの障害時にも瞬時にフェイルオーバーできる

• SSL Termination

• 個々のインスタンスに証明書をインストール不要

• Proximity

• リクエスト元と一番近いところに振り分け

• 一番近いリージョンの負荷が高い場合は次に近いところに振り分けみたいなことが出来る

Page 11: GCP HTTPロードバランサ運用例

めっちゃ凄い!

Page 12: GCP HTTPロードバランサ運用例

早速使ってみよう!

Page 13: GCP HTTPロードバランサ運用例

GCPはじめての人は…

• 【2015年版】AWS ユーザが Google Cloud Platform に15分で入門する!

• http://qiita.com/FumihikoSHIROYAMA/items/205fa3aebd20b3a1bace

Page 14: GCP HTTPロードバランサ運用例

ファイアウォールルール

Page 15: GCP HTTPロードバランサ運用例
Page 16: GCP HTTPロードバランサ運用例
Page 17: GCP HTTPロードバランサ運用例

インスタンス

Page 18: GCP HTTPロードバランサ運用例
Page 19: GCP HTTPロードバランサ運用例
Page 20: GCP HTTPロードバランサ運用例

複数リージョンで作成

Page 21: GCP HTTPロードバランサ運用例

ヘルスチェック

Page 22: GCP HTTPロードバランサ運用例
Page 23: GCP HTTPロードバランサ運用例
Page 24: GCP HTTPロードバランサ運用例

外部IPアドレス

Page 25: GCP HTTPロードバランサ運用例
Page 26: GCP HTTPロードバランサ運用例
Page 27: GCP HTTPロードバランサ運用例

HTTPロードバランサ

Page 28: GCP HTTPロードバランサ運用例
Page 29: GCP HTTPロードバランサ運用例
Page 30: GCP HTTPロードバランサ運用例
Page 31: GCP HTTPロードバランサ運用例
Page 32: GCP HTTPロードバランサ運用例
Page 33: GCP HTTPロードバランサ運用例

グローバル転送ルール

Page 34: GCP HTTPロードバランサ運用例
Page 35: GCP HTTPロードバランサ運用例
Page 36: GCP HTTPロードバランサ運用例

HTTP, HTTPS両方作る

Page 37: GCP HTTPロードバランサ運用例

インスタンスグループ

Page 38: GCP HTTPロードバランサ運用例
Page 39: GCP HTTPロードバランサ運用例
Page 40: GCP HTTPロードバランサ運用例

先ほど作った インスタンスを選択

Page 41: GCP HTTPロードバランサ運用例

バックエンドサービス

Page 42: GCP HTTPロードバランサ運用例
Page 43: GCP HTTPロードバランサ運用例

分散モード

• 使用率…CPU使用率

• レート…1秒あたりのリクエスト数

Page 44: GCP HTTPロードバランサ運用例
Page 45: GCP HTTPロードバランサ運用例

バックエンドを追加で 複数登録する

Page 46: GCP HTTPロードバランサ運用例
Page 47: GCP HTTPロードバランサ運用例

基本はこれだけ!

Page 48: GCP HTTPロードバランサ運用例

ファイアウォールを よりセキュアに

Page 49: GCP HTTPロードバランサ運用例

ロードバランサからの アクセスのみ許可

Page 50: GCP HTTPロードバランサ運用例
Page 51: GCP HTTPロードバランサ運用例

インスタンスの グローバルIPを除去

Page 52: GCP HTTPロードバランサ運用例

• https://cloud.google.com/compute/docs/load-balancing/http/cross-region-example

• ロードバランサはインスタンスの内部IPだけあれば通信できるのでExternal IPを取り外せばよりセキュアになる

Page 53: GCP HTTPロードバランサ運用例

メンテナンスのTIPS

Page 54: GCP HTTPロードバランサ運用例

即座にLBから切り離し

$ sudo iptables -I INPUT 1 -m state --state NEW -s 130.211.0.0/22 \       -p tcp --destination-port 80 -j REJECT  \       --reject-with tcp-reset # HTTP load balancing

$ sudo iptables -I INPUT 1 -m state --state NEW -s 130.211.0.0/22 \       -p tcp --destination-port 443 -j REJECT  \       --reject-with tcp-reset # HTTPS load balancing

Page 55: GCP HTTPロードバランサ運用例

今日やった内容

• Cross-Region Load Balancing

• https://cloud.google.com/compute/docs/load-balancing/http/cross-region-example

• ただしコマンドラインの説明!

Page 56: GCP HTTPロードバランサ運用例

ちなみに…

Page 57: GCP HTTPロードバランサ運用例

オートスケール

Page 58: GCP HTTPロードバランサ運用例

• インスタンスグループ

• インスタンステンプレート

• ディスク

• スナップショット

Page 59: GCP HTTPロードバランサ運用例

スナップショット

Page 60: GCP HTTPロードバランサ運用例
Page 61: GCP HTTPロードバランサ運用例
Page 62: GCP HTTPロードバランサ運用例

ディスク

Page 63: GCP HTTPロードバランサ運用例
Page 64: GCP HTTPロードバランサ運用例
Page 65: GCP HTTPロードバランサ運用例

インスタンステンプレート

Page 66: GCP HTTPロードバランサ運用例
Page 67: GCP HTTPロードバランサ運用例
Page 68: GCP HTTPロードバランサ運用例

インスタンスグループ

Page 69: GCP HTTPロードバランサ運用例
Page 70: GCP HTTPロードバランサ運用例
Page 71: GCP HTTPロードバランサ運用例