みなさんこんにちは。ネコ好きなマネージドサービス部の塩野です。
今回も「【書評】オブザーバビリティ・エンジニアリングを読んでみた」からの連載シリーズです。実際にオブザーバビリティをやりたいけど何をどうしていったらいいんだろうという所の一番最初の部分のデータ取り込みになります。実際の現場ではデータの取り込みだけでなく、社内にオブザーバビリティ文化を広げていく活動も一緒にやっていく必要がありますので、このオブザーバビリティ文化を広げていく活動についても近いうちに記事にしたいと思います。
想定読者
- オブザーバビリティに興味がある方
- アプリケーションモニタリングに興味はあるが、何からどう進めていったらいいかわからない方
この記事で記載する範囲
今回の記事では赤い枠で囲った部分になります。
エージェント導入概要
ここからは、実際にエージェントの導入について話を薦めたいと思います。 単純にエージェント導入の話といっても、EC2でインストーラーを実行するだけではありません。マネージドサービスを利用する場合と利用しない場合で若干設定のパターンが異なりますので、そのあたりを深堀していきたいと思います。
パターン別エージェント導入分類表
以下はマネージドサービスを利用する場合と利用しない場合など、エージェントの導入パターンをまとめたパターン別分類表です。
パターン別分類表
サービス種別 | 適用可能なエージェント | 備考 |
---|---|---|
Amazon EC2(LInux) | ・Infrastructure Agentを直接インストール ・監視データ取得用コンテナを起動 |
コンテナ利用時はホストOSのルートフォルダを読み取り専用でマウントする必要がある ※標準どおりの手順で設定すればOK |
Amazon EC2(Windows) | ・Infrastructure Agentを直接インストール | |
Amazon ECS (EC2起動タイプ) | ・起動用テンプレートイメージにInfrastructure Agentを直接インストール ・監視データ取得用サイドカーコンテナを利用 |
用意されたCloudformationを展開することでタスクが作成される |
Amazon ECS Fargate | ・監視データ取得用サイドカーコンテナを利用 | タスク定義の例をダウンロードし、サンプルを元にサイドカーの定義をタスク定義に追加 |
Amazon ECS Fargate | ・監視データ取得用サイドカーコンテナを利用 | Infrastructureエージェントとnri-kubernetesインテグレーションを含むサイドカーが自動的に挿入 |
各種エージェントやインテグレーションの守備範囲
どういった構成の場合に、どの設定が必要なのかといった点については上記の表の通りですが、各種エージェントやインテグレーション設定をおこなうとどういったデータが取得されるのか図解してみました。今回の図解で使用するシステムの想定構成はWordpressなどのWebアプリケーションです。下記のパターンでは見やすいように、それぞれ色ごとにどのエージェントがどのデータを取得するか分けてみました。
EC2の中にDBエンジンもWebアプリも全部あるパターン
パターン別分類表の中ではサービス種別が「EC2(LInux)」や「EC2(Windows)」のパターンです。
今回のケースでは、Webアプリケーション(Wordpressの場合はphpのプログラム)はAPMでデータ取得します。DatabaseアプリケーションやOSのメトリクスはInfrastructure Agent及びプラグインを使用してデータ取得を行います。EC2のステータス情報などのAWSインフラ基盤の情報はAWSインテグレーション設定を使用してデータの取得をおこないます。
EC2の中でDockerを動かして、Docker上でDBエンジンとWebアプリを動かしたパターン
パターン別分類表の中ではサービス種別が「Amazon EC2(LInux)」、「Amazon EC2(Windows)」と「Amazon ECS (EC2起動タイプ)」のパターンです。
この中のサービス種別が「Amazon EC2(LInux)」、「Amazon EC2(Windows)」のパターンは、Amazon ECSやAmazon EKSなどのマネージドサービスを使わず、Amazon EC2の中にDockerエンジンをインストールしたパターンになります。Amazon EC2(Windows)で実現する場合はDocker Desktopなど有償のDockerエンジンが必要になる場合があります。
また、この中のサービス種別が「Amazon ECS (EC2起動タイプ)」のパターンの場合、自動展開されるEC2起動用のイメージを自分で用意する必要があります。
正直なところ、「EC2の中にDBエンジンもWebアプリも全部あるパターン」と内容は変わりません。このパターンの場合では、Infrastructure Agent及びプラグインを使用してコンテナ周りのデータ取得が必要になりますが、エージェントの設定について特別に何か設定をしなくても、標準設定でコンテナ周りのデータも取得してくれます。
監視用コンテナをサイドカーとして立てるパターン
パターン別分類表の中ではサービス種別が「Amazon ECS Fargate」と「Amazon EKS Fargate」のパターンです。
基本的にコンテナが動いているインスタンスの情報はサイドカーからデータを取得します。マネージドサービス基盤の役割が他の方法より大きくなっていますので、その部分に関してはAWS Integration経由で情報を取得する構成となります。また、この構成でEKSを使う場合は、マネージドサービス側の制限によって一部のOS内の情報が取得ができません。詳しくは下記図の下にある公式サイトの情報をご参照ください。
エージェント導入
Linux環境やWindows環境へのエージェントの導入
Linux環境やWindows環境にNew RelicのInfrastructure agentをインストールする手順についてはこちらの記事にまとめておりますので、こちらの記事をご参照ください。
Amazon ECS Fargate環境へのエージェント導入
Amazon ECS Fargate環境へのエージェント導入する手順についてはこちらの記事にまとめておりますので、こちらの記事をご参照ください。
まとめ
当初は1つの記事で全部まとめようとしたのですが、文字数が多くなりすぎてしまったので 記事をいくつかに分割させて頂きました。New Relicのエージェント導入については、公式から わかりやすい情報が提供されていますが、ドキュメントを眺めていると理解し辛い部分もありましたので、 環境毎にどういう設定が必要かといった情報を自分の中で整理したくて記事にまとめてみました。
どなたかのお役に立てれば幸いでございます。
宣伝
弊社では、こうしたオブザーバビリティの導入を促進するツールのご紹介を行っております。 もしご興味をお持ちの方は、こちらのサービスご紹介ページの一番下にある お問合せフォームよりお問合せ頂けましたら幸いでございます。
関連記事
blog.serverworks.co.jp blog.serverworks.co.jp blog.serverworks.co.jp