1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

Google CloudのPCA(Professional Cloud Architect)認定資格取得に向けて学習した内容を自分なりに整理します。Google Cloudのサービスに限らず、それを扱う上での関連知識についても触れています。
本記事はCompute編ということで、下記の要素を扱います。

  • コンピュートサービス
    • Compute Engine
    • Google Kubernetes Engine(GKE)
    • App Engine
    • Cloud Run
    • Cloud Functions
  • その他ツールなど
    • Firebase Test Lab
    • Firebase Hosting

この記事における「現在」や「最近」などの表現は、特に断らない限り2025年6月時点を指します

コンピュートサービス

Compute Engine

フルコントロール可能な仮想マシン(VM)を提供するIaaS型サービス

  • カスタマイズ性の高さが最大の特徴
    • OSの選定、CPU・メモリの構成、永続ディスクやGPUの追加など
  • 高パフォーマンス・低レイテンシ
  • そのため以下のシーンに適している
    • リフト&シフト: オンプレミスのVM環境をそのままクラウドに移行する
    • 独自のカーネル設定やセキュリティパッチ、特殊なライブラリなど、細かいシステム要件がある

マネージドインスタンスグループ(MIG)

マネージドインスタンスグループ(MIG)を利用すれば、同じ構成のVMインスタンスを複数まとめて管理できる

  • オートスケーリング
    • CPU使用率やネットワーク負荷などに応じてインスタンス数を自動で増減
    • スケーリング条件はカスタマイズできる
  • ローリングアップデート(段階的更新)
    • 新しい構成のテンプレートを適用した際、順番にVMを更新
  • 自動修復
    • VMが非正常状態になると自動で再作成
    • ヘルスチェック(健全性チェック)を使って稼働状況を継続監視
  • 負荷分散との統合
    • Cloud Load Balancing と組み合わせて、インスタンスグループにトラフィックを分散
    • ゾーン間・リージョン間の高可用性構成を実現

マネージドインスタンスグループを使用する際には、インスタンステンプレートの利用が推奨される。
これは既存のディスクから作成したカスタムイメージをベースイメージとする方法。

既存のディスク -> カスタムイメージ -> インスタンステンプレート

OS Patch Management

  • Compute Engine VMに対してOSパッチ適用の自動化を可能にするサービス
  • 定期的なパッチジョブのスケジューリングや、コンプライアンスレポートによる状態確認なども行える

Google Kubernetes Engine(GKE)

Google がフルマネージドで提供する Kubernetes クラスタ環境

  • コンテナ化されたアプリケーションを統合的に管理できる点が最大の特徴
  • マイクロサービスアーキテクチャやCI/CD、自動スケーリング、監視との統合にも優れる
  • Autopilot モードを使えばインフラの運用管理も最小限に抑えることができる
    • Autopilotモードは、完全マネージドでGKEを運用するモード
    • Cloud RunやApp Engineのように、サーバー運用に関する部分をGoogle Cloudに委ねる状態

前提知識: Kubernetesの構成要素

  • クラスタ
    • Kubernetesの全体のシステムのこと
    • クラスタは「マスターノード」と「ワーカーノード」で構成される
  • ノード
    • クラスタを構成する個々のマシン(サーバー)
    • 物理サーバーでも仮想マシンでも構わない
    • マスターノード(コントロールプレーン)
      • クラスタ全体を管理・制御する司令塔
    • ワーカーノード
      • 実際にアプリケーションが動作するマシン
  • ポッド
    • Kubernetesでアプリケーションを動かす最小単位
    • 通常は1つのコンテナが入るが、密接に連携する複数のコンテナを含むこともある
    • Podは一時的な存在で、必要に応じて作られたり削除されたりする
クラスタ(全体のシステム)
├── マスターノード(管理役)
└── ワーカーノード(実働部隊)
    └── Pod(アプリケーションの実行単位)
        └── コンテナ(実際のアプリケーション)

コマンド

  • gcloud
    • Google Cloud全体を管理するコマンド
    • GKEでは、クラスタの作成や更新で使用する
  • kubectl
    • Kubernetesクラスタを管理するための標準ツール
    • GKEでは、PodやServiceの管理で使用する
  • kubemci
    • 複数クラスタにまたがるIngressを作成する(≒ HTTP(S)ロードバランサーを作成する)専用CLI

