InfluxDB 인스턴스용 Timestream 생성 및 연결 - Amazon Timestream

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

InfluxDB 인스턴스용 Timestream 생성 및 연결

이 자습서에서는 Amazon EC2 인스턴스와 Amazon Timestream for InfluxDB DB 인스턴스를 생성합니다. 자습서에서는 Telegraf 클라이언트를 사용하여 EC2 인스턴스에서 DB 인스턴스에 데이터를 쓰는 방법을 보여줍니다. 이 자습서는 가상 프라이빗 클라우드(VPC)에 프라이빗 DB 인스턴스를 생성하는 것이 가장 좋습니다. 대부분의 경우 Word EC2 인스턴스와 같은 동일한 VPC의 다른 리소스는 DB 인스턴스에 액세스할 수 있지만 VPC 외부의 리소스는 액세스할 수 없습니다.

자습서를 완료하면 VPC의 각 가용 영역에 퍼블릭 및 프라이빗 서브넷이 있습니다. 하나의 가용 영역에서 EC2 인스턴스는 퍼블릭 서브넷에 있고 DB 인스턴스는 프라이빗 서브넷에 있습니다.

참고

AWS 계정 생성에는 요금이 부과되지 않습니다. 그러나이 자습서를 완료하면 사용하는 AWS 리소스에 대한 비용이 발생할 수 있습니다. 자습서가 더 이상 필요하지 않은 경우 자습서를 완료한 후에 이러한 리소스를 삭제할 수 있습니다.

다음 다이어그램은 접근성이 공개된 구성을 보여줍니다.

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

모든 IP 주소가 HTTP를 통해 퍼블릭 InfluxDB 인스턴스에 액세스할 수 있도록 하기 때문에 HTTP 액세스에 0.0.0.0/0을 사용하지 않는 것이 좋습니다. 이 접근 방식은 테스트 환경에서 단기간 동안도 허용되지 않습니다. Word is for WebUI 또는 HTTP 액세스를 사용하여 InfluxDB 인스턴스에 액세스할 수 있도록 특정 IP 주소 또는 주소 범위만 승인합니다API.

이 자습서에서는를 사용하여 InfluxDB를 실행하는 DB 인스턴스를 생성합니다 AWS Management Console. DB 인스턴스 크기와 DB 인스턴스 식별자에만 초점을 맞출 것입니다. 다른 구성 옵션에 기본 설정을 사용합니다. 이 예제에서 생성한 DB 인스턴스는 프라이빗입니다.

구성할 수 있는 다른 설정에는 가용성, 보안 및 로깅이 포함됩니다. 퍼블릭 DB 인스턴스를 생성하려면 연결 구성 섹션에서 인스턴스를 “공개 액세스 가능”으로 설정해야 합니다. DB 인스턴스 생성에 대한 자세한 내용은 섹션을 참조DB 인스턴스 생성하세요.

인스턴스에 공개적으로 액세스할 수 없는 경우 다음을 수행합니다.

  • 트래픽을 터널링할 수 있는 인스턴스의 VPC에 호스트를 생성합니다.

  • 인스턴스에 대한 ssh 터널링을 설정합니다. 자세한 내용은 AWS Systems Manager를 사용한 Amazon EC2 인스턴스 포트 전달을 참조하세요.

  • 인증서가 작동하려면 클라이언트 시스템의 /etc/hosts 파일에 다음 줄을 추가합니다127.0.0.1. 인스턴스의 DNS 주소입니다.

  • https://<DNS>:8086과 같은 정규화된 도메인 이름을 사용하여 인스턴스에 연결합니다.

    참고

    localhost는 인증서 SAN의 일부가 아니므로 Localhost가 인증서를 검증할 수 없습니다.

다음 다이어그램은 액세스가 비공개인 경우의 구성을 보여줍니다.

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

사전 조건

시작하기 전에 다음 섹션에서 다음 단계를 완료하세요.

  • AWS 계정에 가입합니다.

  • 관리 사용자를 생성합니다.

1단계: Amazon EC2 인스턴스 생성

