PCAの試験メモです。
ざっとサービスの概観を把握するのにご活用ください。
Compute Engine(GCE)
- AWSで言うとEC2
- Googleのインフラストラクチャで仮想マシンを作成して実行できる、安全性の高いカスタマイズ可能なコンピューティングサービス
- Compute Engine上で生成されるログをGoogle Cloud上で管理する際のプラクティスは、Cloud Loggingエージェントをインストールし、Cloud Loggingに送信すること
- インスタンステンプレート
- 既存のディスクから作成したカスタムイメージをベースイメージとする方法
- インスタンスグループ
- マネージド インスタンス グループ(MIG)
- 複数の同一VMでのアプリケーション操作が可能。
- オートスケーリング、自動修復、リージョン(マルチゾーン)デプロイメント、自動更新などの自動化 MIG サービスが利用可能。
- ローリングアップデートの更新タイプには、PROACTIVE(自動先行更新、更新型)とOPPORTUNISTIC(日和見、選択更新、追従型)があり、前者がマネージド、後者が指定型である。実行されていないインスタンスから更新を行うためには、Opportunistic updateモードによるローリングアップデートが最適。
- ステートレスMIG
- 自動スケール可
- ステートフルMIG
- 自動スケール不可
- 非マネージド インスタンス グループ
- ユーザー自身が管理する一連の VM 間での負荷分散が可能。
- オートスケーリングやローリングアップデート不可。
- インスタンステンプレート使用不可。
- マネージド インスタンス グループ(MIG)
- プリエンプトインスタンス
- AWSで言うとスポットインスタンス
- Google Cloudが好きなタイミングでインスタンスを占有(プリエンプト)して利用できることを意味する。らしい。
- クラスタのノードで、マネージド インスタンス グループに対する Compute Engine の自動スケーリングを有効にしてはならない
- 競合してしまうから
App Engine
- AWSで言うとElastic Beanstalk
- モノリシックなサーバーサイドでレンダリングされたウェブサイトを構築する。
- 環境
- 標準環境は迅速なスケーリングに対処する必要があるアプリケーションに適している。
- フレキシブル環境は一定したトラフィックを受信する、定期的にトラフィックの変動がある、または徐々にスケールアップやスケールダウンするパラメータを満たすアプリケーションに適している。
- フレキシブル環境のほうがGCEに近いって感じかな?
- https://cloud.google.com/appengine/docs/the-appengine-environments?hl=ja
- トラフィック分割機能が存在する
- 簡単に環境を複数個作り出し、A/Bテストを行うことが可能
- 完全ランダム、IPアドレス分割、Cookie分割の3パターンが指定可能
Cloud Run
- AWSで言うとApp Runner
- フルマネージドのサーバーレス プラットフォームであらゆる言語(Go、Python、Java、Node.js、.NET、Ruby)で記述されたスケーラブルなコンテナ型アプリを構築してデプロイできる
- トラフィックを受信するリビジョンと、リビジョンが受信するトラフィックの割合を指定できる。
- カナリアリリースのこと。
- リビジョン:バージョンみたいなこと。
- リージョナルなサービス
- グローバルなユーザーにサービスを提供するためには、グローバルHTTP LBとバックエンドとしてNEG(ネットワークエンドポイントグループ)を設定する必要がある
GKE
- AWSで言うとEKS
- 最もスケーラブルで完全に自動化された Kubernetesサービス
- Cloud Monitoring および Cloud Logging とのネイティブ統合が含まれている
- GKE クラスタを作成すると、Cloud Operations for GKE がデフォルトで有効になり、Kubernetes 専用のモニタリング ダッシュボードが使用できる
- 有効化されていないGKEクラスタを有効化する際には、アップデートが必要
- gcloud container clusters update CLUSTER_NAME --enable-autoscaling --min-nodes=1 --max-nodes=10 というコマンドによってクラスターのサイズを自動的に変更
- ノードグループにノードアフィニティラベルを指定は不可。
- ノードに直接指定する
GKE周辺
- AWSで言うと…何?Configとか?
- Google Kubernetes Engine(GKE)や Cloud Run に信頼できるコンテナ イメージのみをデプロイするためのデプロイ時セキュリティ コントロール
StatefulSet
- StatefulSet は、Kafka、MySQL、Redis、ZooKeeper などの一意で永続的な ID と固有のホスト名が必要なアプリケーションのデプロイに適している。
kubemci/Ingress for Anthos
- マルチリージョンにGKEを展開してingressを設定するには、kubemciまたはAhthosの使用が必要
- kubemci は現在非推奨となっており、Ingress for Anthosが推奨されている。
- Ingress for Anthos はマルチクラスタの ingressを導入するために適した方法。
おまけメモ
- コンテナ:最小限の依存性を持つ小さなベースイメージによって、より速くアプリケーションをデプロイすることができます。
- アンマネージドなサービスを使用することは、技術検証をユーザーがすることになるため信頼性は向上しない。
- Cloud Scheduler をスケジューリングに使用し、Pub/Sub を分散メッセージングに使用することで、一連の Compute Engine インスタンス全体にタスクを確実にスケジューリングするアプリケーションを作成できる。
- Cloud Shellは、仮想マシンインスタンス上の$HOMEディレクトリにマウントされた5GBの無料永続ディスクストレージを提供する。
- Migrate for Compute Engine
- サーバ移行ツール
- パフォーマンスベースとコストベースが存在する