Amazon Elastic Container Service 連携

Amazon Elastic Container Serviceは、EC2の管理クラスターでDockerアプリケーションを簡単に実行できるサービスです。Site24x7との連携により、EC2起動タイプおよびFargate起動タイプでの、クラスター/サービスレベル両方の使用率の統計を監視できます。

ユースケース

Amazon ECSは、高い拡張性を持つコンテナ管理サービスです。一例として、ECSの監視対象内でコンテナを実行しているユースケースを考えてみましょう。 Amazon ECSをSite24x7と連携すると、ECSクラスターおよびECSクラスターサービスの監視が自動的に作成されます。万が一、クラスターの監視対象がダウンしたり問題が発生したりした場合でも、設定されたアラート機能によって問題を迅速に特定し、追跡することができます。

Site24x7とAmazon ECSを連携するメリット

Site24x7とAmazon Elastic Container Serviceを連携することで、Amazon ECSの状況をクラスター、コンテナ、サービス、およびタスクの各レベルで包括的に監視できるようになります。

  • 多彩なメトリクスを使用したリソースの監視
  • しきい値の設定、およびクラスターやコンテナインスタンスのダウン時のアラート通知
  • サービス、タスク、コンテナインスタンスの詳細な概要と、Container Insightsの情報をグラフ形式で一元的に把握

前提条件

  • EC2起動タイプの場合、Amazon ECS コンテナインスタンスでは、コンテナエージェントのバージョン1.4.0以降が必要です。また、起動中のコンテナインスタンスでは、[ecs:StartTelemetrySession]アクセス権限を付与した[IAMロール]も必要です。
  • Fargate起動タイプの場合、CloudWatch CPU およびメモリ使用率メトリクスは、自動収集されます。

設定手順

  • まだ設定がお済みでない場合は、IAMユーザーまたはIAMロールを作成し、Site24x7によるAWSアカウントへのアクセスを有効にします。 詳細はこちら
  • AWSアカウント連携ページのサービス検索フィールドで、ECSクラスターのチェックボックスが選択されていることを確認します。 詳細はこちら

権限

Site24x7のIAMユーザーまたはIAMロールで割り当てられているIAMポリシーに、以下の読み込みレベルのアクションが存在することを確認します。詳細はこちら

  • ecs:DescribeServices:1つ以上のECSクラスターを表示します。
  • ecs:DescribeContainerInstances:Amazon EC2コンテナインスタンスを表示します。
  • ecs:DescribeClusters:クラスターで実行しているサービスを表示します。

ポーリング間隔

ECSメトリックデータは、設定しているポーリング頻度ごとに収集されます。詳細はこちら

ライセンス

  • ECSクラスターごとに1ベーシック監視が消費されます。
  • クラスターで稼働しているECSサービスごとに1ベーシック監視が消費されます。

サポートしているメトリクス

クラスター

クラスターでは、以下のメトリクスが収集されます。

属性 詳細 統計 データタイプ
CPU予約 クラスターでタスクを実行することで予約されているCPUユニットの割合です。 平均 パーセント
クラスターCPU使用率 クラスターで使用されているCPUの割合です。 平均 パーセント
メモリ予約 クラスターでタスクを実行することで予約されているメモリの割合です。 平均 パーセント
クラスターメモリ使用率 クラスターで使用されているメモリの割合です。 平均 パーセント
アクティブサービス クラスターで実行されているアクティブなサービス数です。 合計 カウント
保留タスク [保留]ステータスのタスク数です。 合計 カウント
実行タスク [実行]ステータスのタスク数です。 合計 カウント
コンテナインスタンス クラスターに登録されているコンテナ数です。 合計 カウント

サービス

サービスレベルでは、以下のメトリクスが収集されます。

属性 詳細 統計 データタイプ
サービスCPU使用率 サービスで使用されるCPUユニットの割合です。 平均 パーセント
サービスメモリ使用率 サービスで使用されるメモリの割合です。 平均 パーセント
保留タスク サービスで[保留]ステータスになっているタスク数です。 合計 カウント
実行タスク サービスで[実行]ステータスになっているタスク数です。 合計 カウント

コンテナインスタンス

