ECS ServiceDiscovery Route53

Hoju·2022년 8월 24일
0


Amazon ECS 서비스는 서비스 검색을 사용하도록 구성할 수 있습니다. 서비스 검색은 AWS Cloud Map API 태스크를 사용하여 Amazon ECS 서비스에 대한 HTTP 및 DNS 네임스페이스를 관리합니다.

사용자가 프라이빗 네임스페이스를 AWS Cloud Map에 생성하면 Route 53 호스팅 영역이 자동으로 생성됩니다. Amazon ECS 서비스는 Route 53에서 기억하기 쉽고 예측 가능한 DNS 이름으로 등록할 수 있습니다. 호스팅 영역은 Amazon ECS 서비스가 확장되거나 축소되면 자동으로 업데이트됩니다.

서비스에서 동적으로 변화하는 서비스 주소를 손쉽게 찾을 수 있도록 Service Registry를 구성하고 이를 이용하여 동적인 서비스를 호출하기 쉽게 도와주는 기술입니다. 즉, AWS의 ECS에서는 동적으로 변화하는 서비스의 개별 작업 혹은 서버 주소를 Route 53의 DNS에 저장하고 지속적으로 업데이트 하면서 서비스를 연결해주는 기능을 의미합니다.


실습을 하기전 사전조건

  • Application Load Balancer
  • ECS Cluster
  • Task Definition
  • Role - Route53 Access Policy

ECS Service를 생성하면서 있는 기능이기 때문에, 작업정의, ECS Cluster, ALB가 생성되어 있어야합니다. 또한 TaskDefintion에 Route53에 대한 Role이 포함되어야합니다.

생성

  1. ECS 서비스 생성 단계에서 서비스 검색 부분에 서비스 검색 통합 활성화를 True 해줍니다.
  2. 네임스페이스 이름을 입력합니다. 네임 스페이스는 즉, 프라이빗 호스팅 영역에 생성되는 DNS Name입니다. User가 wsi.local로 생성하면 wsi.local로 호스팅 영역이 생성됩니다.
  3. 서비스 검색 서비스 구성에서 새로운 서비스 검색 서비스 생성을 선택합니다. 그런 다음 서비스 검색 이름에 예를 들어서 test를 지정하면 ECS 서비스는 test.wsi.local 서브 도메인을 가지는 A 레코드를 가지게 됩니다. 그리고 서비스로 배포되는 개별 작업 하나씩 마다 A 레코드를 자동으로 등록됩니다.
  4. ECS 작업 상태 전파 활성화는 이제 ECS가 작업 상태 즉, Task에 상태를 Route 53으로 전달하고 문제가 있는 Task는 Route53 DNS에서 제거해야하는 시간을 줄일 수 있도록 도움을 줍니다.
  5. 다른 부분은 기본값이기 떄문에 설명은 생략하도록 하겠습니다. 서비스 검색을 위한 DNS 레코드 부분에서 유형 2가지가 있습니다. 저는 간단한 테스트를 목적으로 A레코드를 선택하겠습니다.
  • A 레코드: 작업 IP 당 A 레코드를 생성
  • SRA 레코드: 작업 IP + 포트별 SRV 레코드 생성
  1. 이제 다른 단계를 다 거치고 서비스를 생성하도록 하겠습니다.

🤖🤖만약 TaskDefinition에 문제가 있으면, Route53 도메인 또한 생성하면서 계속 에러가 발생합니다.


Service Discovery 동작 확인하기

  1. Route 53 콘솔로 이동 후 호스팅 영역을 확인하면 프라이빗 호스팅 영역이 생성되어있습니다.
  2. 그런 다음 해당 호스팅 영역을 선택하면 wsi.local 프라이빗 영역에 해당 Fargate IP가 연결되어있는 것을 확인할 수 있습니다.
  3. ALB Target Group에서 Fargate IP가 동일한지 확인합니다.
  4. Route 53 프라이빗 영역이 실은 CloudMap에 의해 생성된 것입니다. 그래서 해당 CloudMap 서비스를 이동한 후 네임스페이스 확인을 확인합니다.
  5. 도메인 이름을 선택합니다. 아래로 스크롤 후 서비스 “test”를 생성됬는지 확인합니다. 그런 다음 test를 선택합니다.
  6. 그런 다음 아래 서비스 인스턴스를 보면 각 Fargate 인스턴스에 대해서 상태 검사를 하는 것을 확인할 수 있고 서비스 인스턴스 ID를 선택하면 인스턴스에 상태를 확인할 수 있습니다.
profile
Devops가 되고 싶은 청소년

0개의 댓글