1.Compute Engine
限定公開のインスタンス
- Compute Engineでは限定公開のオプションがある
- オンにすると、GCP内部ネットワークを利用して通信可能
- セキュアかつ高速かつアクセス可能
ディスクバックアップ
- コンソールでスナップショットを設定し、バックアップ可能
削除保護
- オペミスによる削除を防ぐ
マシンタイプ
- データをメモリに格納し、素早くアクセスしたい場合、M1タイプが最適
- CPUに対してメモリの搭載量が多い
仮想マシンが優先して停止される前に、アプリを適切にシャットダウンする
- シャットダウンスクリプトを作成
- Cloud Platformコンソールのキーshutdownスクリプトを使用して新しいメタデータエントリの値に指定
- 例えば、ログのバックアップやクリーンアップに有効
- Compute Engine-> VMインスタンス->インスタンスの作成->(拡張)管理、ディスク、ネットワーク、SSHキーキー「shutdown-script」と適切な値を入力
ピーク時におけるパフォーマンス最適化
- 既存ディスクからカスタムイメージを作成
- カスタムイメージからインスタンステンプレートを作成
- インスタンステンプレートから自動スケーリングされた管理対象インスタンスグループを作成
Python scriptを実行しBigQueryに接続
- python用のBigQueryAPIクライアントライブラリをインストールする必要あり
DBを動かしている仮想マシンのストレージサイズ変更
- コンソールで永続ディスクを増やしresize2fsコマンドを実行する
2.データベース
リレーショナルデータベース
- 全世界でスケーラブルときたら、CloudSQLでなくSpannerを利用
- MySQLやPostgresの互換となったら、CloudSQL
IoTなどの大量データ処理
- BigTableの利用を推奨
- IoTや金融機関などのキーワードが出たらBigTable
- Datastoreは比較的安く小規模
DataStore
- ACID特性を持つNoSQL
- SQLは使えない
- もし、SQLを使いたいNoSQL要望があればBigQuery
- CloudStorageにバックアップ可能
- 自動的にスケールアップ
- データ解析用途でなく、NoSQLでレイテンシが多少高くても許される場合に採用
3.ストレージ
ストレージタイプ
- Nearlineは月に1回程度のアクセス
- Coldlineは1年に1回程度のアクセス
Storage Transfer Service
- オンプレからCloud Storageにデータを移行する
gsutilとSTSのどちらを選ぶか?
- 別のクラウドからの転送:STS
- オンプレから1TB未満:gsutil
- オンプレから1TB以上:STS
- STSは別クラウドからの移行か、1TB以上のデータ移行に最適
gcsfuse
- storageのマウントが可能
未加工データの保存
- とりあえずデータを保存する場合は、BigQueryよりもStorageが最適
プライベートのVMとCloud Storageの連携
- プライベートGoogleアクセスサブネットを使用して、サブネット上のVMを設定
- VMに内部IPアドレスのみを割り当てる
4.ネットワーク
VPC
- 自動モードとカスタムモードがあったら、まずカスタムモード
- 動的ルーティングが必要となる場合はBGPでルーティングが必要
FWルール
- 下り通信:暗黙的に許可
- 上り通信:暗黙的に拒否
- 下りを最小限にしたい場合は、許可したい通信は優先度を高める
- 上りの場合は拒否したい通信の優先度を高める
サブネット
- 拡張可能だが、縮小は不可能
Cloud DNS
- 本番環境の柔軟なスケールに寄与しない
- DNSを使用してVPNの外部IPアドレスの共有や解決をすることができるが、複数のVPN接続には必要ない
- お客様のトラフィックをオンプレミスからクラウドにリダイレクトし、それによってフェイルオーバースイッチを実装できる
- 内部てきなホスト名で設定可能
- オンプレとGCP間の名前解決などの設定可能
Https負荷分散
- WebSocketプロトコルをネイティブにサポートする
Cloud CDN
- キャッシュヒット率を改善したい場合は、キャッシュキーをカスタマイズしてキーからプロトコルを省略する
5.オンプレとの接続
Cloud Interconnect
- 10Gbps〜100Gbpsまで対応
- Dedicated InterconnectでGoogleロケーションに接続可能
- Dedicatedを選択できない場合、Partner Interconnectで柔軟に帯域幅オプション(50Mbps〜10Gbps)を選択する
Cloud VPN
- 専用線でなくIPsecVPNを介して、オンプレまたは他のクラウドをインターネット経由でVPCに接続できる
- 最大3Gbps
- VPC同士をVPCピアリングでなく、CloudVPNで接続する優位性は、VPCをスター型に接続できる(多対多に接続可能)
- VPCピアリングは1対1の制限がある
ピアリング
- VPNまたはインターネットを介してGoogleとGCPの機能にアクセス可能
- Googleの要件を満たしている場合は、ダイレクトピアリングで直接接続するか、キャリアピアリングのパートナーを選ぶことができる
Google Cloud Directory Syncツール
- Googleユーザをプロビジョニングすることで、オンプレからGCPへの移行をスムーズに行うことができる
6.AppEngine
ダウンタイムをすなくするデプロイ方法
- ローリングアップデートでダウンタイムを極力少なくできる
- maxSurge:アップデート中に増やせるインスタンスの許容数
- maxUnavailable:アップデート中に利用できないインスタンス数
Cloud Run for Anthos / Cloud Run / AppEngine Flex
- Cloud Run for Anthosは使用していなくても課金される。
- App Engine FXはインスタンスを0にすることができず課金される
- Cloud Runは使用していない場合は課金されず、0スケールも可能(無課金状態を作れる)
memcache
- 一部のタスクの処理に堅牢で永続的なストレージに優先して分散型インメモリデータキャッシュを使用可能
- 共有と戦友がある
- 共有は無料でデフォルト。
- ベストエフォートでキャッシュ容量を提供
- 専用はアプリに排他的に割り当てられて固定キャッシュ容量を提供する
- これはキャッシュサイズに応じて課金される
- 専用はパフォーマンス保証あり
StandardとFlexible
- Standardは高可用だが、機能が制限されている
- Flexibleはユーザ任意で機能を選択可能だが、可用性は劣る
- 先ずはStandardでの利用を検討し、機能に制限がある場合はFlexibleを選択する
- CloudSDKツールを使用してのデプロイ転送時、保存時も暗号化したい場合は、コンポーネントが必要
- オンプレとのCloudVPNでの接続の場合は、Flexible
新しいバージョンを置き換える前に、実稼働トラフィックで更新テストする方法
- アップデートを新しいAppEngineアプリとしてデプロイする
- GoogleのグローバルHTTPロードバランシングを使用
- 新しいアプリと現在のアプリでトラフィックを分割
7.BigQuery
- テーブルの有効期限を設定できる
- 監査のたユーザが実行したクエリ数を確認したい場合、JOBSテーブルでクエリを実行して必要な情報を取得する
- クエリジョブを実行するには、少なくとも、Bigquery.jobs.create権限が付与されている必要がある
- クエリジョブを正常に完了させるには、クエリで参照するテーブルまたはビューに対するアクセス権も付与されている必要がある
- フェデレーション(GCSなど外部データソースに対して直接クエリする機能)可能
- テーブルのパーティション分割により高速化が可能
- DataCatalogはBigQueryのメタデータを管理している
- データセットの検索が可能
Datacatalog
- 組織に存在するBQデータセットのメタデータを管理するのに役立つプロダクト
- データセットを検索したり、その検索したアセットに対してタグ付けすることができる
データストリーム
Dataproc
- バッチ処理、クエリ処理、ストリーミングなどを行えるマネージドサービス
- クラスタを速やかに作成し、簡単に管理し、必要ないときは無効化し節約できる
Dataprep
- データを準備するツール
- 汚れているデータを事前に綺麗にする
- データを探索してクリーンアップする
Dataflow
- リアルタイムにデータを蓄積し、分析するプラットフォームを構築する場合、Cloud Pub/Subと組み合わせて実現する
8.Stackdriver
- Error Repotingは、適切なフォーマットのスタックトレースでない限り、ログ内の行を特定できる可能性は高くない ・パターンがあるからといって、デバックのためにいつどこにログインすれば良いかを正確に特定できるわけでない
- Stackdriverカスタム指標は、特定のアクティビティを反映するように調整可能
- 自動スケーリングに役立つ可能性があり、投資家に関係しそうな指標の詳細なソースを提供できる
monitoring
- クラウドで実行されるアプリケーションのパフォーマンスや稼働時間、全体的な動作状況を視覚的に確認可能
- 収集したデータを取り込んで、グラフ、アラートで表示する
- アラート機能はメール,SMS,PagerDuty,Campfireで受け取ることができる
Logging
- ログの表示、フィルタリング、検索機能を備えている
- ログをbigQuery,Cloud Storage,Pub/Subにエクスポート可能で、高速にログ解析が可能
- エクスポート機能を使うと、Cloud Pub/Subにエクスポートすることができる
- Cloud Pub/Sub経由で特定のログに応じた処理を行うことができる
- BigQueryへも連携可能
- GCSへエクスポートして長期保存も可能
- 30日しか保管できないので、GCSやBigQueryへ保存する
監査ログ
- 誰がどこで何を行ったかの判断に役立つ
- 管理アクティビティログ、データアクセスログ、システムイベント監査ログの3種類がある
- 管理アクティビティログは、最初から有効で、400日保持される。リソースの構成変更など、管理操作が行われた際に記録する
- データアクセスログは、データを保持するサービスへのアクセス記録で、30日保持
- システムイベントは、Googleで自動で行った操作を記録。
- 400日保持
アクセス透過性ログ
- Googleスタッフがトラブルシューティングの家庭などでアクセスした記録
各サービス固有のログ
- 各サービスの動作ログ
Error Reporting
- 実行中のクラウドサービスで発生したクラッシュをカウントして分析と集計を行う。
- スタックトレースと言ったエラー詳細まで表示可能
- 新しいエラーが発生した場合の通知も可能
Debugger
- アプリに影響なく状態を調べることができる
Trace
- パフォーマンスにおけるボトルネックを検出する
- ほぼリアルタイムでパフォーマンスの分析情報を提供し、レイテンシの詳細レポートも生成する
警告コンソール
- アラートポリシーを先に設定しておく必要あり
9.GKE
デプロイまでの流れ
- Container Registryにイメージをアップロードし、Deploymentを作成する
認証情報保存先
- 鍵管理システム内
Docker
- Cloud Run for Anthosはmin instanceを0にしても課金される
StatefulSets
- ポッドが再起動、スケーリングしてもホスト名を維持するためにはStatefulSetsを利用する
10.IAM
Role
- iam.roleViewerはプロジェクト内の全てのカスタムロールへ読み取り可能
- ただし、組織の改装構造を表示できない
VMからCloud Pub/Subにプッシュする際、確認するIAM権限
- VMサービスアカウントに適切なCloud Pub/Sub IAMロールが付与されていることを確認
11.Project
Quota設定
- Quota(割り当て)設定がある
- 503エラーが頻発している場合、Quotaを超えている可能性がある
- 使用できる分を事前に割り当て、足りなくなったら追加で申請する
機密情報にアクセスしていないかの調査
- Cloud Loggingのデータアクセスを監査ログで確認し、プリンシパルに怪しいメアドを設定して調べる
課金アラート
- 下りのネットワーク月額費用が超えた場合のアラートなど、複雑なアラートはBigQueryとCloud Functionを利用する
OpEx / CapEx
- OPEXは事業を運営するための諸々の経費。ランニング費用
- CPEXは事業の生産性や資産向上を図るための支出。初期費用
- TCOとは システム構築や運用にかかる全ての費用
- オンプレからクラウドへ乗せることで容量計画、TCO計算、OpEX/CpEX配分が大幅に変更されること
Google推奨の負荷テスト方法
- 新しい負荷テスト用のプロジェクトを作成する
12.セキュリティ
ログの信頼性を検証するために行えること
- 各ログエントリのJSONダンプを作成し、Cloud Storageに保存する