Airbyte는 다양한 소스에서 다양한 대상으로 정보를 자동화되고 확장 가능한 방식으로 이동할 수 있는 데이터 통합 도구입니다. API, 데이터베이스 및 기타 시스템에서 데이터를 추출하여 고급 검색과 효율적인 분석을 제공하는 Elasticsearch와 같은 플랫폼으로 로드할 수 있습니다.
이 문서에서는 주요 개념, 전제 조건 및 단계별 통합을 다루면서 Elasticsearch로 데이터를 수집하도록 Airbyte를 구성하는 방법에 대해 설명합니다.

에어바이트 기본 개념
에어바이트에는 몇 가지 필수 개념이 있습니다. 아래에서는 주요 내용을 강조합니다:
- 소스: 추출할 데이터의 출처를 정의합니다.
- 대상: 대상: 데이터를 전송하고 저장할 위치를 정의합니다.
- 연결: 동기화 빈도를 포함하여 소스와 대상 간의 관계를 구성합니다.
Airbyte와 Elasticsearch 통합
이 데모에서는 S3 버킷에 저장된 데이터를 Elasticsearch 인덱스로 마이그레이션하는 통합을 수행합니다. Airbyte에서 소스(S3)와 대상(Elasticsearch)을 구성하는 방법을 보여드리겠습니다.
필수 구성 요소
이 데모를 따라하려면 다음 전제 조건을 충족해야 합니다:
- 데이터가 포함된 JSON 파일이 저장될 버킷을 AWS에 생성합니다.
- Docker를 사용하여 로컬에 Airbyte를 설치합니다.
- 수집된 데이터를 저장하기 위해 Elastic Cloud에서 Elasticsearch 클러스터를 생성합니다.
아래에서 이러한 각 단계에 대해 자세히 설명합니다.
Airbyte 설치
Airbyte는 Docker를 사용하여 로컬에서 실행하거나 사용 비용이 발생하는 클라우드에서 실행할 수 있습니다. 이 데모에서는 Docker가 포함된 로컬 버전을 사용하겠습니다.
설치하는 데 몇 분 정도 걸릴 수 있습니다. 설치 지침을 따르고 나면 Airbyte를 http://localhost:8000 에서 사용할 수 있습니다.

로그인한 후 연동 구성을 시작할 수 있습니다.
버킷 만들기
이 단계에서는 S3 버킷을 생성하기 위해 AWS 계정이 필요합니다. 또한 버킷에 대한 액세스를 허용하는 정책과 IAM 사용자를 만들어 올바른 권한을 설정하는 것이 중요합니다.
버킷에 다양한 로그 레코드가 포함된 JSON 파일을 업로드하고 나중에 Elasticsearch로 마이그레이션할 것입니다. 파일 로그에는 이 내용이 있습니다:
아래는 버킷에 로드된 파일입니다:

Elastic Cloud 구성
데모를 더 쉽게 하기 위해 Elastic Cloud를 사용하겠습니다. 아직 계정이 없는 경우 여기에서 무료 체험판 계정을 생성할 수 있습니다: Elastic Cloud 등록.
Elastic Cloud에서 배포를 구성한 후에는 다음과 같은 정보를 얻어야 합니다:
- Elasticsearch 서버의 URL입니다.
- Elasticsearch에 액세스하는 사용자입니다.
URL을 얻으려면 배포 > 내 배포로 이동하여 애플리케이션에서 Elasticsearch를 찾아 '엔드포인트 복사'를 클릭합니다.

사용자를 만들려면 아래 단계를 따르세요:
- Kibana에 액세스 > 스택 관리 > 사용자.
- 수퍼유저 역할을 가진 새 사용자를 만듭니다.
- 필드를 채워 사용자를 만듭니다.

이제 모든 설정이 완료되었으므로 Airbyte에서 커넥터 구성을 시작할 수 있습니다.
소스 커넥터 구성
이 단계에서는 S3용 소스 커넥터를 만들겠습니다. 이를 위해 Airbyte 인터페이스에 액세스하고 메뉴에서 소스 옵션을 선택합니다. 그런 다음 S3 커넥터를 검색합니다. 아래에서는 커넥터를 구성하는 데 필요한 단계를 자세히 설명합니다:
- Airbyte에 액세스하고 소스 메뉴로 이동합니다.
- S3 커넥터를 검색하여 선택합니다.
- 다음 매개변수를 구성합니다:
- 소스 이름: 데이터 소스의 이름을 정의합니다.
- 전달 방법: 레코드 복제를 선택합니다(구조화된 데이터에 권장).
- 데이터 형식: JSON 형식을 선택합니다.
- 스트림 이름: Elasticsearch에서 인덱스의 이름을 정의합니다.
- 버킷 이름: AWS에서 버킷의 이름을 입력합니다.
- AWS 액세스 키와 AWS 비밀 키를 입력합니다: 액세스 자격 증명을 입력합니다.
소스 설정을 클릭하고 유효성 검사를 기다립니다.

