Amazon Web Services ブログ

Amazon Timestream を使ったオープンソースの InfluxDB データベースの実行と管理

InfluxDBAmazon Timestream のデータベース エンジンとして使用できるようになりました。本サポートにより、InfluxDB や、時系列データを収集するオープンソース Telegraf エージェント等のオープンソース API を使用して、ほぼリアルタイムの時系列アプリケーションを簡単に実行できるようになります。

Timestream では、Timestream for LiveAnalytics と Timestream for InfluxDB の 2 つのデータベースエンジンを選択できるようになりました。

ほぼリアルタイムの時系列クエリまたは InfluxDB の特定の機能 (Flux クエリ等) が必要なユースケースの場合は、InfluxDB エンジンの Timestream を使用する必要があります。

もう 1 つのオプションは、LiveAnalytics エンジンの既存の Timestream です。これは、1 分あたり数十ギガバイトを超える時系列データを取り込み、ペタバイトの時系列データに対して SQL クエリを数秒で実行するような場合に適しています。

Timestream の InfluxDB サポートにより、最適なパフォーマンスと可用性が得られるように自動的に構成されたマネージドインスタンスを使用できます。また、InfluxDB データベースのマルチアベイラビリティゾーン構成を取る事で、復元力を高めることができます。

InfluxDB の Timestream と LiveAnalytics の Timestream は相互に補完し、時系列データの低レイテンシおよび大規模な取り込みを実現します。

Timestream for InfluxDB を開始

早速始めてみましょう。

まず、InfluxDB インスタンスを作成しましょう。 Amazon Timestream コンソールを開き、InfluxDB databases に移動して、Create Influx database を選択します。

次のページで、InfluxDB インスタンスの database credentials を指定します。

また、Instance configuration でインスタンスクラスを指定し、ニーズに合わせてストレージのタイプとボリュームも指定します。

次のパートでは、マルチ AZ デプロイメントを選択可能です。この設定により、別のアベイラビリティーゾーンにあるスタンバイデータベースにデータが同期的にレプリケートされます。もしも、障害が検出された場合、Timestream for InfluxDB はデータを失うことなくスタンバイインスタンスに自動的にフェイルオーバーします。

次に、Connectivity configuration で InfluxDB インスタンスに接続する方法を構成します。ここでは、ネットワークタイプ、VPC、サブネット、データベースポートを定義します。また、パブリックサブネットを指定し、 InfluxDB インスタンスの public accessPublicly Accessible と設定する事も可能で、Amazon Timestream がパブリック IP アドレスを InfluxDB インスタンスに割り当てることができます。もしも、このオプションを選択する場合は、InfluxDB インスタンスを保護するための適切なセキュリティ対策が講じられていることを確認してください。

このデモでは、InfluxDB インスタンスを Not publicly accessible に設定した為、このセクションで定義した VPC とサブネットを介してのみアクセス可能となります。

データベース接続を構成したら、データベースのパラメーターグループとログ配信設定を定義します。 Parameter group では、InfluxDB データベースに使用する特定の構成可能なパラメーターを定義できます。log delivery settings では、システムログをエクスポートする Amazon Simple Storage Service (Amazon S3) バケットを定義することもできます。 Amazon S3 バケットに必要な AWS Identity and Access Management (IAM) ポリシーの詳細についてはこちらを参照してください。

設定が完了したら、Create Influx database を選択します。

InfluxDB インスタンスが作成されると、詳細ページで内容を確認できます。

InfluxDB インスタンスを作成すると、InfluxDB ユーザー インターフェイス (UI) にアクセス可能です。 InfluxDB をパブリックにアクセスできるように構成すると、InfluxDB UI を選択してコンソールを使用して UI にアクセスできます。セットアップに示されているように、今回は InfluxDB インスタンスをパブリックにアクセスできないように構成しました。この場合、InfluxDB インスタンスと同じ VPC 内の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを介して SSH トンネリングを使用して InfluxDB UI にアクセスする必要があります。

詳細ページの URL エンドポイントを使用して、InfluxDB UI に移動し、作成時に設定したユーザー名とパスワードを使用します。

InfluxDB UI で、InfluxDB インスタンスと対話するためのトークンを作成できるようになりました。

Influx CLI を使用してトークンを作成することもできます。トークンを作成する前に、InfluxDB インスタンスと対話するための設定を行います。以下は、設定するサンプルコマンドです。

