Gemini Cloud Assist でアプリケーションの費用を最適化する

1. はじめに

Gemini Cloud Assist は、Google Cloud ワークロードをサポートするフル機能のエージェントです。このエージェントは、新しいアプリケーションの設計や既存のアプリケーションの更新、Google Cloud でのワークロードのデプロイと実行、ワークロードのトラブルシューティング、費用とパフォーマンスの最適化を支援します。

Gemini Cloud Assist は、プロアクティブな推奨事項と分析情報を提供することで、費用とパフォーマンスを最適化します。リソースのサイズを適切に調整し、非効率な部分を特定し、アプリケーションの効率を継続的に改善できます。

学習内容

  1. マルチリージョン サービスを設定する方法。
  2. Gemini Cloud Assist を使用して費用を分析する方法。
  3. サービスの費用とパフォーマンスを改善するための推奨事項を取得する方法。

2. プロジェクトをセットアップする

プロジェクトの設定

Google Cloud プロジェクトの作成

  1. Google Cloud コンソールのプロジェクト選択ページで、Google Cloud プロジェクトを選択または作成します。
  2. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

Cloud Shell の起動

Cloud Shell は、必要なツールがプリロードされた Google Cloud 上で動作するコマンドライン環境です。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする 」アイコン をクリックします。
  2. Cloud Shell に接続したら、認証を確認します。
    gcloud auth list
    
  3. プロジェクトが構成されていることを確認します。
    gcloud config get project
    
  4. プロジェクトが想定どおりに設定されていない場合は、設定します。
    export PROJECT_ID=<YOUR_PROJECT_ID>
    gcloud config set project $PROJECT_ID
    

3. API の有効化

デプロイするアプリケーション コンポーネントと Google Cloud Assist を使用するには、次の API を有効にします。

ターミナルで API を有効にします。

gcloud services enable \
  geminicloudassist.googleapis.com \
  run.googleapis.com \
  cloudbuild.googleapis.com \
  storage.googleapis.com \
  compute.googleapis.com \
  artifactregistry.googleapis.com \
  cloudasset.googleapis.com \
  recommender.googleapis.com \
  appoptimize.googleapis.com \
  monitoring.googleapis.com \
  cloudscheduler.googleapis.com

コマンドが完了すると、次のような出力が表示されます。

Operation "operations/acf.p2-176675280136-b03ab5e4-3483-4ebf-9655-43dc3b345c63" finished successfully.

4. プロジェクトを準備する

Gemini Cloud Assist をテストするために、基本的なアプリケーションとデプロイを作成します。

リポジトリのクローンを作成する

  1. リポジトリのクローンを Cloud Shell 環境に作成します。
git clone --depth 1 https://github.com/GoogleCloudPlatform/devrel-demos.git
  1. デモ ディレクトリに移動します。
cd infrastructure/cross-region-demo

5. アプリケーションをデプロイする

アプリケーション コードと Google Cloud リソースをデプロイする準備ができました。この処理には最長で 15 分ほどかかります。

プロジェクトをセットアップする

ターミナルから次のコマンドを実行します。

chmod +x scripts/setup.sh
./scripts/setup.sh

このスクリプトは、プロジェクトの API の有効化を検証し、リソースを作成するために必要なポリシー バインディングを作成します。

アプリケーション コンポーネントをデプロイする

ターミナルから次のコマンドを実行します。

chmod +x scripts/deploy.sh
./scripts/deploy.sh

このスクリプトは、次の Google Cloud リソースをデプロイします。

  • フロントエンドとバックエンドの Cloud Run サービス
  • オブジェクト転送用の Cloud Storage バケット
  • トラフィックを作成するために、時間ベースのスケジュールで転送を実行する Cloud Scheduler ジョブ

コンポーネントのデプロイ中に、Cloud Shell エディタでファイルを参照して詳細を確認します。

6. デプロイされたサービスを表示する

左側のペインで [Cloud Run] を開きます。[two-tier-frontend] サービスをクリックします。

バケット オブジェクトの転送やサービス間の API 呼び出しによる転送など、さまざまなリージョン間トラフィックのパターンをサービスでトリガーできます。

Cloud Scheduler ジョブが自動的に実行され、費用データの入力が開始されます。完了までには約 24 時間かかります。

7. 最適化の分析情報を表示する

約 1 日間トラフィックを実行すると(費用指標は太平洋標準時の午前 0 時頃に更新されます)、ダッシュボードの準備が完了します。

注: 費用データが表示されない場合は、翌日もう一度お試しください。

最適化ダッシュボードを開く

[**Cloud Hub Optimization**] を開きます。

次のような出力が表示されます。

Cloud Hub 最適化ダッシュボード

最適化ダッシュボードには、前の期間(デフォルトは 7 日間)のCloud Billing の料金が表示されます。

ダッシュボードをスクロールして、プロジェクトのネットワーク トラフィックを表す「上位の通信元」などの分析情報を確認します。

Gemini Cloud Assist とチャットする

上部のナビゲーション バーにあるスパークル アイコンをクリックして、[Gemini Cloud Assist] を開きます。

Gemini Cloud Assist チャットで、「Why are my networking costs so high?」などの質問をします。Gemini Cloud Assist は、プロジェクトの特定のネットワーク料金を分析し、ネットワーク トラフィックを改善するためのアイデアを提案します。

次のような出力が表示されます。

Gemini Cloud Assist チャット

8. リソースを削除する

サービスがトラフィックとログの生成を停止するには、Cloud Shell エディタ を開き、次のコマンドを実行します。

ターミナルから次のコマンドを実行します。

cd ~/devrel-demos/infrastructure/cross-region-demo
chmod +x scripts/destroy.sh
./scripts/destroy.sh

9. 完了

おめでとうございます!これで、Cloud Optimization の概要と、Google Cloud でアプリケーションの費用とパフォーマンスを最適化するプロセスが完了しました。

次のステップ