LoginSignup
1

More than 3 years have passed since last update.

GCPの地域制限と、GAE 2nd genのデプロイで失敗した話

Posted at

言いたいこと

  • 組織ポリシーで、GCPのリソースの地域を制限することが出来るよ
  • GAEの2nd gen(Python3.7とか)には、マルチリージョンなバケットが必要だよ
  • ので、地域制限するなら、マルチリージョンな単位(eu/us/asia)でした方がいいよ

組織ポリシーによる地域制限の話

組織ポリシー(organization policy)で、GCPのリソースが作られる場所を制限することが出来ます

GCPサービスに与える影響

組織ポリシーが、各GCPサービスごとに与える影響は、こちらのページに書いています
例えば:

  • Bigtableはクラスターが作られるゾーンを限定(既存のクラスターには影響しない)
  • GCSはバケットのリージョン・マルチリージョンを限定(既存のバケットには影響しない)
  • GCEの場合はちょっと複雑
    • インスタンスの作成はリージョンで制限される
    • CloudDNSなどは、地域制限の対象外

地域の指定

ゾーン(asia-northeast1-aとか)、リージョン(asia-northeast1とか)、マルチリージョン(asiaとか)で指定することも出来ますが、ValueGroup(asia-northeast1-locationsとか)で指定する方が良いです

なぜなら:

  • Googleが関連するゾーン・リージョンを加えてくれる
  • リージョンだけを許可すると、ゾーンで立つGCP サービス(GCEとかDataflow)は使えない
    • (私はasia-northeast1だけを許可して、Dataflowの起動に失敗しました)

ためです。

GAEの2nd genのデプロイで失敗した話

  • Python3.7
  • 組織ポリシーでasia-northeast1関連のみ許可(asia-northeast1-locations)
    • この設定では、マルチリージョンなバケット(usとかasia)は作られない

で試すと、GAEをデプロイするときに失敗しました(issue)

なんで失敗するかと言うと、

  1. GAEの2nd generationは、Standardでもデプロイ時にContainer Registryを使用
  2. Container Registryはマルチリージョンなバケットを使う
  3. そのため、組織ポリシーでマルチリージョンなバケットを制限しているとコケる

からです。
ちなみに、1st gen(Python2.7)では地域制限をしていても使うことが出来ました。
2nd genでgVisorベースになった影響?)

じゃあ地域制限って使えないの?

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1