라벨이 ELB인 게시물 표시

[AWS] 부하분산과 고가용성을 위한 ELB 구성하기

이미지
이번 포스팅에서는 AWS 에서 제공하는 ELB 서비스에 대해 알아보겠습니다. ELB 란 ? AWS 에서 부하분산 및 고가용성을 위해 제공하는 서비스로  Elastic Load Balancer 의 약자 입니다. ELB 서비스 구성 EC2 인스턴스 생성 ELB 구성을 위해서 먼저 2개의 EC2 인스턴스를 생성 하도록 하겠습니다. 고가용성 구성이 목적이므로 각각의 AZ (Availability Zone)에 하나씩 인스턴스를 생성합니다. 로드밸런서 생성 Instance가 준비되면 Load Balancer 생성을 진행합니다. 좌측 메뉴에서 Load Balancers 를 선택하고  상단 Create Load Balancer 를 선택합니다. 로드 발란서 형식 선택 화면이 표출됩니다. Classic Load Balancer  의 Create를 선택합니다. Load Balancer Name 에 이름을 입력하고 Protocol 과 Port 정보를 입력합니다. Load Balancer Port 와 Instance Port 를 다르게 설정하면  EC2 인스턴스 서비스 포트를 외부에 노출하지 않고 ELB 를 통해서만 접속이 가능하도록 구성할 수 있습니다. 아래  그림과 같이 설정하게 되면 ELB 80 포트로 접속된 서비스를 Instsnce 3000 포트의 서비스로 연결합니다. 입력이 완료되면 Next 를 선택합니다. Security Group 을 설정합니다. 새로운 Security Group을 생성하여 Load Balancer Port  접속을 허용하도록 구성합니다. 입력이 완료되면 Next 를 선택합니다. HTTPS를 사용하지 않는 경우 아래와 같은 경고가 표출됩니다. HTTPS 구성 및 SSL 인증서 설정은 따로 포스팅 하도록 하겠습니다. 우선은  Next 를 선택합니다. Health Check 설정 화면이 표출됩니다. Load Balancer 에 연결된 EC2 인스턴스가 정상적으로 동

[AWS] 웹서버 Session 관리를 위한 ELB Sticky Session

이미지
Apache Tomcat 을 기반의 웹서버를 구성하고  AWS  ELB(Elastic load Balancer) 를 활용하여 Multi-AZ(Available Zone) Instance 이중화를 구성하였습니다. 그런데 웹서버에 접속후 로그인 세션이 유지되지 않는 문제가 발생하였습니다. 원인은  ELB 는 트래픽 분산방식이 기본적으로 RoundRobin 방식으로 구현되어 사용자 세션이 유지되지 못하는 현상이었습니다. 이런 문제를 해결하기 위하여 ELB는 Sticky Session 기능을 적용합니다. 최초에 ELB 구성시 Sticky Session 은 Disabe 상태입니다. 확인을 위해 AWS 콘솔에 접속하여 EC2 DashBoard - Loadbalancer 항목으로 이동해 보겠습니다. Description 탭에 PortConfigration 항목에 설정에서 변경을 원하는 Port 구성에 Edit stickiness   를 선택합니다. Enable Load Balancer Generated Cookie Stickines 를 선택합니다. Expiration Period 에 세션이 유지될 시간을 "초" 단위로 입력해 줍니다. 이제 ELB 에서 생성한 쿠키를 사용하여 해당 시간동안 ELB 에서는 동일한 서버로 트래픽을 연결하여 세션을 유지하게 됩니다. 간단하게 ELB 를 통한 세션 설정이 완료 되었습니다. ELB 에서 생성한 Cookie 대신 웹 Application에서 직접 Cookie 를 생성하고 세션을 관리 할수도 있습니다. Enable Application Generated Cookie Stickiness 를 선택하면 웹서버에서 생성한 쿠키를 사용하여 세션을 유지하게 됩니다.  이때는 Cookie Name 에  웹서버에서 생성한 Cookie Name 을 입력해 주면 됩니다.  AWS Console 을 통하여 간단하게 Sticky Session 구성