Timestream for InfluxDB インスタンスを作成しこれに接続する - Amazon Timestream

Amazon Timestream for LiveAnalytics に類似した機能をご希望の場合は Amazon Timestream for InfluxDB をご検討ください。リアルタイム分析に適した、シンプルなデータインジェストと 1 桁ミリ秒のクエリ応答時間を特徴としています。詳細については、こちらを参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Timestream for InfluxDB インスタンスを作成しこれに接続する

このチュートリアルでは、Amazon EC2 インスタンスと Amazon Timestream for InfluxDB の DB インスタンスを作成します。このチュートリアルでは、Telegraf クライアントを使用して EC2 インスタンスから DB インスタンスにデータを書き込む方法を紹介します。ベストプラクティスとして、このチュートリアルでは、プライベート DB インスタンスを仮想プライベートクラウド (VPC) に作成します。ほとんどの場合、EC2 インスタンスなど、同じ VPC 内の他のリソースは DB インスタンスにアクセスできますが、VPC 外部のリソースはアクセスできません。

このチュートリアルを完了すると、VPC 内の各アベイラビリティーゾーンにパブリックサブネットとプライベートサブネットが作成されます。各アベイラビリティーゾーンで、EC2 インスタンスはパブリックサブネットに、DB インスタンスはプライベートサブネットにそれぞれ配置されます。

注記

AWS アカウントの作成には料金はかかりません。ただし、このチュートリアルを完了すると、使用する AWS リソースのコストが発生する可能性があります。これらのリソースが不要になった場合は、チュートリアルの完了後に削除できます。

次の図は、アクセシビリティがパブリックである場合の構成を示したものです。

Network diagram showing VPC with public subnet, internet gateway, ENI, and Timestream-InfluxDB database.
警告

HTTP アクセスに 0.0.0.0/0 を使用することは推奨されません。そうすると、すべての IP アドレスが HTTP 経由でお使いのパブリック InfluxDB インスタンスにアクセスできるようになってしまうためです。この方法は、たとえテスト環境で短い時間であっても許容されません。ウェブ UI または API アクセス用の HTTP を使用して InfluxDB へのアクセスを許可するときは、特定の IP アドレスまたはアドレス範囲のみを許可します。

このチュートリアルでは、 AWS マネジメントコンソールを使用して InfluxDB を実行する DB インスタンスを作成します。ここでは DB インスタンスのサイズと DB インスタンス ID に焦点を当てます。他の設定オプションには、デフォルトの設定を使用します。この例で作成する DB インスタンスは、プライベートになります。

利用可能なその他の設定には、可用性、セキュリティ、ログ記録などがあります。パブリック DB インスタンスを作成するには、[接続設定] セクションで、インスタンスの設定を [パブリックアクセス可能] にする必要があります。DB インスタンスの作成方法の詳細については、「DB インスタンスの作成」を参照してください。