属性 詳細 統計 データタイプ
EC2保留のタスク 各コンテナインスタンスで、[保留]ステータスになっているタスク数です。 合計 カウント
EC2実行タスク 各コンテナインスタンスで、[実行]ステータスになっているタスク数です。 合計 カウント
CPUの可用性 各コンテナインスタンスの、CPUユニットの可用性の数です。 平均 単位
メモリの可用性 コンテナインスタンスに残っているメモリユニット数です。 平均 MiB

コンテナ分析

属性 説明 統計 データタイプ
使用CPU クラスターのタスクで使用されているCPUユニットです。 平均 パーセンテージ
予約CPU クラスターのタスクに予約されているCPUユニットです。 平均 ユニット
使用メモリ クラスターのタスクに使用されているメモリです。 平均 パーセンテージ
予約メモリ クラスターのタスクに予約されているメモリです。 平均 MB
ネットワーク受信バイト クラスターのリソースで受信されたバイト数です。 合計 MB
ネットワーク送信バイト クラスターのリソースが送信したバイト数です。 合計 MB
ストレージ読み取りバイト クラスターのストレージで読み取られたバイト数です。 合計 MB
ストレージ書き込みバイト クラスターのストレージに書き込まれたバイト数です。 合計 MB
コンテナインスタンス数 クラスターに登録されているAmazon ECSエージェントで稼働しているEC2インスタンス数です。 最大
デプロイメント数 クラスターのデプロイメント数です。 最大
期待タスク数 クラスターの期待タスク数です。 最大
待機タスク数 現在、待機状態のタスク数です。 最大
稼働タスク数 現在、稼働状態のタスク数です。 最大
タスクセット数 サービスのタスクセット数です。 最大

タスク

属性 説明
失敗タスク エラーによりタスクの停止や起動の失敗が起こったかをレポートします。

タスク定義

属性 説明 統計方法 データ型
CPU使用率 クラスター内のタスク定義によって使用されたCPUユニット数です。 平均 ユニット
CPU確保量 クラスター内のタスク定義によって確保されたCPUユニット数です。 平均 ユニット
Memory使用量 クラスター内のタスク定義によって使用されたメモリ容量です。 平均 MB
Memory確保量 クラスター内のタスク定義によって確保されたメモリ容量です。 平均 MB
受信バイト数 クラスター内のリソースが受信したデータのバイト数です。 平均 MB
送信バイト数 クラスター内のリソースが送信したデータのバイト数です。 平均 MB
ストレージ読み込みバイト数 クラスター内のストレージから読み込まれたデータのバイト数です。 平均 MB
ストレージ書き込みバイト数 クラスター内のストレージへ書き込まれたデータのバイト数です。 平均 MB
エフェメラルストレージ エフェメラルストレージの容量サイズです。 平均 GB

メタデータ

タスク詳細では、以下のタスクステータスおよび設定情報を表示します。

属性 詳細
タスクID タスクに付ける固有IDです。
タスク定義 タスク定義の詳細です。
クラスター名 クラスターの略称名です。
起動タイプ 実行しているタスクの起動タイプです。可能な値は、[EC2]と[Fargate]です。
指定ステータス タスクの指定ステータスを表示します。
最終ステータス タスクの最新ステータスを表示します。
CPU タスクで使用しているCPUユニット数を表示します。
メモリ タスクで使用しているメモリ容量を表示します。
開始時 タスクの開始時に指定したタグを表示します。
バージョン タスクのバージョンカウンターです。
作成時 タスク作成時のタイムスタンプを表示します。
停止時 タスク停止時のタイムスタンプを表示します。
タスク期間 タスク作成時から停止時までの時間を表示します。
停止理由 タスクが[実行]ステータスから移行するまでの期間を表示します。
接続性 タスクの接続性ステータスを表示します。
接続時 タスクが[接続]ステータスへ移行するまでの期間を表示します。
実行時 実行停止時のタイムスタンプを表示します。
グループ タスクに関連付いているタスクグループ名です。
プラットフォームバージョン タスクが実行されているプラットフォームのバージョンです。

しきい値設定

Site24x7と連携しているAmazon ECS監視のしきい値を設定するには、以下の手順を行います。

  1. Site24x7アカウントにログインし、[管理]→[設定プロファイル]→[しきい値と可用性]の順に移動します。
  2. [しきい値プロファイルの追加]をクリックします。
  3. [監視タイプ]ドロップダウンメニューから[ECSクラスター]または[ECSクラスターサービス]を選択し、[表示名]フィールドに適切な名前を入力します。

