コンテンツに移動
デベロッパー

gcpdiag の発表 - Google Cloud Platform のオープンソース トラブルシューティング ツール

2022年6月28日
Google Cloud Japan Team

※この投稿は米国時間 2022 年 6 月 16 日に、Google Cloud blog に投稿されたものの抄訳です。

Google は Google Cloud を可能な限り使いやすくすることに力を注いでおり、その手段の一つが、Google Cloud サポートチームを通じて届けられたお客様の声にしっかりと耳を傾けることです。サポートチームは、お客様のリクエストに迅速に応える傍らで、お客様の声を通して得られた体験を基にプロダクト開発チームやドキュメント作成チームに改善提案を出しています。お客様からサポートのリクエストがあるたびに、Google はそれをプロダクト エクスペリエンスを改善する機会ととらえ、この活動を「サポータビリティ」と呼んでいます(以前のブログ投稿をお読みください)。

サポータビリティの実践

次の例について考えてみましょう。ある DevOps エンジニアがセキュリティ レビューを行い、いくつかのサービス アカウントから過剰な権限を削除することでセキュリティを向上できる可能性があることに気づきました。しかし、ある GCE サービス アカウントから、各 GCE インスタンスのシステムログを Cloud Logging に取り込むために必要な権限を誤って削除してしまいました。

サポータビリティ活動の一環として、Google は Google のプロダクトで使用されているデフォルト値が理にかなっていること、UI が直感的にわかること、一般公開されているドキュメントで正しい操作方法がわかりやすく説明されていることを確認しています。この例の場合は、Cloud Logging のアクセス制御に関するドキュメントを確認し、場合によってはドキュメントの内容を改善します。ただし、このトピックに関する説明は明快であるように見えます。また、UI は誤解を招くようなものでなく、デフォルトの権限はロギングが機能するように正しく設定されています。

それでは、お客様がこの権限の問題の根本原因を見つけ出せるよう支援するには、他にどのようなことができるでしょうか。

gcpdiag の紹介

本日、Google Cloud プロジェクトでの構成の問題を検出する gcpdiag というオープンソース ツールが発表されました。このツールは、オープンソース コミュニティの協力を得ながら Google Cloud サポートチームが維持管理します。

gcpdiag が誕生する基となったアイデアは、「ある種の一般的な問題のトラブルシューティングは、Google Cloud API 呼び出しから返される情報を使用して自動化できるかもしれない」というものでした。先のロギング取り込みの例に戻ると、次のような自動プロセスを実装できる可能性があります。

  1. プロジェクトに含まれる GCE インスタンスのリストを取得する(API 呼び出し)。

  2. プロジェクトの IAM ポリシーを取得する(API 呼び出し)。

  3. リストされた GCE インスタンスによって使用されているサービス アカウントが logging.logEntries.create 権限を持っていることを確認する。

gcpdiag は、このようなさまざまな自動チェック(ルールと呼びます)を実行し、検出されたすべての問題に関するレポートを作成するコマンドライン ツールです。ルールは、検出された問題のカテゴリ別に分類されています。たとえば、誤りの可能性が高い場合は ERR、ベスト プラクティスの場合は BP、セキュリティ問題の場合は SEC などです。コードに対して実行するコード lint チェックツールと同様に、gcpdiag を実行して GCP リソースを点検し、このような構成に関する一般的な問題をとらえます。以下に例を示します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/gcpdiag-screenshot.max-1000x1000.png

現在 gcpdiag には、Cloud サポートチームがお客様の問題に対応する中で遭遇してきた一般的な問題を検出するために、70 以上のルールが付属しています。特に GKE に関連する問題のカバー範囲が広く、その他のプロダクトについても問題検出のカバー範囲は広がっています。

gcpdiag を今すぐお試しください

gcpdiag を今すぐ試して、お客様自身のプロジェクトに gcpdiag で検出可能な問題が存在していないかどうか確認することをおすすめします。gcpdiag は構成をチェックするだけで、リソースに変更を加えることはないため、安心して実行できます。gcpdiag を実行する最も簡単な方法は、Cloud Shell を使用することです。Cloud Shell には gcpdiag がプリインストールされています。Cloud Shell インスタンスで次のように入力するだけです。

gcpdiag lint --project=PROJECT_ID

実行するルールを制限し、出力を好みに合わせて微調整することもできます。たとえば、次のように入力します。

gcpdiag lint --project=PROJECT_ID --include=gke \

 --exclude=bp --hide-ok

この場合は、GKE に関連するルールだけが実行され、ベスト プラクティス ルール(「bp」)は省略されます。また、失敗したルールだけが出力に表示されます。

gcpdiag を Cloud Shell ではなく独自のターミナルで実行したい場合は、こちらの指示に従って Docker でローカルにセットアップしてください。その Docker イメージを使用して gcpdiag をオンデマンドまたは定期的に実行し、プロジェクトに既知の問題がないことを検証できます。

gcpdiag の利便性向上にご協力ください

gcpdiag は正式な Google プロダクトではなく、オープンソース コミュニティ プロジェクトであり、GitHub でリリースされています。gcpdiag がオープンソースとしてリリースされた理由は、Google ではコミュニティの協力を促進したいのと、gcpdiag のような「troubleshooting as code」ツールはすべての人に公開されるべきだと考えているためです。

バグや機能リクエストがありましたら、GitHub の Issues からお知らせください。また、pull リクエストの形での外部コードの協力も歓迎します。すべての Google Cloud ユーザーが構成の問題を解決し、ベスト プラクティスに従ってリソースを実行できるように、gcpdiag の改善にご協力をお願いいたします。

- テクニカル ソリューション エンジニア David Schweikert

- Cloud デベロッパー アドボケイト Sara Ford
投稿先