Google Cloud4 択難易度 応用

状況

外部アプリケーション LB 経由で 502。LB のログは failed_to_pick_backend、バックエンドは全台 UNHEALTHY。VM 内の curl localhost は 200 だが、アクセスログにヘルスチェックの要求が来ていない。昨日、不要そうなファイアウォールルールを整理して消した。

調べる順番として最も適切なものは?

  1. ACloud DNS の A レコードが LB の IP を指しているか
  2. Bヘルスチェックの送信元(35.191.0.0/16 等)を許可するルール
  3. Cインスタンスグループの VM をすべて作り直す
  4. Dヘルスチェックのポートと、アプリの待ち受けポート

正答

  1. B → D → A → C
  2. A → B → D → C
  3. C → B → D → A
  4. D → C → B → A

解説

502 と failed_to_pick_backend は、LB までは届いたが正常なバックエンドが 1 台も無いという意味。VM 内では 200 が返るのでアプリは動いており、ヘルスチェックの要求がアクセスログに来ていないことから、要求が VM に届いていないと分かる。届かない原因で最も疑わしいのは、昨日消したファイアウォールルール(B)。ヘルスチェックは 35.191.0.0/16 と 130.211.0.0/22 から来るので、その許可が残っているかを先に見る。直前に変えたものを疑う原則どおり。次にヘルスチェックのポート設定(D)。LB の応答が返っている以上、DNS(A)は正しく LB を指しているので後回し。VM の作り直し(C)は時間がかかるうえ、ファイアウォールが原因なら作り直しても直らない。

参考: docs.cloud.google.com

load-balancinghealth-checkfirewall502troubleshooting

この問題を含む Google Cloud のテストを制限時間つきで解く

Google Cloudクイズへ