Wisdom’s Cloud

[AWS] 16. Amazon ELB 본문

AWS/Beginner

[AWS] 16. Amazon ELB

지혜로운지혜쓰 2021. 3. 5. 00:15

구분 내용
서비스명 Amazon Elastic Load Balancing
설명 확장성, 성능, 보안성을 통한 애플리케이션 내결함성을 제공하는 로드 밸런서
주요 특징 - 수신되는 트래픽을 여러 EC2 인스턴스에 자동 배포
- 애플리케이션의 내결함성을 확보하며, 네트워크 트래픽을 원활하게 대상으로 자동 분산 처리 기능 제공
- 고가용성, 자동 조정 및 강력한 보안 서비스 제공
- Application Load Balancer, Network Load Balancer, Classic Load Balancer 등 세 가지 유형의 로드 밸런서를 지원하며, 애플리케이션의 필요에 따라 로드 밸런스
프리티어(Free Tier) - 클래식 및 애플리케이션 로드 밸런서 간에 공유되는 탄력적 로드 밸런서 750시간을 프리티어로 제공
- 클래식 로드 밸런서의 데이터 처리 15GB, 애플리케이션 로드 밸런서 15GB를 프리티어로 제공

 

 

ELB 종류 및 유형
  • Amazon Elastic Load Balancing은 애플리케이션의 요구사항에 따라 Applicaion Load Balancer, Network Load Balancer, Classic Load Balancer 중 하나의 유형을 선택하여 로드 밸런싱 서비스를 사용할 수 있다.
구분 내용 적합 서비스
Application
Load Balancer
- OSI 모델 7계층(Application Layer)에서 작동하며, HTTP, HTTPS와 같은 고급 로드 밸런싱 서비스에 적합
- 마이크로 서비스 및 컨테이너 기반 애플리케이션, 최신 애플리케이션 서비스에 최적화된 로드 밸런싱 제공, SSL/TLS 암호화 및 프로토콜 사용하여 보안성 보장
HTTP/HTTPS 서비스
Network
Load Balancer
- OSI 모델 4계층(Transport Layer)에서 작동하며, TCP 트래픽의 로드 밸런싱 서비스에 적합
- 짧은 지연 시간과 초당 수백만 개의 요청 처리가 가능하며, 가용 영역 당 1개의 정적 주소를 사용하면서 트래픽의 변동이 심한 서비스에 최적화
TCP 트래픽 로드 밸런싱 및 짧은 지연 시간
Classic
Load Balancer
- OSI 모델 4계층(Transport Layer), 3계층(Network Layer)에서 작동
- EC2-Classic 네트워크 내에 구축된 애플리케이션을 대상으로 제공
EC2-Classic 네트워크 구축된 애플리케이션

 

  • ELB를 생성하는 것이 로드 밸런싱 서비스를 인터넷에 연결할 것인지 아닌지에 따라 Internet-facing 여부를 선택하게 된다. 이 항목 선택 여부에 따라 ELB가 Interanl ELB, External ELB로 구분되며, 서비스별 차이점은 다음과 같다.
항목 External Elastic Load Balance Internal Elastic Load Balance
인터넷 연결 연결 가능 연결 불가
사용 가능 IP Public IP, Private IP Private IP
접속 가능 영역 인터넷, VPC 내부 VPC 내부

 

 

ELB 주요 특징
  • 상태 확인 서비스(Health Check)
  • Sticky Session
  • 고가용성 구성
  • SSL Termination 및 보안 기능

 

 

실습: 웹 서버 구성 및 웹 페이지 연결 테스트하기

 

1. AWS 계정으로 로그인한 후 서비스 메뉴에서 컴퓨팅의 [EC2]로 이동한다.
2. 인스턴스 메뉴에서 [인스턴스 시작] 버튼을 누르고, AMI 선택 페이지에서 [Amazon Linux 2 AMI]를 선택한다.
3. 인스턴스 유형 페이지에서 [t2.micro]를 선택한 후 [다음: 인스턴스 세부 정보 구성] 버튼을 클릭한다.
4. 인스턴스 세부 정보 구성 페이지에서 인스턴스 개수를 "2"로 지정하고, 네트워크는 "tutorial-vpc"로, 서브넷은 "Tutorial public"로, 퍼블릭 IP 자동 할당은 "활성화"로 선택한 후 [다음: 스토리지 추가] 버튼을 클릭한다.
5. 스토리지 추가 페이지에서 [다음: 태그 추가] 버튼을 클릭한다.
6. 태그 추가 페이지에서 [다음: 보안 그룹 구성] 버튼을 클릭한다.
7. 보안 그룹 구성 페이지에서 [기존 보안 그룹 선택]을 클릭한 후 [toturial-securitygroup]을 선택하고 [검토 및 시작] 버튼을 클릭한다.
8. 인스턴스 시작 검토 페이지에서 [시작하기] 버튼을 클릭한 후 "기존 키 페어 선택"을 선택하고 [인스턴스 시작] 버튼을 클릭한다.
9. 인스턴스 메뉴에서 신규로 생성된 인스턴스 2개를 확인한다.
10. SSH Client를 이용하여 서버 접속한 후 다음과 같은 명령을 실행하여 웹 서버를 설치하고, 웹 페이지를 생성한다.
11. 인스턴스의 퍼블릭 DNS를 확인한 후 웹 브라우저로 웹 서비스 접속 가능 여부를 확인한다.
12. SSH Concole로 이동한 후 다음과 같이 chkconfig 명령을 사용하여 서버 부팅 시 웹 서버가 자동으로 시작될 수 있도록 설정한다.
13. 로그인 중인 ec2-user로 웹 서버의 기본 루트 페이지의 파일을 수정 변경 가능하도록 설정하기 위해 /var/www 디렉터리의 소유권 및 권한을 변경해야 한다. 따라서 다음의 명령을 사용해서 www라는 그룹을 추가하고 /var/www에 대한 소유권과 권한을 부여한다.
14. EC2를 SSH console로 다시 접속한다. 그리고 SSH Client를 이용하여 서버에 다시 접속 후 다음과 같이 서버의 접속 권한을 수정한다.
15. html 폴더로 들어가서 Nano Editor를 활용하여 index.html을 신규로 생성한 후 1번 서버에는 "Test Website - EC2 Instance 1"을 입력 저장한다.
16. 인스턴스의 퍼블릭 DNS로 다시 웹 브라우저에서 접속하여 "Test Website - EC2 Instance 1"이 정상 출력됨을 확인한다.
17. 2번 서버에 대해서도 동일한 절차로 웹 페이지를 등록한다.

 

 

