コンテンツに移動
クラウド オペレーション

Ansible を使用して Google Cloud Ops エージェントをデプロイする方法

2022年1月20日
Google Cloud Japan Team

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

仮想マシン(VM)の運用を担当するサイト信頼性エンジニアリング(SRE)チームと運用チームは、信頼性とスケーラビリティに優れた環境を開発パートナーに提供する方法を常に模索しています。安定したエクスペリエンスを提供する方法の一つは、システムやアプリケーションのテレメトリー データ(指標、ログ、トレース)を使用し、効果的なモニタリングとトラブルシューティングを実施できるようにすることです。Google Compute Engine をはじめとする Google Cloud サービスの多くでは、基本的なシステムの指標がすぐに利用できます。ただし、VM やアプリケーションのテレメトリーに関する詳細な指標が必要な場合は、Google Cloud Ops エージェントをインストールしてください。

Cloud Ops では、UI を使って 1 台または数台の VM に Ops エージェントを簡単にインストールできます。しかし、VM フリートへのエージェントのインストール、構成、管理には多大な労力を要します。大規模組織で多くの VM が本番環境ワークロードをホストしている場合は、なおさらです。構成ツールとプロビジョニング ツールが膨大な数に上るため、複雑になりすぎるということもよくあります。Google は、デジタル トランスフォーメーションに取り組むユーザーのニーズに Cloud Operations を通じて応えたいと考えています。だからこそ、構成およびプロビジョニングの分野で、Cloud Ops エージェントをデプロイするための最も一般的な自動化ツールのサポートを取り入れました。これにより、ユーザーは運用上の手間を減らすための手段として自動化を優先し、信頼性とパフォーマンスに優れたインフラストラクチャの構築と管理に集中できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/agent_installation.max.max-2000x2000.jpg

今回は、VM フリート全体に Cloud Ops エージェントを自動でデプロイする方法について紹介します。この例では Ansible を使用します。Ansible は人気のオープンソース構成管理ツールであり、インフラストラクチャの自動化に着手する手軽な方法を提供します。また、テンプレート ツールを使用して自動化コードを合理化する、さらに高度な例も取り上げます。それでは、まず Ansible の概要と仕組みについて説明しましょう。

Ansible の概要と仕組み

Ansible は Python で記述されたオープンソースのツールであり、マシンと接続および通信するためのエージェントレスのフレームワークを提供します。Ansible はそのために Linux および Windows 向けのネイティブ接続プロトコル、SSH、Powershell をそれぞれ活用します。既存の接続プロトコルを使用する主なメリットは、長年にわたって幅広く導入されているこれらのプロトコルのセキュリティを活かしながら、同時にシステムのオーバーヘッドを減らすうえで効果があるという点です。Ansible を使用する際の最もシンプルな作業単位の一つはハンドブックです。

読み込んでいます...

これは、ローカルホストに対して実行されるごくシンプルなハンドブックで、「Hello World!」のエコーと本質的に同等のタスクを実行します。

Ops エージェントをデプロイして VM のモニタリングとトラブルシューティングを行う

新しい Google Cloud Ops エージェントを使うと、システムからの大まかなテレメトリー データの収集を極めて簡単かつ即座に開始できます。エージェントをインストールするだけで、標準のシステムログに加え、実行中のプロセスなど、システムに関するデフォルト以外の他のテレメトリーをすぐに取り込むことができます。

ワークロードの詳細を構成に追加する

では、Nginx と Ops エージェントのカスタム構成をデプロイしてテレメトリーを収集するハンドブックなど、もっと複雑な例を見てみましょう。

以下は、Nginx からデフォルトの指標とログを収集するための Ops エージェントのシンプルなカスタム構成ファイルの例であり、YAML 形式でも記述されます。

読み込んでいます...

このハンドブックを実行すると、インベントリ内のすべてのホストに NGINX が正常にインストールされ、Nginx から指標とデータの両方が送信されます。例のハンドブックをコピーするには、こちらの GitHub サンプルを確認してください。

続いて、この情報の一部を可視化します。以下の手順で、すぐに使用できる Nginx 向けダッシュボードをインポートできます。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/nginx_demo.gif

これで完了です。これで、Cloud Ops エージェントで、Nginx から収集した指標を表示できるようになりました。

使ってみる

管理対象が少数の VM かフリート単位かを問わず、システムとアプリケーションから堅牢なオブザーバビリティ データを確実に利用できるようにすることが、効果的なモニタリングとトラブルシューティングの鍵となります。Cloud Monitoring の VM インスタンス ダッシュボードや、エージェント ポリシーを使う場合や、Ansible、Chef、Puppet、Terraform などのオープンソース ツールを使う場合、Google Cloud VM にエージェントをインストールするための多数のオプションをご利用いただけます。Ops エージェントを使うと、インフラストラクチャとアプリケーションのパフォーマンスを最も高い状態で維持するためのデータを収集でき、デプロイの自動化によって日々の管理が非常に楽になります。

これらの手順を説明する動画の視聴をご希望の場合、本ブログ記事のデモを行っている YouTube 動画を視聴してください。また、O11y In Depth プレイリストの残りの動画もぜひご覧ください。

チュートリアルを開始する場合、Ansible 向け Cloud Ops エージェント チュートリアルを活用して、Google Cloud Shell でのシンプルなデプロイについて確認できます。

最後に、Google へのフィードバックやご質問があれば、Google Cloud コミュニティ Cloud Ops までご連絡ください。


Video Thumbnail

- Cloud Ops プロダクト マネージャー Kyle Benson

- プロダクト マネージャー Rahul Harpalani
投稿先