eyemovic inc.

Works blog仕事の取り組み・ビジョン

2015.08.31

AWS(Amazon Web Service) CloudWatch

はじめに                                      

 AWSのインスタンスをAPI及びSDKを使用して、サーバ状態を取得するための、Javaを利用した使い方の手順をまとめます。

 サーバ状態を取得するには、「CloudWatch」の機能を利用します。

制限事項                                      

 CloudWatchには、制限事項があります。

 参照:CloudWatch の制限

API                                            

インストール                                              

 ●Windowsの場合

  下記ページより、ダウンロードし、ウィザードに従ってインストールしてください。

  Install the AWS CLI Using the MSI Installer (Windows)

   →32bit版:Download the AWS CLI MSI installer for Windows (32-bit)

    64bit版:Download the AWS CLI MSI installer for Windows (64-bit)

 ●Mac / Linuxの場合

  1:ダウンロード

    ※ダウンロードは任意のフォルダで行ってください。

  2:解凍

  3:インストール

 ●インストール後の確認

  インストール後、バージョン情報が表示されれば、インストールが成功しています。  

設定                                                         

 AWSのAPIやSDKを使用する場合、認証情報をローカルに保存することができます。

 1:AWSのページから、アクセスキーIDと秘密アクセスキーを取得します。

   ※取得方法は、下記を参考にしてください。

    参照:アクセスキー ID と秘密アクセスキーの取得

 2:1で取得した、アクセスキーIDと秘密アクセスキーを元に認証情報を作成します。

   ※リージョンの「ap-northeast-1」は『東京』となります。

   ※出力書式は、「json」を指定しています。他にも、「table」「text」を指定できます。

   ※認証情報は、下記のフォルダに保存されます。

    ●Windowsの場合

     %USERPROFILE%¥.aws

    ●Mac / Linuxの場合

     ~/.aws

SDK                                            

インストール                                              

 下記ページより、SDKをダウンロードし、任意のフォルダに配置後、パスを通してください。

 AWS SDK for Java

Java                                             

CloudWatchのクライアント                          

 AWSのCloudWatchにアクセスするため、クライアントのインスタンスを作成します。

 ■ローカルマシンの認証情報を使用する場合

 参照:DefaultAWSCredentialsProviderChain

 ■任意の認証情報を使用する場合

 参照:BasicAWSCredentials

リージョンの設定                                          

 使用しているサービスが動作しているリージョン(地域)を設定します。

 参照:Regions

リクエストデータの設定                                  

 統計情報を取得するリクエストを作成します。

 ■統計情報リクエストの作成

 参照:GetMetricStatisticsRequest

 ■メトリック(統計情報)の設定

 どのメトリックを取得するかを指定します。

 ※{名前空間} -> 利用するサービスの名前空間を指定します。

  {メトリック} -> 取得したいメトリックを指定します。

             EC2:EC2のメトリック一覧

             RDS:RDSのメトリック一覧

 ■ディメンション(次元)の設定

 取得したメトリックのディメンションを設定することで、統計情報をフィルタリングし、必要な情報の精度をあげます。

  ★EC2の場合

  EC2のインスタンスでフィルタリングする場合

  参照:EC2のディメンション一覧

  ★RDSの場合

  RDSのインスタンスでフィルタリングする場合

  参照:RDSのディメンション一覧

 ■取得する統計結果の設定

 統計結果のうちどの統計結果を取得するかを設定します。

 参照:取得可能な統計結果

 ■期間の設定

 統計情報を取得する期間を設定します。

 CloudWatchの制限事項及び、統計情報の取得頻度を検討し、期間を決定します。

 設定できる期間は、最短1分から最長1日です。 

 また、1時間をn分割した統計を取得する場合は、Periodを設定します。

 参照:期間

統計結果データの取得                                     

 ■統計結果の取得

 リクエストデータを送信し、統計結果を取得します。

 参照:GetMetricStatisticsResult

 参照:Datapoint

 ■統計結果の並び替え

 取得した統計結果は、残念ながら日付順に並んでいません。

 そのため、自前で日付順に並び替えたほうがその後のデータが扱いやすいかもしれません。

まとめ                                            

 SDKを利用し、AWSのサーバ状態を監視することが可能となりました。

 あとは、取得したデータを利用して、統計グラフを作成するも良し、閾値を設けて警告メールを自分宛てに送信するも良し、利用方法は色々有ると思います。

 また、SDKで利用できる機能は、これ以外にもまだまだありますので、色々試してみてください。

 

 

 

 

愛媛県松山市でWeb開発一筋15年、700サイト以上の構築実績!

Webサイト制作・システム開発・スマホアプリ開発・組込ソフトウェア開発ならアイムービックにお任せ下さい。