실습: ELB 구성하기

 

1. EC2의 로드 밸런서에서 [Load Balancer 생성] 버튼을 클릭한다.
2. 로드 밸런서 유형 선택 페이지에서 Application Load Balancer의 [생성] 버튼을 클릭한다.
3. Load Balancer 구성 페이지의 기본 구성에서는 이름을 "Toturial-ELB"를 입력한다.
4. 그리고 가용 영역에서는 VPC를 "tutorial-vpc"로 선택하고 가용 영역 2개를 선택한 후 [다음: 보안 설정 구성] 버튼을 2번 클릭한다.
5. 보안 그룹 구성 페이지에서 [Toturial Security Group]을 선택한 후 [다음: 라우팅 구성] 버튼을 클릭한다.
6. 라우팅 구성 페이지에서 이름을 "Toturial-ELBGroup"을 입력한다.
7. 그리고 고급 상태 검사 설정 항목을 클릭한 후 제한시간은 "2초", 간격은 "10초"로 지정하고 [다음: 대상 등록] 버튼을 클릭한다.
8. 대상 등록 페이지에서 등록된 2개의 인스턴스를 선택하고 [등록된 항목에 추가] 버튼을 클릭하여 대상을 등록하고 [다음: 검토] 버튼을 클릭한다.
9. 검토 페이지에서 구성한 내용을 확인한 후 [생성] 버튼을 클릭한다.
10. 로드 밸런서로 이동한 후 등록된 로드 밸런서를 선택하여 신규로 생성된 ELB의 DNS 이름을 확인하고 복사한다.
11. 복사한 ELB의 DNS 이름을 웹 브라우저에서 접속하여 웹 페이지가 정상적으로 접속되는지 확인한다.

 

 

실습: 서비스 실패 시 ELB 테스트하기

 

1. 인스턴스로 이동한 후 2번 서버를 선택하여 인스턴트를 중지시킨다.
2. 대상 그룹으로 이동한 후 Targets에서 2번 서버의 상태가 "unused"로 변경됨을 확인한다.
3. ELB의 DNS 이름을 웹 브라우저에 입력하여 웹 사이트 접속 후 여러 차례 새로고침을 수행하여 1번 서버만 연결됨을 확인한다.
4. 다시 인스턴스로 이동한 후 2번 서버를 선택하여 인스턴트를 시작시킨다.
5. 대상 그룹으로 이동한 후 Targets에서 2번 서버의 상태가 "healthy"로 변경됨을 확인한다.
6. ELB의 DNS 이름을 웹 브라우저에 입력하여 웹 사이트에 접속한다. 그리고 여러 차례 새로고침을 수행하여 2번 서버와 1번 서버가 Round Robin 방식으로 동작하여 2번 서버로 연결 가능함을 확인한다.

 

 

실습: ELB 세션 연결 고정(Sticky Session 활성화)하기

 

1. 대상 그룹으로 이동한 후 [Toturial-ELBGroup]을 선택하고 하단의 Attributes의 [Edit] 버튼을 클릭한다.
2. Attributes에서 [Stickiness]를 체크하고 Stickiness duration을 [10분]으로 지정한 후 [Save changes] 버튼을 클릭한다.
3. ELB의 DNS 이름으로 웹 사이트에 접속하여 새로고침을 여러 차례 수행하면 접속되는 웹 사이트가 고정되어 동일 인스턴스로만 접속되는지 확인할 수 있다.

'AWS > Beginner' 카테고리의 다른 글

[AWS] 18. Amazon Auto Scaling  (0) 2021.03.10
[AWS] 17. 클라우드 용어 정리(7)  (0) 2021.03.05
[AWS] 15. 클라우드 용어 정리(6)  (0) 2021.03.04
[AWS] 14. Amazon Route 53  (0) 2021.02.14
[AWS] 13. 클라우드 용어 정리(5)  (0) 2021.02.04