IoT で使用する Amazon CloudWatch - その3
前回( IoT で使用する Amazon CloudWatch - その2 )の続きです。
前回は「Amazon CloudWatch」と「カスタムメトリクス」の概要について解説しました。
今回から、実際に Amazon CloudWatch カスタムメトリクスにデータを登録する方法について書いていきます。
Amazon Web Services のAPIとSDK
Amazon Web Services (AWS) のサービスはすべてAPIでアクセスすることができます。
例えば、Amazon CloudWatch のカスタムメトリクスにデータを登録するには、Amazon CloudWatch API の PutMetricData というアクションを使用します。
APIのリファレンスを見てみましょう。
PutMetricData - Amazon CloudWatch
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html
HTTPでこのAPIを呼び出すことでカスタムメトリクスにデータを登録することができるのですが、データの送信先や呼び出し元のユーザーを指定するためにリクエストには署名をつける必要があります。
実際にカスタムメトリクスにデータを登録する際には、何らかのプログラムを使用して登録することになると思います。
いろいろなプログラミング言語や実行環境でAWSのAPIが利用できるように、あらかじめSDKや開発に使用できるライブラリなどが用意されています。
2018年7月現在、以下のようなSDKやライブラリが利用可能です。
AWS SDK
- AWS SDK for Java
- AWS SDK for .NET
- AWS SDK for JavaScript in the Browser
- AWS SDK for JavaScript in Node.js
- AWS SDK for PHP
- AWS SDK for Python (Boto3)
- AWS SDK for Ruby
- AWS SDK for C++
- AWS SDK for Go
AWS Mobile SDK
- AWS SDK for iOS
- AWS SDK for Android
- AWS Mobile SDK for Unity
- AWS Mobile SDK for .NET and Xamarin
ライブラリ
- AWS Amplify(JavaScript Library)
- AWS Amplify Library for Web
- AWS Amplify Library for React Native
コマンドラインツール
- AWS Command Line Interface (CLI)
- AWS Tools for PowerShell
このように、様々なプログラミング言語に合わせてSDKが用意されていますので、ここにある言語でAWSのサービスを利用する場合はSDKを使用するのが簡単です。
また、コマンドラインツールもあるので、シェルスクリプトなどからAWSサービスを利用することもできます。
Amazon Web Services を利用するための事前準備
AWSのAPIを利用するには、AWSのアカウントとアクセスキーが必要になります。
Amazon CloudWatch のカスタムメトリクスにデータを登録する事前準備として、以下の方法でアクセスキーを作成しておきましょう。
AWSアカウントの取得
Amazon CloudWatch を使用するためには、AWSのアカウントが必要になります。
下記のページを参考にアカウントを取得してください。
AWS アカウント作成の流れ | AWS
https://aws.amazon.com/jp/register-flow/
アクセスキーの作成
外部からAWSのサービスにアクセスするためにアクセスキーが必要になります。
下記のページを参考にアクセスキーを作成してください。
アクセスキーについて - リソース | AWS
https://aws.amazon.com/jp/developers/access-keys/
作成したアクセスキーで Amazon CloudWatch を利用するためには、1つ追加の設定が必要になります。
先ほどのページの手順4に以下の操作が記載されています。
4. [Select Policy Template] セクションで、Amazon S3 Full Access を検索し、[Select] をクリックします。
ここで指定するポリシーテンプレートには「 CloudWatchFullAccess 」を指定して下さい。
作業のふりかえり
これでAWSのAPIを利用するために必要な、AWSのアカウントとアクセスキーの準備ができました。
ここで作成したアクセスキーは「 Amazon CloudWatch だけを使用できるユーザー 」としてAWSサービスを利用できるものです。
権限を制限していますので Amazon CloudWatch 以外のAWSサービスを使用することはできません。
まとめ
今回は Amazon CloudWatch を利用するためのSDKや開発ツールの紹介と、事前準備として、アクセスキーの作成方法についてまとめてみました。
実際にIoTデバイスから Amazon CloudWatch を使用する具体例として、 Raspberry Pi から AWS SDK を利用してカスタムメトリクスにデータを登録する方法を説明します。