하이브리드 및 멀티클라우드 환경에서의 로그 통합 수집 기술: Amazon OpenSearch Ingestion과 IAM Roles Anywhere 활용법
최근 들어 많은 기업들이 하이브리드 및 멀티클라우드 아키텍처를 채택하고 있습니다. 다양한 환경에서 애플리케이션이 동작하는 만큼, 이로 인해 로그 데이터가 여러 플랫폼에 분산되며 운영 및 보안 가시성 확보에 어려움이 생깁니다. 이러한 운영 복잡성을 해소하기 위해 AWS에서는 Amazon OpenSearch Ingestion을 중심으로 안전하고 자동화된 로그 수집 방안을 제시했습니다.
이 글에서는 IAM Roles Anywhere를 이용해 외부 환경(예: 온프레미스, 다른 클라우드 플랫폼)에서 Amazon OpenSearch Ingestion으로 로그를 안전하게 전송하고 통합하는 방식을 실제 사례 중심으로 소개합니다. 특히 Fluent Bit와의 연동을 통해 로그 수집을 자동화하고, 보안 인증을 위한 임시 자격 증명을 사용하는 방법을 실습 형태로 설명합니다.
로그 수집 아키텍처 및 주요 구성 요소
Amazon OpenSearch Ingestion은 완전관리형 로그 수집 엔진으로, 실시간 분석이 가능한 Amazon OpenSearch(Service 혹은 Serverless)를 대상으로 로그를 전달합니다. 아래 아키텍처는 IAM Roles Anywhere를 통해 외부 환경에서 수집된 로그가 OpenSearch Ingestion으로 안전하게 송신되는 구조를 보여줍니다.
해당 구조는 다음과 같은 구성요소로 이루어져 있습니다.
- Fluent Bit: 오픈소스 로그 수집기이며, 다양한 OS에서 구동 가능
- IAM Roles Anywhere: AWS 외부 환경에서도 AWS 리소스 접근을 위한 임시 자격 증명 발급
- AWS Private CA: IAM 인증에 필요한 X.509 인증서 발급을 위한 내부 CA
- OpenSearch Ingestion: HTTP 기반으로 로그를 수신하고 OpenSearch로 전송하는 파이프라인
- OpenSearch Service: 로그를 저장, 검색, 시각화할 수 있는 완전관리형 서비스
IAM Roles Anywhere를 이용한 자격 증명 방식
IAM Roles Anywhere는 공개되지 않은 인증서를 기반으로, 외부 환경에서 AWS 리소스에 안전하게 접근할 수 있도록 임시 자격 증명을 생성합니다. Fluent Bit와 연동하기 위해 다음과 같은 방식으로 구성됩니다.
- AWS CLI의 credential_process 파라미터를 사용해 임시 자격 증명 생성
- AWS Signing Helper를 실행하면서 인증서 및 개인 키 기반 Signing 수행
- Fluent Bit에서 aws_profile을 통해 해당 자격 증명 자동 연동
자동화된 배포 가이드: AWS CloudFormation 활용
AWS CloudFormation을 활용해 필요한 리소스를 구성하면 수작업을 줄이고 배포 오류를 방지할 수 있습니다.
- 주어진 CloudFormation 템플릿으로 OpenSearch 도메인, Ingestion 파이프라인, IAM Roles Anywhere, 인증서 등을 자동 생성
- 콘솔에서 스택 이름, 인증서 유효기간, CIDR 등 몇 가지 매개변수 입력만으로 배포 가능
- 약 30분 소요 후 Outputs 탭에서 필요한 IAM, 인증서, 엔드포인트 정보 확인 가능
CloudShell을 통한 인증서 자동 추출 및 구성
CloudShell을 통해 CloudFormation에서 생성된 인증서를 추출하고 환경에 배포합니다.
- 인증서 ARN 추출 및 export
- 인증서 및 개인 키 파일 생성 (openssl과 jq 사용)
- 환경 파일 cleanup으로 보안 강화
Fluent Bit 설정 및 OpenSearch 파이프라인 연동
fluent-bit.conf 예제는 다음과 같으며, 해당 구성으로 /var/log/syslog 로그를 OpenSearch로 전송합니다.
- 입력 플러그인은 tail, 로그 파일을 실시간 모니터링
- 출력 플러그인은 http, OpenSearch Ingestion endpoint로 전송
- aws_auth 및 aws_profile 속성을 활용해 IAM Roles Anywhere 인증 자동화
테스트 및 결과 확인
CloudShell 환경에서 awscurl을 통해 인덱스와 로그 확인이 가능합니다.
- 인덱스 네이밍은 logs-YYYY.MM.DD 형식으로 자동 생성됨
- 최대 10개 로그 레코드를 @timestamp 기준 정렬하여 조회 가능
예시 로그
{
"log": "2024-11-19T18:07:42.399224+00:00 test-server fluent-bit[9986]: [ info] 로그 전송 성공",
"@timestamp": "2024-11-19T18:07:42.812Z"
}
활용성 높은 보안 자동화 구조
해당 구성은 단순 로그 수집을 넘어 멀티환경 인프라의 보안 로그 가시성 향상, 운영 자동화, 문제 해결 속도 개선 등 다양한 이점을 제공합니다.
- 하드코딩된 AWS 자격 증명 제거 → 보안 강화
- 멀티 환경 로그 통합 → 운영 일관성 확보
- CloudFormation과 IAM Roles Anywhere 도입 → 구성 자동화 및 유지보수 편의성
마무리
이번 글에서는 IAM Roles Anywhere를 활용해 외부 환경에서도 Amazon OpenSearch Ingestion으로 안전하게 로그를 수집하는 방법을 소개했습니다. 구성 자동화, 인증서 기반 임시 자격 증명, Fluent Bit 통합 등은 복잡한 인프라 환경에 적합하며, 단일화된 로그 중심 운용을 가능하게 합니다. 향후 멀티클라우드와 하이브리드 환경을 운영하는 기업에게 중요한 자동화 사례가 될 수 있을 것입니다.
AI, Cloud 관련한 문의는 아래 연락처로 연락주세요!
(주)에이클라우드
이메일 : acloud@a-cloud.co.kr
회사 번호 : 02-538-3988
회사 홈페이지 : https://www.a-cloud.co.kr/
문의하기