구성 대상 커넥터
이 단계에서는 대상 커넥터를 구성할 것이며, 이 커넥터는 Elasticsearch가 될 것입니다. 이렇게 하려면 메뉴에 액세스하여 대상 옵션을 선택합니다. 그런 다음 Elasticsearch를 검색하고 반환된 결과를 클릭합니다. 이제 이 연결의 구성을 진행하겠습니다:
- Airbyte에 액세스하고 목적지 메뉴로 이동합니다.
- Elasticsearch 커넥터를 검색하고 선택합니다.
- 다음 매개변수를 구성합니다:
- 인증 방법: 사용자 이름/비밀번호를 선택합니다.
- 사용자 이름 및 비밀번호: Kibana에서 생성한 자격 증명을 사용합니다.
- 서버 엔드포인트: Elastic Cloud에서 복사한 URL을 붙여넣습니다.
대상 설정을 클릭하고 유효성 검사를 기다립니다.

소스 및 대상 연결 만들기
소스 및 대상이 생성되면 소스 및 대상 간의 연결이 생성되어 통합 생성이 완료됩니다.
다음은 연결을 만드는 방법에 대한 안내입니다:
1. 메뉴에서 연결로 이동하여 첫 번째 연결 만들기를 클릭합니다.
2. 다음 화면에서 기존 소스를 선택하거나 새 소스를 만들 수 있습니다. 이미 생성한 소스가 있으므로 소스 S3를 선택합니다.

3. 다음 단계는 목적지를 선택하는 것입니다. 이미 Elasticsearch 커넥터를 생성했으므로 구성을 완료하기 위해 이 커넥터가 선택됩니다.

다음 단계에서는 동기화 모드와 어떤 스키마를 사용할지 정의해야 합니다. 로그 스키마만 생성되었으므로 선택할 수 있는 옵션은 로그 스키마가 유일합니다.

4. 연결 구성 단계로 이동합니다. 여기에서 연결 이름과 통합 실행 빈도를 정의할 수 있습니다. 주파수는 세 가지 방법으로 구성할 수 있습니다:
- Cron: 사용자 정의 크론 표현식(예: 0 0 15 * * ?, 매일 15:00에)에 따라 동기화를 실행합니다;
- 예약됨: 지정된 시간 간격으로 동기화를 실행합니다(예 24시간마다, 2시간마다);
- 수동: 수동으로 동기화를 실행합니다.
이 데모에서는 수동 옵션을 선택하겠습니다.
마지막으로 연결 설정을 클릭하면 소스와 대상 간의 연결이 설정됩니다.

S3에서 Elasticsearch로 데이터 동기화하기
연결 화면으로 돌아오면 생성된 연결을 확인할 수 있습니다. 프로세스를 실행하려면 동기화를 클릭하기만 하면 됩니다. 그 순간부터 S3에서 Elasticsearch로 데이터 마이그레이션이 시작됩니다.

모든 것이 순조롭게 진행되면 동기화 상태가 표시됩니다.

Kibana에서 데이터 시각화하기
이제 Kibana로 이동하여 데이터를 분석하고 데이터가 올바르게 색인되었는지 확인하겠습니다. Kibana Discovery 섹션에서 로그라는 데이터 보기를 생성합니다. 이를 통해 동기화 이후에 생성된 로그 인덱스에만 존재하는 데이터를 탐색할 수 있습니다.

이제 색인된 데이터를 시각화하고 분석을 수행할 수 있습니다. 이렇게 해서 Airbyte를 사용해 전체 마이그레이션 흐름을 검증하고, 버킷에 있는 데이터를 로드하고 Elasticsearch에서 색인을 생성했습니다.

결론: Airbyte & Elasticsearch 통합
Airbyte는 데이터 통합을 위한 효율적인 도구로 여러 소스와 대상을 자동화된 방식으로 연결할 수 있는 것으로 입증되었습니다. 이 튜토리얼에서는 S3 버킷에서 Elasticsearch 인덱스로 데이터를 수집하는 방법을 시연하면서 프로세스의 주요 단계를 강조했습니다.
이 접근 방식은 대량의 데이터 수집을 용이하게 하고 복잡한 검색, 집계, 데이터 시각화와 같은 분석을 Elasticsearch 내에서 수행할 수 있게 해줍니다.
참고 자료
에어바이트 퀵스타트:
https://docs.airbyte.com/using-airbyte/getting-started/oss-quickstart#part-1-install-abctl
핵심 개념:
자주 묻는 질문
에어바이트는 무엇인가요?
Airbyte는 다양한 소스에서 다양한 대상으로 정보를 자동화되고 확장 가능한 방식으로 이동할 수 있는 데이터 통합 도구입니다.