influx config create --config-name demo  \
    --host-url https://<TIMESTREAM for INFLUX DB ENDPOINT> \
   --org demo-org  
   --username-password [USERNAME] \
   --active

InfluxDB の設定後、オペレーター、オールアクセス、または読み取り/書き込みトークンを作成できるようになりました。以下は、定義した組織内のすべてのリソースにアクセス許可を付与するためのトークンを作成する例です。

influx auth create --org demo-org --all-access

対象のユースケースで必要なトークンがあれば、Influx CLI、Telegraf エージェント、InfluxDB クライアントライブラリ等のツールを使ってデータ取り込みを開始出来ます。ここでは Influx CLI を使ってサンプルのホームセンサーデータをラインプロトコル形式で書き込みます。これは、InfluxDB ドキュメントページからも参照出来ます。

influx write \
  --bucket demo-bucket \
  --precision s "
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1641045600
home,room=Kitchen temp=22.8,hum=36.3,co=1i 1641045600
home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1641049200
home,room=Kitchen temp=22.7,hum=36.2,co=3i 1641049200
home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1641052800
home,room=Kitchen temp=22.4,hum=36.0,co=7i 1641052800
home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1641056400
home,room=Kitchen temp=22.7,hum=36.0,co=9i 1641056400
home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1641060000
home,room=Kitchen temp=23.3,hum=36.9,co=18i 1641060000
home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1641063600
home,room=Kitchen temp=23.1,hum=36.6,co=22i 1641063600
home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1641067200
home,room=Kitchen temp=22.7,hum=36.5,co=26i 1641067200
"

最後に、InfluxDB UI を使用してデータをクエリしてみましょう。 InfluxDB UI の Data Explorer ページに移動し、簡単な Flux スクリプトを作成して、Submit を選択します。

Timestream for InfluxDB を使用すると、既存のツールを引き続き使用してデータベースと対話しながら、InfluxDB を利用したアプリケーションの開発が容易になります。マルチ AZ 構成を利用すると、基盤となるインフラストラクチャを気にすることなく、InfluxDB データの可用性を高めることが可能です。

AWS と InfluxDB のパートナーシップ

Amazon Timestream for InfluxDB の一般提供開始を祝って、InfluxData の創設者兼最高技術責任者である Paul Dix がこのパートナーシップについて次のように述べています。

“オープンソースの未来はパブリッククラウドによって推進され、シンプルなエントリポイントと実用的なユーザーエクスペリエンスを通じて広範なコミュニティに浸透しています。Amazon Timestream for InfluxDB はそのビジョンを具現化したものです。AWS とのパートナーシップにより、InfluxDB が時系列データに関するリアルタイムの洞察を実現する力を倍増するツールとなり、開発者が AWS 上で時系列ワークロードを構築および拡張が簡単に実現出来ます。”

知っておくべき事

その他の追加情報を以下に示します。

利用可能な AWS リージョン – オハイオ、バージニア北部、オレゴン、ムンバイ、シンガポール、シドニー、東京、フランクフルト、アイルランド、ストックホルムリージョンで利用できます

移行シナリオ – 自身で運用されている InfluxDB インスタンスから移行するには、既存の InfluxDB データベースから Timestream for InfluxDB にバックアップを復元するだけです。既存の Timestream LiveAnalytics エンジンから InfluxDB 用の Timestream に移行する必要がある場合は、Amazon S3 を利用できます。さまざまなユースケースにおいて移行を実施する方法の詳細については、「Migrating data from self-managed InfluxDB to Timestream for InfluxDB」ページを参照してください。

サポート対象バージョン – Timestream for InfluxDB は現在、InfluxDB のオープンソース 2.7.5 バージョンをサポートしています。

利用料 – 料金の詳細については、Amazon Timestream pricing をご覧ください。

デモ – Timestream for InfluxDB の動作を確認するには、同僚の Derek が作成したこのデモをご覧ください。

Timestream for InfluxDB を使用して、ミリ秒の応答時間を持つ時系列アプリケーションとダッシュボードの構築をします。詳細については、Amazon Timestream for InfluxDB ページをご覧ください。

翻訳はテクニカルアカウントマネージャーの西原が担当しました。原文はこちらをご覧下さい。