데이터베이스에 연결하는 데 사용할 Amazon EC2 인스턴스를 생성합니다.

  1. 에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 의 오른쪽 상단에서 EC2 인스턴스를 생성할 AWS 리전을 AWS Management Console선택합니다.

  3. EC2 Dashboard를 선택한 다음 인스턴스 시작을 선택합니다.

  4. 인스턴스 시작 페이지가 열리면 인스턴스 시작 페이지에서 다음 설정을 선택합니다.

    1. 이름 및 태그의 이름에 ec2-database-connect를 입력합니다.

    2. 애플리케이션 및 OS 이미지(Amazon Machine Image)에서 Amazon Linux를 선택한 다음 Amazon Linux 2023 AMI를 선택합니다. 다른 선택 항목에 대해서는 기본값을 그대로 유지합니다.

    3. 인스턴스 유형에서 t2.micro를 선택합니다.

    4. 키 페어(로그인)에서 기존 키 페어를 사용할 키 페어 이름을 선택합니다. Amazon EC2 인스턴스에 대한 새 키 페어를 생성하려면 새 키 페어 생성을 선택한 다음 키 페어 생성 창을 사용하여 생성합니다. 새 키 페어 생성에 대한 자세한 내용은 Linux 인스턴스용 Amazon Word 사용 설명서의 키 페어 생성을 참조하세요. EC2

    5. 네트워크 설정에서 SSH 트래픽 허용에서 SSH 인스턴스에 대한 EC2 연결 소스를 선택합니다. 표시된 IP 주소가 SSH 연결에 올바른 경우 내 IP를 선택할 수 있습니다. 그렇지 않으면 Secure Shell(SSH)을 사용하여 EC2의 VPC 인스턴스에 연결하는 데 사용할 IP 주소를 결정할 수 있습니다. 퍼블릭 IP 주소를 확인하려면 다른 브라우저 창 또는 탭에서 at https://checkip.amazonaws.com 서비스를 사용할 수 있습니다. IP 주소의 예는 192.0.2.1/32입니다. 많은 경우 인터넷 서비스 공급자(ISP)를 통해 연결하거나 정적 IP 주소 없이 방화벽 뒤에서 연결할 수 있습니다. 그렇다면 클라이언트 컴퓨터에서 사용하는 IP 주소 범위를 결정합니다.

      주의

      모든 IP 주소가 SSH를 사용하여 퍼블릭 EC2 인스턴스에 액세스할 수 있도록 하기 때문에 SSH 액세스에 0.0.0.0/0을 사용하지 않는 것이 좋습니다. 이 접근 방식은 테스트 환경에서 단기간 동안만 허용되지 않으며, SSH를 사용하여 EC2 인스턴스에 액세스할 수 있는 특정 IP 주소 또는 주소 범위만 승인합니다.

2단계: InfluxDB DB 인스턴스 생성

Amazon Timestream for InfluxDB의 기본 구성 요소는 DB 인스턴스입니다. 이 환경에서는 InfluxDB 데이터베이스를 실행합니다.

이 예제에서는 db.influx.large DB 인스턴스 클래스로 InfluxDB 데이터베이스 엔진을 실행하는 DB 인스턴스를 생성합니다.

  1. 에 로그인 AWS Management Console 하고 Word에서 Amazon Timestream for InfluxDB 콘솔을 엽니다. https://console.aws.amazon.com/timestream/

  2. Amazon Timestream for InfluxDB 콘솔의 오른쪽 상단에서 DB 인스턴스를 생성할 AWS 리전을 선택합니다.

  3. 탐색 창에서 InfluxDB 데이터베이스를 선택합니다.

  4. Influx 데이터베이스 생성을 선택합니다.

    Empty InfluxDB databases list with option to create a new database.
  5. DB 인스턴스 식별자에 KronosTest-1을 입력합니다.

  6. InfluxDB 기본 구성 파라미터인 사용자 이름, 조직, 버킷 이름 암호를 입력합니다.

    중요

    사용자 암호를 다시 볼 수 없습니다. 암호 없이는 인스턴스에 액세스하고 운영자 토큰을 가져올 수 없습니다. 따라서 기록을 해두지 않으면 이를 변경해야 합니다. InfluxDB 인스턴스에 대한 새 운영자 토큰 생성을 참조하세요.

    DB 인스턴스를 사용할 수 있게 된 후 사용자 암호를 변경해야 하는 경우 DB 인스턴스를 수정하여 변경할 수 있습니다. DB 인스턴스 수정에 대한 자세한 내용은 DB 인스턴스 업데이트 단원을 참조하세요.

    Form for creating an Influx database with fields for credentials and instance settings.
  7. DB 인스턴스 클래스에서 db.influx.large를 선택합니다.

  8. DB 스토리지 클래스에서 유입 IOPS 포함 3K를 선택합니다.

  9. 로그를 구성합니다. 자세한 내용은 Timestream Influxdb 인스턴스에서 InfluxDB 로그를 볼 수 있도록 설정 단원을 참조하십시오.

  10. 연결 구성 섹션에서 InfluxDB 인스턴스가 새로 생성된 EC2 인스턴스와 동일한 서브넷에 있는지 확인합니다.

    Connectivity configuration interface showing VPC, subnet, security group, and public access options.
  11. Influx 데이터베이스 생성을 선택합니다.

  12. 데이터베이스 목록에서 새 InfluxDB 인스턴스의 이름을 선택하여 세부 정보를 표시합니다. DB 인스턴스는 사용할 준비가 될 때까지 생성 상태가 됩니다.

상태가 사용 가능으로 변경될 때 DB 인스턴스에 연결할 수 있습니다. DB 인스턴스 클래스와 스토리지의 양에 따라 새 인스턴스를 사용할 수 있을 때까지 최대 20분이 걸릴 수 있습니다.

중요

현재 기존 인스턴스의 컴퓨팅(인스턴스 유형) 및 스토리지(스토리지 유형) 구성은 수정할 수 없습니다.

