Closed12

GCP設計指針

aliyomealiyome

Google Cloud でアーキテクチャを設計する際のポイントなど をまとめる。 の気になる点を列挙する

aliyomealiyome

セキュリティ

基本的にはこのガイドラインに従えば良さそう。

用語

参照

ぼやき

BeyondCorpとBeyondProdが結局よくわからんな🤔

aliyomealiyome

リソース階層

  • ガイドラインに沿ってリソース階層を設計する。
  • Workspaceの特権管理者はWorkspaceのリソース(カレンダー・グループなど)にはフルアクセスできるが、GCPのリソースと直接の関係はない
aliyomealiyome

ネットワーク

  • VMに外部IPを持たせずCloudNATで外部にアクセスする
aliyomealiyome

ログ

  • ログ用プロジェクトとLogging Bucketを作り、各プロジェクトのログルーターのシンクを作成したバケットに向ける
    • 各プロジェクトのログルーターではなく組織・フォルダのログルーターのシンクを使って一括で設定しても良いかも
  • Logging Agentを利用して標準出力を含む全ログをCloud Loggingに集約する
  • GKEのログをCloud Loggingに送る場合はクラスタレベルでログ出力を有効にする(DaemonSetsにfluentdがデプロイされる)

監査ログ

  • 監査ログが必要なGCPのサービス(例えばMySQLのデータ読み書きは監査ログとして記録する場合)は監査ログの設定で「管理読み込み・書き込み」「データ読み込み・書き込み」に任意のチェックを入れる。これによりCloud Loggingに監査ログが記録される。
  • 監査ログの種類と記録タイミング (*は常に有効400日保持・課金対象外、**はデフォルト有効)
    • Admin Activity audit logs*: リソースの管理・メタ情報の呼び出し・変更
    • Data Access audit logs: 上記に加えてデータのCRUDなど
    • System Event audit logs*: Googleがリソースを操作する
    • Policy Denied audit logs**: ポリシー違反によってアクセスを拒否
  • 全てのサービスで全ての監査ログが記録されるわけではない → 監査ログ付きの Google サービス  |  Cloud Logging  |  Google Cloud
監査ログの種類 補足
  • アクセスの透明性ログ: Googleが顧客のリソースにアクセスしたログ
  • VPC フローログ: インスタンスが送受信する内容
    • ネットワークフォレンジックに使える(どのIPがいつどの相手と通信したか)
  • Firewall Rules Logsとか、HTTP(S) LB Logsとか、個別に有効にした方が良さそうなログが色々とある

ぼやき

  • システムイベントとポリシー拒否のログほとんど記録されないじゃん
aliyomealiyome

モニタリング

  • モニタリング用プロジェクトにダッシュボードを作り、各プロジェクトのメトリクスを表示する
aliyomealiyome

分散トレーシング、プロファイリング

  • Cloud Trace を使うとパフォーマンスにあまり影響を与えず(本番環境で使っても問題ない)にリクエスト全体のトレースができる
  • Cloud Profiler を使うとパフォーマンスにあまり影響を与えず(本番環境で使っても問題ない)にパフォーマンスのボトルネック調査ができる

バグ調査

  • Error Reporting を使うと、Sentry他のエラーレポートツールを使わずにエラーログ収集ができる。フロントエンドのエラーログ収集はできない(Experimentalで数年前から止まってる)
  • Cloud Debugger を使うと、本番で動いているコードにブレークポイントのような形でその行実行時点の変数スナップショットを取れる。本番で動作しているコードの任意の行にログ出力を足すこともできる。
aliyomealiyome

Compute Engine

  • サービスアカウントを作成して割り当てる

バックアップ

  • ゾーン/リージョン永続ディスクのスナップショットを定期的に作成(差分更新)する
    • スナップショットはグローバルリソース
    • スナップショットを元に別のプロジェクトにディスクを作成できる
    • スナップショットからディスクを作ることも、スナップショットからインスタンスを作ることもできる
  • スナップショット前にできれば fstrim コマンドを実行して容量削減・スナップショット速度向上を図る

障害対応

  • システムやハードウェア障害: 永続ディスクとスタートアップスクリプト
  • ゾーンやリージョン障害: マネージメントインスタンスグループのマルチゾーン展開、ロードバランサによるマルチリージョン負荷分散
  • インフラのパッチ当て: ライブマイグレーション
このスクラップは3ヶ月前にクローズされました