728x90
728x90
Auto Scaling Group ASG 에는 증가되는 트래픽 양에 따라 인스턴스를 증가시키는 스케일 아웃 작업과 트래픽 양이 줄어듦에 따라 인스턴스를 감소시키는 스케일 인 작업을 설정할 수 있다. 또한, 특정 갯수만큼만 스케일 아웃시키거나 스케일 인 하여 인스턴스의 최대 최소 갯수를 정할 수 있다. 마지막으로, 이전까지 했던 작업들과 다르게 새 인스턴스를 로드 밸런서에 자동으로 등록할 수 있는 기능도 있다. Minimum size : 오토 스케일링 그룹에서 꼭 실행되야 하는 인스턴스 갯수로, 최소 크기를 나타낸다. Actual Size / Desired Capacity : ASG 에서 현재 실행 중인 인스턴스 갯수를 나타낸다. Maximum size : 부하가 심해진 경우에 스케일 아웃을 통해 추가될 ..
Connection Draining 한 기술 회사에서 운영하는 서비스는 ELB(Elastic Load Balancer)뒤에 EC2 인스턴스를 두고 부하를 분산하는 방식을 사용하고 있다. 이때, EC2가 health check 에 실패하여 unhealthy 상태로 들어가게 되면 진행중이던 in-flight Request 가 끊어지는 이슈가 발생하게 된다. 이를테면, 특정 EC2 인스턴스로부터 수십초가 걸리는 파일 다운로드를 수행중이라고 했을 때, 파일을 다운로드받는 도중, 해당 인스턴스가 unhealthy상태로 바뀌게 되면 커넥션이 끊어지면서 파일 다운로드에 실패하게 되는 것이다. 이러한 상황을 막기 위해 취할 수 있는 방법으로 Connection Draining 을 사용한다. Connection Drai..
Elastic Load Balancer - SSL 인증서 SSL 인증은 클라이언트와 로드 밸런서 사이에 오가는 트래픽들이 암호화되어 전송되도록 한다. 즉, 데이터는 송신자와 수신자에 의해 해독될 수 있다는 뜻이다. SSL 은 Secure Sockets 계층을 나타내고 송신자와 수신자의 연결을 암호화하는데 사용한다. TLS 는 SSL 의 가장 최신 버전으로 전송 계층 보안이다. 요즘에는 SSL 보다 TLS 인증서를 주로 사용한다. 공공 SSL 인증서는 Comodo, Symantec, GoDaddy, GlobalSing 등 CA 에서 발급할 수 있다. 공공 SSL 인증서를 로드 밸런서에 연동하면 클라이언트와 로드 밸런서 사이의 데이터 통신을 암호화할 수 있게 된다. 트래픽이 암호화 되어 있지 않으면 신용 카..
Sticky Sessions (Session Affinity) 하나의 백엔드 서버 인스턴스를 복사하여 여러개의 인스턴스로 띄웠을 때 AWS 로드 밸런서는 traffic 에 따라서 인스턴스에 http request 를 분산하여 전달하기 때문에 A 서버는 session 정보를 가지고 있지만 B 서버는 가지고 있지 않을 수 있는 상황이 발생한다. 즉, 로그인을 하고 난 다음 새로고침을 했더니 로그아웃이 될 수도 있다는 뜻이다. 다중 서버 구성 시에 발생하는 문제로 AWS ELB 를 사용하고 있다면 Sticky Session 이라는 간단한 설정으로 해결할 수 있다. 다시 말해서 sticky 하게 해결한다는 것, A 라는 사용자가 X 라는 서버에서 응답을 받았다면 X 라는 서버에서 사용자에게 계속 응답을 주도록 ..
Gateway Load Balancer AWS 에서 서드 파티 제품이나 가상 어플라이언스를 관리할 때 사용한다. 예를 들어 방화벽을 설정할 때, 심층 패킷 검사 시스템이나, 페이로드를 수정해야 하는 경우에 게이트웨이 로드 밸런서를 사용한다. 사용자들이 있고 내 애플리케이션에서 접근을 하는 경우로 예를 들어보자. 사용자들이 ALB 나 CLB 같은 로드 밸런서를 통해 내 앱으로 접근을 할 수 있다. 로드 밸런서가 트래픽을 적절히 분산시키며 내 애플리케이션으로 트래픽을 보내준다. 하지만 내 애플리케이션으로 오기 전에 트래픽에 대해 어떤 검사나 중간 처리를 하고 싶은 경우가 있을 것이다. 이런 경우에는 외부에서 제공해주는 서드 파티 앱을 사용해야 하는데 게이트웨이 로드 밸런서가 없이 처리를 하려면 꽤나 복잡해진..