728x90
 

AWS Route53 DNS 요청 실시간 모니터링 체계 만들기 #1/4

AWS Route53은 Authoritative DNS로도 사용될 수 있고 Dynamic DNS 혹은 GSLB(Global Server Load Balancer)로도 사용될 수 있습니다. 쿼리 수량에 따라 단가가 매겨지고 (=TTL조정으로 어느정도 비용 통제도 할..

ondemand.tistory.com

지난 글에서는 Route53 로그 추출을 위한 사전 작업으로 Route53의 대상 Hosted Zone에 Query Logging을 설정하고 CloudWatch Logs로 로그를 전송하도록 구성을 했습니다. 로그가 정상적으로 CloudWatch Logs로 수집되기 시작했기 때문에, 이번 글에서는 `Subscription filters`를 생성하여 <로그를 구독할 서비스를 설정>하고 CloudWatch Logs의 로그를 해당 서비스가 구독하도록 하겠습니다.

다만 이 작업을 진행하기 전에 Amazon ElasticSearch를 향한 `Subscription filters` 생성시 입력해야 하는 ElasticSearch Cluster 도메인을 먼저 만들고, 해당 도메인을 filter에 지정하는 작업을 해보도록 하겠습니다. 참고로 CloudWatch Logs에서 생성할 수 있는 filter는 4가지 정도가 있습니다만 AWS ElasticSearch로 전송하는 것이 가장 간단합니다. 

(Update 2022.04.21)

AWS의 제품 라인업에서 ElasticSearch가 빠지고 Amazon OpenSearch로 대치되었습니다.
ES의 오픈소스 버전이라고 생각하면 되기 때문에 기본적으로 큰 차이는 없습니다!

 

 


 

Amazon Elasticsearch Cluster 생성하기

`Elasticsearch subscription filter`를 설정하기 위해서 AWS Web Console 에서 `Amazon Elasticsearch`를 선택하고 관리 화면으로 이동하도록 하겠습니다. 제가 사용하는 Account에는 생성된 ES Cluster가 없기 때문에 아래 화면과 같습니다만, 미리 생성되어 있거나 사용중인 ES Cluster가 있다면 목록에 해당 클러스터의 이름이 보일것입니다.

어쨌든 우리는 새로운 클러스터를 만들어야 하기 때문에 `Create domain`을 눌러 새로운 ElasticSearch Amazon OpenSearch Cluster를 구성해 보도록 하겠습니다. 새로운 클러스터 생성시 `도메인`을 지정하게 되고, 이후 CloudWatch에서 subscription filter를 설정할 때도 생성한 도메인 이름을 선택하게 됩니다. 

간단하게 짧은 시간동안 Route53 DNS의 로그를 수집하여 분석해야 하거나 로그 양이 많지 않은 경우라면 클러스터에 사용되는 리소스 규모를 적당한 크기로 선택하는 것이 좋습니다. ElasticSearch 생성의 첫 단계에서 `Development and testing` 타입으로 클러스터를 생성해도 무방할지 생각해 보시기 바랍니다. 설명에 따르면 이 옵션을 쓰면 AWS Region의 가용성 영역을 하나만 사용하게 되고 HA(High Availability)를 보장받기 힘듭니다. 그럼에도 불구하고 우리는 공부를 하는 중이니 간단하게 클러스터를 구성하도록 하겠습니다.

 

 

 

두번째 화면에서는 할당될 Elasticsearch 클러스터의 도메인(Domain)으로 사용할 키워드를 입력합니다. 앞서 이야기 한 것처럼 여기에서 입력한 키워드를 클러스터 선택시 사용하게 됩니다. 이외에도 자동 튜닝, 인스턴스 타입, 스토리지 크기 등을 정하게 됩니다만 크게 필요가 없다면 옵션을 끄는 것이 비용 관점에서 유리합니다. 물론 성능이 좋은 ES 클러스터를 만들어야 한다면 세세하게 설정을 손봐야 하겠지만 일단 로그를 흘리면서 ES로 던지고, ES와 함께 제공되는 Kibana에서 조회해 보는 것이 목적이니 기본 값으로 시험해 봐도 무방하다.

 

 

(Update 2022.04.21)

Amazon OpenSearch 로 제품이 변경되면서 설정 화면이 약간 바뀌었습니다.
아래와 같이 `Deployment type` 선택이 약간 아래로 밀렸고 Name 지정을 먼저 하도록 바뀌었습니다.
순서만 약간 바뀌었을 뿐, 입력하고 선택하는 내용은 대부분 큰 변경이 없습니다.

1.
먼저 Domain Name과 Deployment Type을 선택합니다.
시험중이라면 `Development and testing`을 선택하여 단일 리전에만 배포합니다.




 

다음으로 ES와 Kibana에 접근할 수 있는 접근 권한을 설정해야 합니다. VPC내에서만 접근 가능하게 하거나 Cognito 등을 연동하여 IAM 기반으로 접근할 수 있도록 하는 것이 좋습니다만 시험을 위해서 Public Access로 구성을 진행하고 <Fine-grained access control> 섹션에서 `Create master user`를 눌러 단순하게 ID, Password로 접근하게 하는 방법을 써도 무방합니다. Production용 시스템을 구성한다면 이렇게 구성하지 않는 것이 Job Security에 유리하겠습니다 :-)

 

 

(Update 2022.04.21)

시험적으로 만들어보는 중이니 `Network`는 `Public access`로
`Fine-grained access control`도 `Create master user`를 이용하도록 합시다.
이전 버전과 큰 차이는 없습니다. 




`Access Policy` 역시 단순한 시험을 위해 IP ACL로 설정해 보았습니다. 

이후 AWS의 꽃 중 하나인 Tag 설정 단계가 있지만 시험용 설정을 위해서는 굳이 설정하지 않아도 됩니다. 마지막으로 `Review` 단계에서 입력한 값들을 한번 더 검증하고 문제가 없다면 `Confirm` 버튼을 눌러 ElasticSearch Cluster 생성을 마무리 하도록 하겠습니다.

늘 느끼는 것이지만 AWS를 비롯한 Public Cloud에서는 이것 저것 설정하고 준비해야 할 것들이 꽤 많습니다. 이어지는 글들에서는 CloudWatch Logs에서 Subscription filter를 생성하고 IAM에서 필요로 하는 권한을 설정하는 작업을 진행하도록 하겠습니다. 

 

(#3/4) AWS Route53 DNS 요청 실시간 모니터링 체계 만들기

AWS Route53 DNS 요청 실시간 모니터링 시스템 만들기의 세번째 포스팅입니다. 네번째까지 구성되어 있는 컨텐츠이지만 내용들은 짧막 짧막하니 아는 부분은 팍팍~ 넘어가시고 막히는 부분들을 확

ondemand.tistory.com


AWS 입문자라면 AWS 자격증 공부를 통해 체계적으로 전반적인 AWS 에코시스템을 학습하는 것이 좋습니다. udemy 베스트셀러 강의를 통해 자격증과 AWS 지식을 함께 쌓아보시면 어떨까요?

 

[NEW] Ultimate AWS Certified Cloud Practitioner - 2021

Pass the Amazon Web Services Certified Cloud Practitioner CLF-C01 exam, Practice Exams included with explanations!

www.udemy.com

 

본 포스팅은 제휴마케팅을 통해 소정의 수수료를 지급받을 수 있습니다.

728x90

+ Recent posts