Classic Load Balancer를 Application Load Balancer 또는 Network Load Balancer로 마이그레이션하려고 합니다. 어떻게 해야 합니까? 마이그레이션하기 전에 고려해야 할 몇 가지 모범 사례는 무엇입니까? 마이그레이션 중에 다운타임이 발생합니까?
해결 방법
Classic Load Balancer를 Application Load Balancer 또는 Network Load Balancer로 마이그레이션
마이그레이션 마법사를 사용하여 Application Load Balancer 또는 Network Load Balancer를 생성하고 구성합니다. Classic Load Balancer에 TCP 리스너가 있는 경우 마법사는 Network Load Balancer를 생성합니다. Classic Load Balancer에 HTTP 리스너가 있는 경우 마법사는 Application Load Balancer를 생성합니다. 로드 밸런서가 생성된 후, 새로 생성된 로드 밸런서를 테스트합니다. 새로 생성된 로드 밸런서가 문제 없이 작동하면 Classic Load Balancer에서 새로 생성된 로드 밸런서로 트래픽을 리디렉션합니다.
참고: 마법사는 새 로드 밸런서를 생성합니다. 마법사는 기존 Classic Load Balancer를 Application Load Balancer 또는 Network Load Balancer로 변환하지 않습니다. 수동으로 트래픽을 새로 생성된 로드 밸런서로 리디렉션해야 합니다.
그런 다음 정책, 스크립트 및 코드를 업데이트합니다. 모든 트래픽을 새 로드 밸런서로 리디렉션하고, 이전 로드 밸런서의 모든 기존 요청이 완료되면 이전 로드 밸런서를 삭제합니다.
마이그레이션 고려 사항
- 로드 밸런서에 서브넷이 하나만 있으면 Application Load Balancer를 생성할 때 두 번째 서브넷을 지정해야 합니다. Application Load Balancer에는 최소 2개의 서브넷이 필요합니다.
- 어느 로드 밸런서로 마이그레이션할지 확실하지 않은 경우 Network Load Balancer를 사용하는 것이 좋습니다. Classic Load Balancer가 HTTP 또는 HTTPS 리스너를 사용하는 경우 Application Load Balancer로 마이그레이션합니다. Classic Load Balancer가 TCP 리스너를 사용하는 경우 Network Load Balancer로 마이그레이션합니다. 다양한 로드 밸런서 기능에 대한 자세한 내용은 Elastic Load Balancing 기능을 참조하세요.
- Classic Load Balancer를 사용하면 교차 영역 로드 밸런싱을 비활성화할 수 있습니다. 기본적으로 Application Load Balancer에는 교차 영역 로드 밸런싱이 활성화되어 있으며 해당 로드 밸런싱을 비활성화할 수 없습니다. Network Load Balancer를 사용하면 교차 영역 로드 밸런싱을 비활성화할 수 있습니다.
- Application Load Balancer는 로드 밸런서 자체에서 요청 리디렉션을 지원할 수 있습니다. Classic Load Balancer의 백엔드 연결이 HTTP 리디렉션에 대해 구성된 경우 새 로드 밸런서로 마이그레이션하는 동안 리디렉션을 비활성화하거나 제거할 수 있습니다.
- Network Load Balancer는 로드 밸런서 수준에서 보안 그룹을 지원하지 않습니다. 대상과 연결된 보안 그룹을 사용하여 트래픽을 제한할 수 있습니다. Network Load Balancer 수준에서는 서브넷의 네트워크 액세스 제어 목록(ACL)을 사용하여 트래픽을 제한할 수 있습니다.
- Network Load Balancer는 클라이언트 IP 주소를 유지할 수 있습니다. 보안 그룹을 사용하여 대상의 트래픽을 제한하는 경우 패킷의 소스 IP에 클라이언트 IP 주소가 포함된다는 점에 주의하세요.
로드 밸런서 마이그레이션 중 가동 중지 시간
새 로드 밸런서 설정에 오류가 발생하면 마이그레이션 중 가동 중지 시간이 발생할 수 있습니다. 가동 중지 시간을 최소화하거나 줄이려면 다음과 같은 접근 방식을 고려하세요.
- 프로덕션 트래픽을 전환하기 전에 새 로드 밸런서에 대해 테스트를 실행합니다. 새 로드 밸런서가 트래픽 요청을 처리할 수 있는지 확인합니다.
- Amazon Route 53의 가중치 기반 라우팅 정책을 사용하여 트래픽을 새로운 로드 밸런서로 점진적으로 라우팅합니다. 새 로드 밸런서에 문제가 있는 경우 트래픽 가중치에 값 ‘0’을 할당합니다.
- Route 53을 DNS 공급자로 사용하지 않는 경우 이전 로드 밸런서를 계속 실행합니다. 기존 레코드의 TTL(Time to Live) 값을 ‘0’으로 줄입니다. 그런 다음 이전 TTL 값이 재설정될 때까지 기다렸다가 새 로드 밸런서 DNS 이름을 가리키도록 레코드를 업데이트합니다. 새 로드 밸런서에 문제가 발생하면 Classic Load Balancer의 DNS 이름을 다시 가리키도록 DNS 레코드를 업데이트합니다. TTL 값이 ‘0’이면 레코드가 캐시되지 않습니다. 문제가 해결되면 TTL 값을 원래 값으로 되돌립니다.
- 새 로드 밸런서가 문제 없이 작동하는 경우 이전 로드 밸런서를 삭제합니다.
참고: 차세대 로드 밸런서는 HTTP/HTTPS와 TCP 리스너를 동시에 지원하지 않습니다. Classic Load Balancer를 HTTP/HTTPS 및 TCP 리스너와 동시에 사용하는 경우 모든 TCP/TLS 리스너와 함께 Network Load Balancer를 사용하는 것이 가장 좋습니다. 이 변경으로 인해 NLB에는 이를 제공하는 애플리케이션 수준 라우팅이 없으므로 HTTP/HTTPS 수준 로깅이 손실됩니다. 다른 방법은 Classic Load Balancer를 계속 사용하는 것입니다.