Amazon Managed Grafana(以降 AMG) から Amazon Timestream(以降 Timestream) 内のデータを可視化してみました。
やってみる
Timestream の作成
まず、データソースとして Timestream を作成します。
最初からデータが入ってる状態で作成可能な「サンプルデータベース」を選択しました。
AMG のセットアップ
ワークスペース名を指定して、AMG のワークスペースを作成します。
認証アクセスとして、「IAM Identity Center」を選択します。
後々 Timestream 用のプラグインを追加する必要があるので、プラグイン管理をオンにしておきます。
AMG に Timestream からデータを読み取るための権限を付与します。
ワークスペースの作成が完了したら、「新しいユーザーまたはグループを割り当て」をクリックします。
ユーザーを選択して、権限を割り当てます。
割り当てたユーザーの権限を管理者に変更します。
権限を割り当てたユーザーで IAM Identity Center のアクセスポータルにログインすると、AMG へのログイン画面が追加されるのでクリックします。
Grafana の画面を確認したら、Apps > AWS Data Sources
をクリックします。
プラグインをインストールしないと Timestream からデータを読み込めないようなので、Install now
をクリックします。
Timestream 用プラグインをインストールするためのページへ遷移するので、インストールボタンをクリックします。
改めて、Apps > AWS Data Sources
にアクセスすると、Timestream を選択可能になっているのでクリックします。
Add data source
をクリックします。
追加設定を行う場合は go to settings
をクリックします。
Database、 Table、 Measure の Default 値や Endpoint、 Assume Role ARN を選択可能です。
今回は同じアカウントの Timestream をデータソースに指定するため、特に設定しないで進みます。
続いて、 Dashboards を作成します。
無事メトリクスを確認できました。
確認に利用したクエリは下記です。
SELECT measure_name, measure_value::double AS cpu, time FROM "myDatabase".DevOps WHERE measure_name = 'cpu_utilization' AND time > ago(2h) ORDER BY time
IAM Identity Center を利用できない場合は?
現状、Amazon Managed Grafana を利用する際、何かしらの IdP が必要です。
他に IdP があればそちらを利用しても良いですし、特に無ければ IAM Identity Center 環境で利用するのが一番楽かと思います。
ただ、 2024 年 3 月時点では IAM Identity Center アカウントインスタンスに対応していないため、 Organizations 環境でないと IAM Identity Center を AMG へのログインに利用できません。
何らかの理由で Organizations を利用できない場合は、 EC2 上等に Grafana をインストールして利用する手段が取れます。
少し連携が面倒になること、AWS マネジメントコンソールへの SSO と同じように AMG にログインすることはできなくなること、ホストするインフラを管理する必要があるといった辺りがデメリットになります。
とはいえ、AMG はエディタライセンスが 9USD/月、ビューワーライセンスが 5USD/月 となっているので、 EC2 上に立てた方が大きくコストを抑えられるケースもあると思います。(サーバーの運用コストが無くなるので、単純に比較できるものでは無いですが...)
最後に
AMG と TimeStream の連携を行ってみますたが、IAM ロールでの権限付与や Timestream のエンドポイントなどを意識せずに設定できました。
どちらも AWS マネージドサービスということもあり、相性の良さを強く感じました。
とはいえ、このために Organizaztions を有効化するのも大掛かりに感じてしまいます。
IAM Identity Center のアカウントインスタンスを利用して AMG が利用できるようになることにも期待ですね!