Anthos

ハイブリッド/マルチクラウド対応のKubernetes管理・運用プラットフォーム

  • 複数のKubernetesクラスタを総合的に管理する
    • ここでいう「複数のKuberentesクラスタ」は、オンプレミスやAWSなど他クラウド環境も対象
    • それらに対して、統一されたポリシー、セキュリティ、サービスメッシュ管理を提供する
      • サービスメッシュ: マイクロサービス間の通信をアプリケーションの外側で統一的に制御する仕組み
        • 「どこに通信するのか」「どのように通信するのか」「失敗時のリトライはどうするのか」などをアプリケーションコードの中で制御するのではなく、切り出された専用の仕組みに任せるもの
Cloud Run for Anthos

Cloud Run のサーバーレスな開発体験を保ちつつ、GKEクラスタでコンテナを実行できる環境

Istio

Kubernetes上で動作するサービスメッシュの代表的な実装
アプリケーションのコードを変更せずに、トラフィック制御・セキュリティ・可観測性・リトライ・タイムアウト・サーキットブレーカーなどの機能を提供

フォールトインジェクション
  • 意図的にHTTPエラーを返したり、レスポンスに遅延を発生させたりして、マイクロサービスの障害挙動をシミュレートできる機能
  • 本番に近いトラフィック条件下での耐障害性テスト(カオスエンジニアリング)が可能

Ingress

外部トラフィックをKubernetesクラスタ内のサービスにルーティングする
レイヤー7(アプリケーション層: HTTP(S))でのルーティング制御を行う

App Engine

App Engine Standard Environment

インフラ管理不要(サーバーレス)でアプリケーションコードをデプロイするだけで動作するPaaS

  • インスタンスの起動・停止やスケーリングは完全に自動で行われ、トラフィック量に応じたリソース割当が行われる
  • バージョン管理やトラフィック分割など、アプリの運用面も機能が提供されている
  • そのため、主に以下のシーンに適している
    • トラフィックに大きな波があり、インフラのスケーリングを自動で任せたい
    • バージョンごとに動作を検証したり、一部のトラフィックだけを新バージョンに流すなどの運用が必要
  • memcacheが組み込まれている
    • memcacheのサービスレベル
      • 共有(shared)
        • 無料で使えるが他アプリとキャッシュが共有される
        • 開発環境や、ごく軽い用途で使用する
      • 専用(dedicated)
        • 特定のアプリ専用にメモリを確保し、確実にキャッシュを保持する
        • 基本的に本番環境ではこちらをしy

App Engine Flexible Environment

  • Docker コンテナベースの環境で、Standardに比べて、より高い自由度がある
  • 任意のライブラリ・ランタイムを使用可能
  • VMベースなので、Cloud Logging, Monitoring, SSH接続など Compute Engine の機能が利用可能
  • アプリは Compute Engine VM 上で実行される(数秒~数十秒の起動時間)

Cloud Run

コンテナイメージをリクエスト駆動で実行できるサーバーレスなプラットフォーム

  • コンテナを扱うためCloud Functionsよりも自由度が高く、好きな言語やランタイム、バイナリを含むアプリケーションをデプロイ可能
  • リクエストに応じて自動スケールし、同時実行やリクエストごとのインスタンス分離設定も可能

Cloud Functions

関数単位でデプロイできる、イベント駆動型のサーバーレスなFaaS(Function as a Service)

  • 特定のイベント(Pub/Sub、Cloud Storage、Firebase など)をトリガにして自動的にコードを実行できる
  • リクエストごとに必要なだけインスタンスがスケールする
  • 関数は短時間で実行される軽量なユースケース向き

その他ツールなど

Firebase Test Lab

  • モバイルアプリ(Android/iOS)の自動テストを実行できるテストツール
  • ビルド済みのアプリをアップロードし、そのアプリに対するテストを実機やエミュレータ上で実行し、結果をレポートとして提供する
  • 様々なOSバージョン、画面サイズ、設定の端末上でテストを実行できる

Firebase Hosting

  • 静的コンテンツ(HTML, CSS, JSなど)を高速に配信できるホスティングサービス
  • GoogleのグローバルCDNを活用して、エッジロケーション(なるべくユーザーに近い拠点)から配信される
1
0
0

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?