インスタンスがパブリックアクセス不可能な場合は、次の操作を行います。

  • トラフィックをトンネルできるインスタンスの VPC に、ホストを作成します。

  • インスタンスに SSH トンネリングを設定します。詳細については、「 を使用した Amazon EC2 インスタンスポート転送 AWS Systems Manager」を参照してください。

  • 証明書を機能させるため、クライアントマシンの /etc/hosts ファイルに行 127.0.0.1 を追加します。こちらはインスタンスの DNS アドレスです。

  • 完全修飾ドメイン名 (https://<DNS>:8086 など) を使用してインスタンスに接続します。

    注記

    Localhost は証明書 SAN の一部ではないため証明書を検証することができません。

次の図は、アクセシビリティがプライベートである場合の構成を示したものです。

Network diagram showing public and private subnets, security groups, and connections to external services.

前提条件

開始する前に、以下のセクションのステップを完了してください。

  • AWS アカウントにサインアップします。

  • 管理者ユーザーを作成します。

ステップ 1: Amazon EC2 インスタンスを作成する

データベースへの接続に使用する Amazon EC2 インスタンスを作成します。

  1. にサインイン AWS マネジメントコンソール し、https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. の右上隅で AWS マネジメントコンソール、EC2 インスタンスを作成する AWS リージョンを選択します。

  3. [EC2 ダッシュボード] を選択し、次に [インスタンスを起動] を選択します。

  4. [インスタンスを起動] ページが開いたら、次の設定を選択します。

    1. [名前とタグ][名前]ec2-database-connect と入力します。

    2. [アプリケーションと OS イメージ (Amazon マシンイメージ)][Amazon Linux] を選択し、次に [Amazon Linux 2023 AMI] を選択します。他の選択肢は、デフォルトの選択のままにします。

    3. [Instance type] (インスタンスタイプ) で [t2.micro] を選択します。

    4. [Key pair (login)] (キーペア (ログイン)) で、[Key pair name] (キーペア名) を選択して、既存のキーペアを使用します。Amazon EC2 インスタンスの新しい key pair を作成するには、[Create new key pair] (新しい key pair を作成する) を選択し、[Create key pair] (キーペアを作成する) ウィンドウを使用して作成します。キーペアの作成については、「Amazon Elastic Compute Cloud ユーザーガイド」の「Amazon EC2 インスタンスのキーペアを作成する」を参照してください。

    5. [ネットワーク設定][次の SSH トラフィックを許可] で、EC2 インスタンスに接続する SSH の接続元を選択します。表示された IP アドレスが SSH 接続に適している場合は、[My IP] (マイ IP)を選択できます。それ以外の場合は、Secure Shell (SSH) を使用して VPC の EC2 インスタンスへの接続に使用する IP アドレスを決定します。パブリック IP アドレスは、別のブラウザウィンドウまたはタブを開き、checkip.amazonaws.com/ でサービスを使うことで確認できます。IP アドレスの例は 192.0.2.1/32 です。多くの場合、インターネットサービスプロバイダー (ISP) 経由、またはファイアウォールの内側から静的 IP アドレスなしで接続することがあります。その場合、クライアントコンピュータが使用する IP アドレスの範囲を確認してください。

      警告

      SSH アクセスに 0.0.0.0/0 を使用することは推奨されていません。すべての IP アドレスがお使いのパブリック EC2 インスタンスに SSH を使用してアクセスできるようになってしまうためです。この方法は、たとえテスト環境で短い時間であっても許容されません。特定の IP アドレスまたは特定のアドレス範囲にのみ、SSH を使った EC2 インスタンスへのアクセスを承認してください。

ステップ 2: InfluxDB の DB インスタンスを作成する

Amazon Timestream for InfluxDB の基本要素となるのが DB インスタンスです。これは、InfluxDB データベースを実行する環境です。

この例では、db.influx.large DB インスタンスクラスで InfluxDB データベースエンジンを実行する DB インスタンスを作成します。

  1. にサインイン AWS マネジメントコンソール し、 で Amazon Timestream for InfluxDB コンソールを開きます。 https://console.aws.amazon.com/timestream/

  2. Amazon Timestream for InfluxDB コンソールの右上で、DB インスタンスを作成する AWS リージョンを選択します。

  3. ナビゲーションペインで、[InfluxDB データベース] を選択します。

  4. [InfluxDB データベースを作成] を選択します。

    Empty InfluxDB databases interface with option to create a new database.
  5. [デプロイ設定] セクションで [リードレプリカを持つクラスター] を選択します。[サブスクリプションのオプションを表示] を選択し、リードレプリカアドオンの購読を開始します。詳細については、「によるリードレプリカライセンス AWS Marketplace」を参照してください。

  6. [データベース認証情報] セクションで、[DB クラスター名] に KronosTest-1 と入力します。

  7. InfluxDB の基本設定パラメータとして、[初期ユーザー名][初期組織名][初期バケット名][パスワード] を入力します。

    重要

    ユーザーのパスワードを再度表示することはできません。パスワードがないと、インスタンスにアクセスしてオペレータートークンを取得することができなくなります。記録していない場合は、変更する必要がある場合があります。「InfluxDB インスタンスの新しいオペレータートークンの作成」を参照してください。

    DB インスタンスが有効になった後にユーザーのパスワードを変更する必要がある場合は、そのように DB インスタンスを変更することができます。DB インスタンスの変更の詳細については、「DB インスタンスの更新」を参照してください。

    InfluxDB database creation interface with deployment settings and credentials input fields.
  8. [インスタンス設定] セクションで、db.influx.large DB インスタンスクラスを選択します。

  9. [ストレージ設定] セクションで、[ストレージタイプ][Influx IO 込み (3K)] にします。

  10. [接続設定] セクションで、[ネットワークタイプ][IPv4] にします。InfluxDB インスタンスが、新しく作成した EC2 インスタンスと同じサブネットにあることを確認します。[パブリックアクセス][パブリックアクセス不可] を選択し、DB インスタンスをプライベートにします。

    Connectivity configuration settings for database access, including network type, VPC, subnets, and security options.
  11. [フェイルオーバー設定] セクションと [パラメータグループ設定] セクションは、デフォルト値のままにします。

  12. [ログ配信設定] でログインを設定し、タグを作成します (オプション)。ログの詳細については、Timestream InfluxDB インスタンスで InfluxDB ログを表示するための設定 を参照してください。タグの追加に関する詳細については、「リソースへのタグとラベルの追加」を参照してください。

  13. [InfluxDB データベースを作成] を選択します。

  14. [データベース] リストで、新しい InfluxDB インスタンスの名前を選択し、詳細を表示します。DB インスタンスが使用できるようになるまで、DB インスタンスのステータスは [作成中] のままです。

ステータスが [利用可能] に変わったら DB インスタンスに接続できます。DB インスタンスクラスとストレージの合計によっては、新しいインスタンスを使用できるようになるまで最長 20 分かかることがあります。

重要

現時点では、既存のインスタンスのコンピューティング (インスタンスタイプ) とストレージ (ストレージタイプ) の設定は変更できません。

ステップ 3: InfluxDB UI にアクセスする

プライベートな Timestream for InfluxDB の DB インスタンスから InfluxDB UI にアクセスするには、同じサブネットとセキュリティグループ内から接続する必要があります。この接続をスムーズに行う方法として、プライベートサブネット内での踏み台ホストの作成があります。

踏み台ホストは、重要なシステムへの安全なエントリポイントとして機能する専用サーバーであり、外部アクセスからネットワークを保護します。安全な内部ネットワークと外部との間のゲートウェイとして機能します。

注記

パブリックにアクセス可能な Timestream for InfluxDB の DB インスタンスの場合、コンソールにある同インスタンスの詳細ページの [InfluxDB UI] ボタンから InfluxDB UI にアクセスできます。このボタンは、パブリックにアクセスできないインスタンスでは無効になります。

パブリック DB インスタンスがある場合は、コンソールから InfluxDB UI に接続し、「ステップ 4: InfluxDB インスタンスに Telegraf データを送信する」に進みます。

プライベート InfluxDB データベースの詳細を示すサマリーインターフェイス。[InfluxDB UI] ボタンは無効になっています。

踏み台ホストを作成して設定するには、次の手順に従います。

  1. 踏み台ホストを作成する: 踏み台ホストを作成するには、新しい EC2 インスタンスを起動するか、既存のインスタンスを使用します。インスタンスに、アクセスしようとしているプライベート Timestream for InfluxDB インスタンスの作成に使用した、セキュリティグループへのアクセスに必要なネットワーク設定があることを確認します。

  2. InfluxDB UI に接続する: 踏み台ホストを作成したら、コンソールに表示されるエンドポイントを使用して InfluxDB UI に接続できます。エンドポイントは <db-identifier>-<*>.timestream-influxdb.<region>.on.aws の形式です。中国では、<db-identifier>-<*>.timestream-influxdb.<region>.on.amazonwebservices.com.rproxy.govskope.ca.cn になります。

  3. ローカル転送用に踏み台ホストを設定する: ローカル転送を設定するには、 AWS Systems Manager (SSM) セッションマネージャーを使用します。次のコマンドを実行し、bastion-ec2-instance-id を踏み台ホストインスタンスの ID、endpoint を上記のコンソールに表示されるエンドポイント、port-number を使用するポート番号にそれぞれ置き換えます。

    aws ssm start-session --target bastion-ec2-instance-id \ --document-name AWS-StartPortForwardingSessionToRemoteHost \ --parameters '{"host":["endpoint"], "portNumber":["port-number"], "localPortNumber":["port-number"]}'

    ここで SessionManagerPlugin のインストールを求められる場合があります。詳細については、「AWS CLI用の Session Manager プラグインをインストールする」を参照してください。

  4. InfluxDB UI にアクセスする: 上記のステップを完了したら、http://localhost:port-number で InfluxDB UI にアクセスできます。「安全ではない」というメッセージを確認する必要があります。

  5. ドメイン名の検証を有効にする: ドメイン名の検証を有効にするには、/etc/hosts ファイル (Linux)、/private/etc/hosts (Mac)、C:\Windows\System32\drivers\etc (Windows) のいずれかに次の行を追加します。

    127.0.0.1 endpoint
  6. これで https://endpoint:port-number から InfluxDB UI にアクセスできます。

ステップ 4: InfluxDB インスタンスに Telegraf データを送信する

Telegraf エージェントを使用して、テレメトリデータを InfluxDB の DB インスタンスへ送信できるようになりました。この例では、パフォーマンスメトリクスを InfluxDB の DB インスタンスに送信するように Telegraf エージェントをインストールして設定します。

  1. InfluxDB UI に接続すると、ログインプロンプトを含む新しいブラウザウィンドウが表示されます。InfluxDB の DB インスタンスの作成に使用した認証情報を入力します。

  2. 左側のナビゲーションペインで、矢印アイコンをクリックして [API Tokens] を選択します。

  3. このテストでは、[Generate API Token] を選択します。ドロップダウンリストから [All Access API Token] を選択します。

    注記

    実稼働のシナリオでは、特定の Telegraf のニーズに合わせて構築された必要なバケットに、特定のアクセス権を持つトークンを作成することが推奨されます。

    Dialog for generating an all-access API token with a warning and description field.
  4. トークンが画面に表示されます。

    重要

    トークンは再度表示されないため、必ずコピーして保存してください。

  5. Amazon Elastic Compute Cloud ユーザーガイド」の「SSH を使用した Linux インスタンスへの接続」のステップに従って、先ほど作成した EC2 インスタンスに接続します。

    SSH を使用して EC2 インスタンスに接続することをお勧めします。SSH クライアントユーティリティが Windows、Linux、または Mac にインストールされている場合は、次のコマンド形式でインスタンスに接続できます。

    ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name

    例えば、ec2-database-connect-key-pair.pem が Linux の /dir1 に保存されていて、EC2 インスタンスのパブリック IPv4 DNS が ec2-12-345-678-90.compute-1.amazonaws.com であるとします。SSH コマンドは次のようになります。

    ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
  6. インスタンスに最新バージョンの Telegraf をインストールしました。これを行うには、次のコマンドを使用します。

    cat <<EOF | sudo tee /etc/yum.repos.d/influxdata.repo [influxdata] name = InfluxData Repository - Stable baseurl = https://repos.influxdata.com/stable/\$basearch/main enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdata-archive_compat.key EOF sudo yum install telegraf
  7. Telegraf インスタンスを設定します。

    注記

    telegraf.conf が存在しないか、timestream セクションが含まれていない場合は、以下を使用してセクションを生成できます。

    telegraf —section-filter agent:inputs:outputs —input-filter cpu:mem —output-filter timestream config > telegraf.conf
    1. 通常 /etc/telegraf にある設定ファイルを編集します。

      sudo nano /etc/telegraf/telegraf.conf
    2. CPU、メモリメトリクス、ディスク使用量の入力プラグインを設定します。

      [[inputs.cpu]] percpu = true totalcpu = true collect_cpu_time = false report_active = false [[inputs.mem]] [[inputs.disk]] ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
    3. InfluxDB の DB インスタンスにデータを送信し、変更を保存するように出力プラグインを設定します。

      [[outputs.influxdb_v2]] urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"] token = "<your_telegraf_token" organization = "your_org" bucket = "your_bucket" timeout = "5s"
    4. Timestream ターゲットを設定します。

      # Configuration for sending metrics to Amazon Timestream. [[outputs.timestream]] ## Amazon Region and credentials region = "us-east-1" access_key = "<AWS key here>" secret_key = "<AWS secret key here>" database_name = "<timestream database name>" # needs to exist ## Specifies if the plugin should describe on start. describe_database_on_start = false mapping_mode = "multi-table" # allows multiple tables for each input metrics create_table_if_not_exists = true create_table_magnetic_store_retention_period_in_days = 365 create_table_memory_store_retention_period_in_hours = 24 use_multi_measure_records = true # Important to use multi-measure records measure_name_for_multi_measure_records = "telegraf_measure" max_write_go_routines = 25
  8. Telegraf サービスを有効にして開始します。

    $ sudo systemctl enable telegraf $ sudo systemctl start telegraf

ステップ 5: Amazon EC2 インスタンスと InfluxDB DB インスタンスを削除する

InfluxDB UI で InfluxDB の DB インスタンスを使用して Telegraf 生成データを調べたら、EC2 インスタンスと InfluxDB の DB インスタンスの両方を削除して、料金が発生しないようにします。

EC2 インスタンスを削除するには:‭

  1. にサインイン AWS マネジメントコンソール し、https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[インスタンス] を選択してください。

  3. EC2 インスタンスの名前の横にあるチェックボックスを選択し、[インスタンスの状態] を選択します。[インスタンスを終了 (削除)] を選択します。

  4. 確認を求めるメッセージが表示されたら、[終了 (削除)] を選択してください。

EC2 インスタンスの削除の詳細については、「Amazon Elastic Compute Cloud ユーザーガイド」の「Amazon EC2 インスタンスを終了する」を参照してください。

‬最終的な DB スナップショットを作成せずに DB インスタンスを削除するには:‭

  1. にサインイン AWS マネジメントコンソール し、 で Amazon Timestream for InfluxDB コンソールを開きます。 https://console.aws.amazon.com/timestream/

  2. ナビゲーションペインで、[InfluxDB データベース] を選択します。

  3. 削除する DB インスタンスを選択します。[Delete] (削除) をクリックします

  4. 削除を確定して [削除] を選択します。