AWS ECS(Elastic Container Service)에서 서비스 간 통신을 용이하게 하기 위해 서비스 발견(Service Discovery) 기능을 사용할 수 있습니다. 이 기능을 통해 서비스의 위치를 자동으로 찾아 통신할 수 있게 되며, ECS 작업(컨테이너)이 동적으로 변경되어도 IP 주소나 포트 번호를 직접 관리할 필요가 없어집니다.
서비스 발견 사용 설정: ECS 서비스를 생성할 때 AWS Cloud Map을 사용하여 서비스 발견을 활성화할 수 있습니다. 이를 위해 서비스 정의에서 서비스 발견을 활성화하고, 적절한 네임스페이스와 서비스 이름을 설정합니다.
네임스페이스 생성: 서비스 발견을 위해서는 먼저 Cloud Map에서 네임스페이스를 생성해야 합니다. 네임스페이스는 도메인 이름과 같아서, 서비스 이름을 통해 서비스 인스턴스를 조회할 수 있는 방식을 제공합니다.
서비스 등록: ECS 서비스가 시작되면, ECS는 Cloud Map에 서비스 인스턴스(작업의 IP 주소와 포트 정보)를 자동으로 등록합니다. 이러한 정보는 DNS 쿼리를 통해 조회할 수 있습니다.
DNS 쿼리를 통한 서비스 발견: 다른 서비스에서는 Cloud Map의 DNS 네임스페이스를 조회함으로써 필요한 서비스의 현재 IP 주소와 포트 번호를 알아낼 수 있습니다. 예를 들어, my-service.my-namespace
와 같은 이름으로 서비스를 조회할 수 있습니다.
레디스 클러스터는 요청을 받는 역할이므로 클라이언트 및 서버로 선택해준다.
네임스페이스는 nestjsweb 서비스와 동일하게 nest로 설정…
테스크에서 설정한 port들을 각각 설정해준다
이렇게 각 컨테이너 마다 DNS주소가 할당된 모습!
그러면 이제 nestjsweb서버에서 redis-cluster에 연결할 차례이다.
nestjsweb서버에서는 비교적 간단하다.