予測

以下のAmazon ECSクラスターサービスのパフォーマンスメトリクスについて、将来の値を予測することができます。これにより、キャパシティの追加やAWSインフラストラクチャのスケールアップ・ダウンについて、データに基づいた的確な意思決定を行うことが可能になります。

  • Service CPU utilization
  • Service Memory utilization
  • Running Tasks

同様に、Amazon ECSクラスターの以下のメトリクスについても予測を表示できます。

  • CPU Reservation
  • Cluster CPU Utilization
  • Memory Reservation
  • Cluster Memory Utilization
  • Container Instances

データの表示手順

  • Site24x7コンソールにサインインします。[AWS]をクリックします。監視するAWSアカウントを選択します。
  • ドロップダウンメニューから[ECSクラスター]または[ECSクラスターサービス]を選択します。
  • 監視するクラスターまたはサービスのリストから、メトリクスを表示したいECSリソースを選択します。
Amazon ECSのログをAppLogsに転送することで、コンテナ化されたアプリケーションの問題特定やトラブルシューティングを行うことができます。

Site24x7のECS監視画面

Site24x7のECS監視画面では、以下のデータを確認・表示することができます。

概要

概要タブでは、クラスターレベルの各種メトリクスを時系列チャートで一目で把握できます。これらのチャートは、CPU使用率、CPU確保量、メモリ確保量、メモリ使用率に関する情報を提供します。また、クラスター内で作成されたサービス数、保留中のタスク数、実行中のタスク数、コンテナインスタンス数などの総合的な統計情報も提供します。

Container Insights

Container Insightsは、コンテナ化されたアプリケーションやマイクロサービスからメトリクスとログを収集・分析する機能です。連携している監視対象でContainer Insightsを設定すると、FargateまたはEC2レベルのメトリクス(CPU使用率、CPU確保量、メモリ確保量、メモリ使用率、ネットワークトラフィック、ストレージトラフィック、コンテナインスタンス数)の情報を時系列チャートで取得できます。

トポロジービュー

トポロジービュータブでは、リソースを中心としたリアルタイムの依存関係マップが表示されます。ECSリソースが周囲のAWSインフラストラクチャとどのように接続されているかをリアルタイムで動的に追跡するため、アラート発生時の根本原因の特定を迅速に行うことができます。

接続されているいずれかのコンポーネントがクリティカルな状態にある場合、トポロジービュー内でその旨が停止理由とともにマークされるため、監視ページから移動することなく正確な障害発生ポイントを特定できます。アカウント全体を網羅するトポロジービューとは異なり、このタブでは可視化のスコープを単一のリソースに絞り込んでいるため、「このECSリソースは何に接続されているのか?」「これが停止すると何が壊れるのか?」という具体的な疑問にピンポイントで答えます。個々のリソースから、上位の親エンティティ、サービスタイプ、リージョン、そしてAWSアカウントレベルに至るまで、依存関係のチェーン全体を追跡可能です。

サービス

サービスは、ECSクラスター内で一定数のタスク定義を同時に実行するために使用されます。サービスタブには、クラスター内のサービスの一覧とその設定詳細が表示されます。また、サービスレベルのCPU使用率、メモリ使用率、およびタスク数の時系列グラフが表示されます。

タスク定義

Amazon ECSでDockerコンテナを実行するには、タスク定義が必要です。タスク定義タブには、特定のECSクラスター内でタスクを作成するために使用されているタスク定義の一覧が表示されます。

インスタンス

インスタンスタブには、ECSクラスター内のコンテナインスタンスの一覧と、各インスタンスの情報(利用可能なメモリ容量、利用可能なCPUユニット数、保留中のタスク数、実行中のタスク数など)が表示されます。

監視対象リソース

監視対象リソースタブには、該当のECSクラスターに関連付けられているEC2インスタンスの一覧が表示されます。

タスク

Amazon ECSにおいて、コンテナはタスクを動かすためのタスク定義の中で定義されます。タスクとは、クラスター内で実際に実行されているタスク定義の実体のことです。タスクタブには、実行中、停止、および保留中のタスクの詳細が表示されます。

コンテナ

コンテナタブには、関連するタスク定義、タスク、およびそれらのステータスを含む、コンテナ固有のデータが表示されます。