3단계: Telegraf 데이터를 InfluxDB 인스턴스로 전송

이제 Telegraf 에이전트를 사용하여 InfluxDB DB 인스턴스로 원격 측정 데이터 전송을 시작할 수 있습니다. 이 예제에서는 InfluxDB DB 인스턴스에 성능 지표를 보내도록 Telegraf 에이전트를 설치하고 구성합니다.

  1. DB 인스턴스의 엔드포인트(DNS 이름) 및 포트 번호를 찾습니다.

    1. AWS 관리 콘솔에 로그인하고 https://console.aws.amazon.com/timestream/에서 Amazon Timestream 콘솔을 엽니다.

    2. Amazon Timestream 콘솔의 오른쪽 상단에서 DB 인스턴스의 AWS 리전을 선택합니다.

    3. 탐색 창에서 InfluxDB 데이터베이스를 선택합니다.

    4. InfluxDB DB 인스턴스 이름을 선택하여 세부 정보를 표시합니다.

    5. 요약 섹션에서 엔드포인트를 복사합니다. 또한 포트 번호를 적어 둡니다. DB 인스턴스에 연결하려면 엔드포인트와 포트 번호가 모두 필요합니다(InfluxDB의 기본 포트 번호는 8086).

  2. 그런 다음 InfluxDB UI를 선택합니다.

    InfluxDB database summary showing instance details, status, and endpoint information.
  3. 그러면 로그인 프롬프트가 표시되는 새 브라우저 창이 열립니다. 이전에 InfluxDB Db 인스턴스를 생성하는 데 사용한 자격 증명을 입력합니다.

  4. 탐색 창에서 화살표를 클릭하고 API 토큰을 선택합니다.

  5. 이 테스트를 위해 모든 액세스 토큰을 생성합니다.

    참고

    프로덕션 시나리오의 경우 특정 Telegraf 요구 사항에 맞게 구축된 필수 버킷에 대한 특정 액세스 권한이 있는 토큰을 생성하는 것이 좋습니다.

    Dialog for generating an all-access API token with a warning and description field.
  6. 토큰이 화면에 나타납니다.

    중요

    토큰을 다시 표시할 수 없으므로 토큰을 복사하고 저장해야 합니다.

  7. Linux 인스턴스용 Amazon EC2 사용 설명서의에서 Linux 인스턴스에 연결의 단계에 따라 이전에 생성한 Word 인스턴스에 연결합니다. EC2

    EC2를 사용하여 SSH 인스턴스에 연결하는 것이 좋습니다. 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에 저장되어 있고 DNS IPv4 인스턴스의 퍼블릭 EC2가 라고 가정합니다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
  8. 인스턴스에 최신 버전의 텔레그래프를 설치합니다. 이렇게 하려면 다음 명령을 사용합니다.

    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
  9. 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, MEM 및 DISK에 대한 기본 입력을 구성합니다.

      [[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 t start. describe_database_on_start = false mapping_mode = "multi-table" # allows multible 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
  10. Telegraf 서비스를 활성화하고 시작합니다.

    $ sudo systemctl enable telegraf $ sudo systemctl start telegraf

4단계: Amazon EC2 인스턴스 및 InfluxDB DB 인스턴스 삭제

InfluxUI와 함께 InfluxDB DB 인스턴스를 사용하여 Telegraf에서 생성한 데이터를 탐색한 후 더 이상 요금이 부과되지 않도록 EC2 및 InfluxDB DB 인스턴스를 모두 삭제합니다. InfluxUI

EC2 인스턴스를 삭제하려면:

  1. 에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Instances(인스턴스)를 선택합니다.

  3. EC2 인스턴스를 선택하고 인스턴스 상태를 선택한 다음 인스턴스 종료를 선택합니다.

  4. 확인 메시지가 나타나면 종료를 선택합니다.

EC2 인스턴스 삭제에 대한 자세한 내용은 Amazon EC2 사용 설명서의 인스턴스 종료를 참조하세요.

최종 DB 스냅샷 없이 DB 인스턴스를 삭제하려면:

  1. 에 로그인 AWS Management Console 하고 Word에서 Amazon Timestream for InfluxDB 콘솔을 엽니다. https://console.aws.amazon.com/timestream/

  2. 탐색 창에서 InfluxDB 데이터베이스를 선택합니다.

  3. 삭제할 DB 인스턴스를 선택합니다.

  4. [ Actions]에 대해 [Delete]를 선택합니다.

  5. 확인을 완료하고 삭제를 선택합니다.

(선택 사항) Amazon Managed Grafana를 사용하여 DB 인스턴스에 연결

Amazon Managed Grafana를 사용하여 대시보드를 생성하고 Amazon Timestream for InfluxDB를 사용하여 EC2 인스턴스의 성능을 모니터링할 수 있습니다. Amazon Managed Grafana는 지표, 로그 및 트레이스를 쿼리, 시각화 및 알릴 수 있는 인기 있는 오픈 소스 분석 플랫폼인 Grafana를 위한 완전 관리형 서비스입니다.