Google Cloud アーキテクチャ フレームワーク: パフォーマンスの最適化

Last reviewed 2021-10-08 UTC

Google Cloud アーキテクチャ フレームワークのこのドキュメントでは、Google Cloud のワークロードのパフォーマンスを最適化するためのベスト プラクティスについて説明します。

戦略

パフォーマンス要件を評価する。アプリケーションの優先度と、それらのアプリケーションに必要な最小パフォーマンスを決めます。

スケーラブルな設計パターンを使用する。自動スケーリング、コンピューティングの選択、ストレージ構成により、スケーラビリティとパフォーマンスを向上させます。

おすすめの方法

  • 自動スケーリングとデータ処理を使用する。
  • GPU と TPU を使用してパフォーマンスを向上させる。
  • 調整するアプリを特定する。

自動スケーリングとデータ処理を使用する

負荷が増加または減少したときに、自動スケーリングを使用して一致するリソースの追加または解放を行います。

Compute Engine の自動スケーリング

マネージド インスタンス グループ(MIG)を使用すると、複数の同一 VM でステートレス アプリをスケールできます。これにより、インスタンス テンプレートに基づいて Compute Engine リソースのグループが起動します。CPU 使用率、負荷分散能力、Cloud Monitoring の指標、スケジュールに基づいてグループのスケーリングを行う自動スケーリング ポリシーを構成できます。ゾーン MIG の場合は、Pub/Sub などのキューベースのワークロードごとに構成できます。

Google Kubernetes Engine の自動スケーリング

Google Kubernetes Engine(GKE)のクラスタ オートスケーラー機能を使用すると、ワークロードのさまざまな需要に基づいてクラスタのノードプールを管理できます。クラスタ オートスケーラーは、実際のリソース使用率ではなく、ノードプールのノードで実行されている Pod のリソース要求数に基づいて、ノードプールのサイズを自動的に調整します。

サーバーレス自動スケーリング

サーバーレス コンピューティングのオプションとしては、Cloud RunApp EngineCloud Functions があり、それぞれ自動スケーリング機能を備えています。これらのサーバーレス オプションを使用して、マイクロサービスまたはファンクションをスケーリングします。

データ処理

DataprocDataflow には、データ パイプラインとデータ処理をスケーリングする自動スケーリング オプションが用意されています。これらのオプションを使用すると、処理負荷に応じて、パイプラインでより多くのコンピューティング リソースにアクセスできるようになります。

設計に関する質問

  • 変動するユーザー負荷や処理要件があるアプリケーションはどれか。
  • 変動するデータ要件があるデータ処理パイプラインはどれか。

推奨事項

  • Google Cloud ロードバランサを使用して、グローバル エンドポイントを提供します。
  • Compute Engine でマネージド インスタンス グループを使用して自動的にスケーリングします。
  • GKE のクラスタ オートスケーラーを使用して、クラスタを自動的にスケーリングします。
  • App Engine を使用して、PaaS(Platform-as-a-Service)アプリケーションを自動スケーリングします。
  • Cloud Run または Cloud Functions を使用して、ファンクションまたはマイクロサービスを自動スケーリングします。

主なサービス

関連情報

GPU と TPU を使用してパフォーマンスを向上させる

Google Cloud には、ワークロードのパフォーマンスを高速化するオプションが用意されています。これらの専用ハードウェア プラットフォームを使用して、アプリケーションとデータ処理のパフォーマンスを向上させることができます。

GPU(グラフィック プロセッシング ユニット)

Compute Engine は、仮想マシン インスタンスに追加できる GPU を備えています。これらの GPU を使用して、機械学習やデータ処理などの特定のワークロードをインスタンス上で高速化できます。

TPU(Tensor Processing Unit)

TPU は、機械学習ワークロード用の Google のマトリックス プロセッサとして設計されています。TPU は、大規模なパイプラインを使用した大規模な行列演算に最適で、メモリアクセスが大幅に減少します。

関連情報

調整するアプリを特定する

アプリケーション パフォーマンス管理(APM)には、レイテンシとコストの低減に役立つツールが用意されており、アプリケーションをより効率的に実行できます。Cloud TraceCloud DebuggerCloud Profiler を使用すると、コードとサービスの機能を分析し、必要に応じてトラブルシューティングを行うことができます。

インストルメンテーション

レイテンシは、ユーザー エクスペリエンスを左右する重要な要素です。アプリケーションのバックエンドが複雑な場合や、マイクロサービス アーキテクチャの採用を始めている場合、サービス間の通信の遅延やボトルネックの特定が難しくなります。Cloud Traceと OpenTelemetry ツールを使用すると、デプロイからレイテンシ データを収集して迅速に分析できます。

デバッグ

Cloud Debugger は本番環境のコードの動作をリアルタイムで検査し、分析できます。パフォーマンスへの影響や速度低下が生じることはありません。

プロファイリング

パフォーマンスの悪いコードはレイテンシを増大させ、アプリケーションやウェブサービスのコストにも影響を及ぼします。Cloud Profiler を使用すると、アプリケーション全体で実行され、CPU やメモリを大量に消費する関数のパフォーマンスを継続的に分析できます。

推奨事項

  • Cloud Trace を使用して、アプリケーションをインストルメントします。
  • Cloud Debugger を使用して、本番環境のリアルタイムのデバッグ機能を提供します。
  • Cloud Profiler を使用して、アプリケーションの動作パフォーマンスを分析します。

次のステップ

Google Cloud アーキテクチャ フレームワークの他のカテゴリを確認する。