インフラストラクチャを診断して検証する

ガイドのトピック:

インフラストラクチャを診断する

このページでは、Aggregation Service インフラストラクチャのトラブルシューティングと検証を行う方法について説明します。手順に沿って問題を特定して解決します。

Terraform のトラブルシューティング

Terraform は、HashiCorp が作成した Infrastructure as Code(IaC)プラットフォームであり、選択したパブリック クラウドに Aggregation Service をデプロイするための主な推進力です。Terraform がインストールされていない場合は、CLI をローカルで取得する方法に関する HashiCorp のドキュメントをご覧ください。

必要に応じて Terraform バージョンを切り替える必要がある場合は、tfenv のインストールも検討してください。

集計サービスの問題を解決できない場合は、GitHub の問題を報告するか、テクニカル サポート フォームを送信して Google に通知してください。

Terraform を手動で切り替える場合:

rm -rf $(which terraform)
wget https://releases.hashicorp.com/terraform/1.2.3/terraform_1.2.3_linux_amd64.zip 
unzip terraform_1.2.3_linux_amd64.zip
mv terraform /usr/local/bin/terraform
terraform --version

Terraform エラーが不明な場合は、TRACE レベルで Terraform ロギングを有効にして出力を確認できます。

Google Cloud

Google Cloud の Terraform プロバイダは、HashiCorp と Google が共同で開発しています。その他の質問やトラブルシューティングのアドバイスについては、Cloud の Terraform サポートにお問い合わせいただくか、Hashicorp Discuss ポータルの Google セクションをご覧ください。

アマゾン ウェブ サービス

デバッグに関するドキュメントは、AWS のサイトで確認できます。HashiCorp Discuss ポータルの AWS セクションもご覧ください。

Terraform についてさらに質問がある場合は、HashiCorp コミュニティ ポータルをご覧ください。Terraform の一般的なトラブルシューティングのアドバイスについては、デバッグ ドキュメントをご覧ください。

これらのディレクトリを削除すると、Terraform が状態を認識できなくなるため、これらのディレクトリを変更する際は十分に注意してください。すべてのリソースの再プロビジョニングが試行され、まったく同じ名前のリソースがある場合はエラーが発生します。問題が解決しない場合は、テクニカル サポート フォームからお問い合わせください。

これらのディレクトリを削除すると、Terraform が状態を認識できなくなるため、これらのディレクトリを変更する際は十分に注意してください。すべてのリソースの再プロビジョニングが試行され、まったく同じ名前のリソースが存在するとエラーが発生します。問題が解決しない場合は、テクニカル サポート フォームからお問い合わせください。

Cloud の設定を検証する

選択したパブリック クラウドの Aggregation Service Infrastructure が正しくデプロイされていることを確認します。これを行うには、サンプルのデバッグ レポートを使用して、デバッグモードでジョブを実行します。Aggregation Service が API リクエストを受信して応答できる場合は、Aggregation Service が稼働していることがわかります。まだ設定していない場合は、Postman または cURL を使用して、Aggregation Service への API 呼び出しを設定することをおすすめします。通常の集計オペレーション中は、デバッグモードをオフ(false に設定)にする必要があります。

次の手順に加えて、Aggregation Service インフラストラクチャをさらに検証するには、パブリック クラウドでプロビジョニングされるクラウド コンポーネントをすべて調査します。

手順

  1. サンプルのデバッグ レポートと出力ドメイン ファイルを生成するには、Codelab の関連する手順を行います。

  2. ハイライト表示されたプレースホルダを置き換えて、この本文で createJob リクエストを実行します。

    {
      "job_request_id": "<job_request_id>",
      "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
      "input_data_bucket_name": "<input_bucket_name>",
      "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
      "output_data_bucket_name": "<output_bucket_name>",
      "job_parameters": {
        "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
        "output_domain_bucket_name": "<output_domain_bucket_name>",
        "attribution_report_to": "<reporting_origin_domain>",
        "report_error_threshold_percentage": "10", // example value
        "debug_run": "true" // optional, but should be false by default
      }
    }
    
  3. getJob リクエストを実行してレスポンスを表示します。次のレスポンスが返された場合は、集計サービスが正しくデプロイされていることを意味します。

    {
        "job_status": "FINISHED",
        "request_received_at": <utc_timestamp>,
        "request_updated_at": <utc_timestamp>,
        "job_request_id": "<job_request_id>",
        "input_data_blob_prefix": "<report_folder>/<input_report_prefix>.avro",
        "input_data_bucket_name": "<input_bucket_name>",
        "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
        "output_data_bucket_name": "<output_bucket_name>",
        "postback_url": "",
        "result_info": {
            "return_code": "<return_code_and_message>",
            "return_message": "Aggregation job successfully processed",
            "error_summary": {
                "error_counts": [],
                "error_messages": []
            },
            "finished_at": <utc_timestamp>
        },
        "job_parameters": {
            "debug_run": "true", // optional, but should be false by default
            "output_domain_bucket_name": "<output_domain_bucket_name>",
            "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
            "attribution_report_to": "<reporting_origin_domain>"
        },
        "request_processing_started_at": <utc_timestamp>
    }
    

job_status: FINISHED を含むレスポンスが届かない場合は、選択したパブリック クラウドのコンピューティング エンジンまたは EC2 リソースに移動して詳細情報を収集します。Aggregation Service インスタンスとログを調べ、TEE container launcher initiatingTEE container launcher exiting の間に表示される情報を記録して、技術サポートチームに提供します。

Google Cloud

  1. [Google Cloud: Compute Engine] に移動します。
  2. [VM インスタンス] をクリックして、Aggregation Service インスタンスを選択します。
  3. [詳細] > [ログ] > [ロギング] をクリックします(または、ログ エクスプローラを検索します)。

アマゾン ウェブ サービス

  1. Amazon Web Services: EC2 Enclave に移動します。
  2. [EC2 インスタンス] をクリックし、Aggregation Service インスタンスを選択します。
  3. [Actions] > [Monitor and troubleshoot] > [Get system log] をクリックします。

GitHub の公開ガイダンスで、エラー通知に一致するものがないか確認します。

注: 現在のバージョンの Aggregation Service をアップグレードしたばかりの場合は、正しいインスタンス イメージが最終的なコンピューティング サービス インスタンスに反映されるまでに、プロビジョニング プロセス全体で最大で数時間かかることがあります。該当しない場合は、お問い合わせください。

次のステップ

集計サービスの問題が解決しない場合は、GitHub の問題を報告するか、技術サポート フォームを送信して Google に通知してください。