안녕하세요. 오늘은 베스핀글로벌 D&A 실 김동규 님이 작성해 주신 Firelens OpenSearch 연동 설정에 대해 알아보겠습니다.
본 가이드에서는 ECS를 예시로 하여 Firelens와 OpenSearch 기본 연동 설정 방법에 대해 가이드 합니다.
관련해서 궁금하신 점이 있으시면 댓글을 달아주세요:)
1. OpenSearch 보안 그룹 생성
HTTPS 접근 허용 정책 – 출발지는 Windows Bastion 사용시 Bastion 서버 내부 IP 로 설정해도 무방합니다.
2번째 규칙은 클러스터의 멤버 인스턴스간 상호 통신할 수 있도록 자기 자신을 참조하는 규칙으로 1번째 규칙을 넣어 보안그룹 생성 후 편집하여 추가하여야 합니다.

1-1. OpenSearch 도메인 생성

이름 : 도메인 이름을 입력합니다.
배포 유형 : 가용성을 고려하여 프로덕션, 개발 및 테스트 등을 선택합니다.
1-2. OpenSearch 도메인 생성


인스턴스 유형을 선택하고 나머지 옵션은 화면 설정값으로 지정합니다.
1-3. OpenSearch 도메인 생성


Private 네트워크를 선택하고 보안그룹은 앞서서 생성한 그룹을 선택합니다.
그외 옵션은 화면과 동일하게 체크 해제되어 있는 것을 확인합니다.
1-4. OpenSearch 도메인 생성

액세스 정책은 도메인 수준 액세스 정책 구성을 선택합니다.
기본 JSON은 수정하실 필요 없습니다.
1-5. OpenSearch 도메인 생성

암호화는 여기서는 체크 해제합니다.
추후 변경 가능하나 한번 활성화 하면 되돌릴 수 없으며 성능은 다소 하락할 수 있습니다.
1-6. OpenSearch 도메인 생성

고급 클러스터 설정은 체크된 상태로 두어야 합니다.
해제된 상태로 생성하면 추후 firelens 와 연동시 explicit index in bulk is not allowed 에러가 발생합니다.
1-7. OpenSearch 도메인 생성

다소의 시간이 걸린 후 위와 같이 도메인 생성이 완료됩니다.
1-8. OpenSearch 도메인 생성

내부 네트워크에 생성되어 있기 때문에 대시보드 접근을 위해서는 bastion, vpn, ssh터널링 등 여러가지 방법중 하나를 사용해야 합니다.
여기서는 bastion Windows 를 통해 앞서 생성한 대시보드 url로 접근하였습니다.
2. ECS Task 작업

Task 작업시 하단의 Firelens 통합 활성화를 체크하고 적용을 클릭합니다.

컨테이너 정의에 log_router가 추가되었음을 확인합니다.
2-1. ECS Task 작업

log_router를 클릭하고 하단의 로그 구성을 그림과 같이 입력합니다.
추후 CloudWatch를 통해 firelens(fluentbit) 로그를 확인하기 위함이며 오류 발생시 원인을 찾아볼 수 있습니다.

추후 확인가능한 정상적인 동작일 경우의 CloudWatch firelens로그입니다.
2-2. ECS Task 작업

서비스용 컨테이너(여기서는 nginx) 를 클릭하고 로그 구성을 그림과 같이 입력합니다.
2-3. ECS Role 수정


기존 ECS실행 role 에 opensearch작업이 가능하도록 정책을 추가해 줍니다.
2-4. ECS 서비스 배포 후 OpenSearch index 확인

firelens 가 에러 없이 실행되면 OpenSearch index 에서 Task 에 설정한 인덱스 입력값이 조회되는 것을 확인할 수 있습니다.
감사합니다~^^

문의: info@bespinglobal.com | 대표번호: 02-1668-1280