Amazon Web Services 한국 블로그

Amazon Timestream 기반 오픈 소스 InfluxDB 데이터베이스 실행 및 관리 기능 추가

오픈 소스기반 시계열 데이터베이스인 InfluxDBAmazon Timestream에서 데이터베이스 엔진으로 사용할 수 있습니다. 이 지원을 사용하면 시계열 관측을 수집하는 오픈 소스 Telegraf 에이전트 같은 오픈 소스 API와 InfluxDB를 사용해 준 실시간 시계열 애플리케이션을 쉽게 실행할 수 있습니다.

이제 Timestream에서 Timestream for LiveAnalytics와 Timestream for InfluxDB라는 두 가지 데이터베이스 엔진을 선택할 수 있습니다.

사용 사례에서 준 실시간 시계열 쿼리 또는 InfluxDB의 구체적인 기능(예: Flux 쿼리 사용)을 요구하는 경우 Timestream for InfluxDB 엔진을 사용해야 합니다. 또 다른 옵션은 기존 Timestream for LiveAnalytics 엔진으로, 분당 수십 기가바이트가 넘는 시계열 데이터를 수집하며 수 페타바이트의 시계열 데이터에 대한 SQL 쿼리를 몇 초 안에 실행해야 하는 경우에 적합합니다.

Timestream에서 InfluxDB가 지원되면, 최적의 성능과 가용성을 제공하도록 자동으로 구성된 관리형 인스턴스를 사용할 수 있습니다. 또한 InfluxDB 데이터베이스에 대한 다중 가용 영역 지원을 구성하여 복원력을 높일 수 있습니다.

Timestream for InfluxDB와 Timestream for LiveAnalytics는 서로를 보완하여 시계열 데이터의 짧은 지연 시간과 대규모 수집을 구현합니다.

Timestream for InfluxDB 시작하기
시작하는 방법을 보여드리겠습니다.

먼저 InfluxDB 인스턴스를 만듭니다. Timestream 콘솔로 이동한 다음, Timestream for InfluxDB에서 InfluxDB databases(InfluxDB 데이터베이스)로 이동하고 Create Influx database(데이터베이스 생성)를 선택합니다.

다음 페이지에서는 InfluxDB 인스턴스의 database credentials(데이터베이스 자격 증명)을 지정합니다.

또한 Instance configuration(인스턴스 구성)에서 인스턴스 클래스를 지정하고 필요에 맞게 스토리지 유형과 볼륨을 지정합니다.

다음 부분에서는 데이터를 다른 가용 영역의 대기 데이터베이스 또는 InfluxDB의 단일 인스턴스에 동기적으로 복제하는 다중 AZ 배포를 선택할 수 있습니다. 다중 AZ 배포에서는 장애가 감지되는 경우, Timestream for InfluxDB는 데이터 손실 없이 자동으로 대기 인스턴스로 장애 조치됩니다.

그런 다음 Connectivity configuration(연결 구성)에서 InfluxDB 인스턴스에 연결하는 방법을 구성합니다. 여기서는 네트워크 유형, Virtual Private Cloud(VPC), 서브넷, 데이터베이스 포트를 유연하게 정의할 수 있습니다. 또한 공용 서브넷을 지정하여 InfluxDB 인스턴스를 공개적으로 액세스할 수 있도록 구성하고 public access(퍼블릭 액세스)를 Publicly Accessible(퍼블릭 액세스 가능)로 설정하여, Amazon Timestream이 공개 IP 주소를 내 InfluxDB 인스턴스에 할당할 수 있게 합니다. 이 옵션을 선택하는 경우 InfluxDB 인스턴스를 보호하기 위한 적절한 보안 조치가 적용되었는지 확인하세요.

이 데모에서는 InfluxDB 인스턴스를 Not publicly accessible(퍼블릭 액세스 불가)로 설정하며, 따라서 이 섹션에서 제가 정의한 VPC와 서브넷을 통해서만 인스턴스에 액세스할 수 있습니다.

데이터베이스 연결을 구성하면 데이터베이스 파라미터 그룹과 로그 전송 설정을 정의할 수 있습니다. Parameter group(파라미터 그룹)에서는 InfluxDB 데이터베이스에 사용할 구체적으로 구성 가능한 파라미터를 정의할 수 있습니다. 또한 log delivery settings(로그 전송 설정)에서는 시스템 로그를 내보내야 하는 Amazon Simple Storage Service(S3) 버킷을 구성할 수 있습니다. Amazon S3 버킷에 필요한 AWS Identity and Access Management(IAM) 정책에 대해 자세히 알아보려면 이 페이지를 참조하세요.

구성이 만족스러우면 Create Influx database(Influx 데이터베이스 생성)를 선택합니다.

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 클라이언트 라이브러리 같은 다양한 도구를 이용해 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의 파트너십
InfluxData의 설립자이자 최고 기술 책임자인 Paul Dix는 이번 출시를 축하하면서 두 회사의 파트너십에 대해 이렇게 말합니다.

“오픈 소스의 미래는 간단한 진입점과 실용적인 사용자 경험을 통해 가장 광범위한 커뮤니티에 도달할 수 있는 퍼블릭 클라우드로 구현되고 있습니다. Amazon Timestream for InfluxDB는 바로 이러한 비전을 실현합니다. AWS와의 파트너십 덕분에 InfluxDB 오픈 소스는 시계열 데이터에 대한 실시간 인사이트를 제공하며 힘을 배가했고, 그 결과 개발자들은 AWS에서 시계열 워크로드를 그 어느 때보다 쉽게 빌드하고 확장할 수 있게 되었습니다.”

알아야 할 사항
사용자가 알아야 하는 몇 가지 추가 정보는 다음과 같습니다.

가용성 – Timestream for InfluxDB는 현재 미국 동부(오하이오, 버지니아 북부), 미국 서부(오레곤), 아시아 태평양(뭄바이, 싱가포르, 시드니, 도쿄), 유럽(프랑크푸르트, 아일랜드, 스톡홀름) AWS 리전에서 일반적으로 사용할 수 있습니다.

마이그레이션 시나리오 – 자체 관리형 InfluxDB 인스턴스에서 마이그레이션하려면 기존 InfluxDB 데이터베이스의 백업을 Timestream for InfluxDB로 복원하기만 하면 됩니다. 기존 Timestream LiveAnalytics 엔진에서 Timestream for InfluxDB로 마이그레이션해야 하는 경우 Amazon S3를 활용할 수 있습니다. 자체 관리형 InfluxDB에서 Timestream for InfluxDB로 데이터 마이그레이션 페이지에서 다양한 사용 사례에서의 마이그레이션 방법에 대해 자세히 알아보세요.

지원되는 버전 – Timestream for InfluxDB는 현재 InfluxDB의 오픈 소스 2.7.5 버전을 지원합니다.

요금 – 요금에 대해 자세히 알아보려면 Amazon Timestream 요금을 참조하세요.

데모 – Timestream for InfluxDB가 실제로 작동하는 모습을 보려면 제 동료인 Derek이 만든 이 데모를 확인하세요.

Timestream for InfluxDB를 사용하여 밀리초 단위 응답 시간으로 시계열 애플리케이션 및 대시보드 빌드를 시작하세요. 자세한 내용은 Amazon Timestream for InfluxDB 페이지를 참조하세요.

즐겁게 빌드해 보세요!
Donnie