인프라
ALB를 통한 이중화 네트워크 구성 (private ec2)
김도리개발자
2023. 2. 26. 15:40
private 영역의 ec2 인스턴스를 타겟으로 하는 ALB(Application Load Balancer)를 구성해보자
웹서버를 외부와 직접적인 통신이 가능한 public 영역에 그대로 두는 것은 실제 웹서비스를 제공하는데 있어 보안 측면에서 그렇게 적절한 방법은 아니다.
따라서 웹서버를 외부와 직접적인 통신이 제한되어 있는 private 영역에 두고, 이를 ALB를 통해 트래픽을 분산하고 웹 서비스를 제공할 수 있는 환경을 구성해보자
- target group 생성
- 로드 밸런서 생성하기
- 로드밸런서의 타겟이 private subnet들인데 네트워크 맵핑이 public subnet인 이유는?
- ec2 인스턴스 같은 리소스들처럼 로드밸런서도 네트워크 인터페이스의 ip를 통해서 통신을 하게 되는데 외부 인터넷과 통신하기 위해서는 네트워크 인터페이스가 인터넷 게이트웨이를 통해 외부 인터넷과 통신이 가능한 subnet에 위치해야 한다.
- 외부에서의 트래픽이 public subnet에 위치한 로드밸런서의 네트워크 인터페이스를 통해 들어오게 되면 이 트래픽이 private subnet의 ec2 인스턴스로 이동하게 되고, 통신이 가능해진다.
- 로드밸런서 잘 작동 하는지 확인
- AZ 2c 영역에 있는 EC2 인스턴스인 private-ec2-c1의 프라이빗 IP 주소와 동일한 것으로 잘 보인다.
- AZ 2a 영역에 있는 EC2 인스턴스인 private-ec2-a1의 프라이빗 IP 주소와 동일한 것으로 잘 보인다.
- 새로고침을 계속 해보면 인스턴스의 정보가 번갈아 가며 출력이 되는 것을 볼 수 있다.
트래픽이 전달되는 과정은 사용자의 request가 application load balancer를 통해서 private subnet의 ec2 인스턴스로 전달이 되고, request에 대한 response가 alb를 통해 인터넷으로 나가 결과적으로 웹브라우저에 출력이 된다.