일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 큐
- java
- BinaryTree
- ADT
- ec2
- bubblesort
- Recursion
- data structure
- 웹서버
- graph
- datastructure
- Queue
- 그래프
- algorithm
- 리스트
- C
- 버블정렬
- Tomcat
- Stack
- spring
- aws
- 알고리즘
- web
- C언어
- 자료구조
- 이진탐색트리
- heap
- BinarySearchTree
- 트리
- MariaDB
- Today
- Total
Min'sLog
(AWS) ELB 와 SSL/HTTPS 본문
● ELB(Elastic Load Balancer)란?
트래픽 부하를 분배해 주는 장치를 로드 밸런서(Load Balancer)라고 부른다.
즉 User(Client) 에서 들어오는 애플리케이션 트래픽을 하나이상의 가용 영역으로 분산해주는 역할을 한다.
ELB는 주 기능인 부하 분산 뿐만 아니라 부가 기능으로 SSL/TLS(HTTPS)를 적용시킬 수 있다.
● SSL/TLS
한줄로 요약하자면 SSL/TLS는 HTTP 를 HTTPS 로 바꿔주는 인증서이다.
SSL (Secure Sockets Layer) 은 클라이언트와 서버 사이의 암호화된 연결을 수립하는 데 사용하는 인증서이다.
TLS (Transport Layer Security) TLS 는 SSL 의 향상된 버전으로 SSL이 더욱 일반적으로 잘알려져 있어
SSL 로 혼동하여 부르는 경우도 있다.
즉, 보안적 문제 최신 브라우저에서는 http연결 사이트에 대해 경고 안내문구가 출력된다.
● HTTPS 를 적용시키는 이유?
데이터를 서버와 주고 받을 때 암호화를 시켜 통신한다. 암호화를 하지 않으면 누군가 중간에서
정보를 훔치거나 훔친 정보를 이용한 피해가 생길수도 있기 때문이다.
그리고 위와 같은 경고 안내 문구가 브라우저에서 출력된다면, 내가 서비스하는 애플리케이션의
이용자 수 감소로 이어 질 수 있다.
● ELB를 활용한 아키텍처 구성
이전 EC 생성 포스팅에서는 EC2 를 생성하고 테스트 하였을 때에는 브라우저(client)에서 EC2 (server)로
바로 접근하여 테스트를 진행하였다.
ELB 를 도입하고 난 후에는 EC2가 2대 이상인 경우 아래 우측처럼 이중화된 Server에 로드 밸런싱을 설정할 수 있으며,
EC2 가 1대인 경우, 아래 좌측 그림과 같은 구조로 구성하게 된다.
● ELB 셋팅하기 - 기본 구성
1. EC2 생성때와 마찬가지로 콘솔 > 우상단 메뉴에서 ELB를 생성할 리전을 선택한다.
2. 콘솔 > ELB 검색 > ELB 대시보드 메뉴중 로드 밸런서 클릭
해당 화면에서 로드 밸런서 생성 버튼을 누른다.
3. 로드 밸런서 유형 선택하기
3가지 로드 밸런서 유형이 있다. 현재는 내가 서비스할 서버(EC2)와 연결하려는 목적의 ELB이므로 첫번째 유형
Application Load Balancer 를 생성한다.
4. 기본 구성하기(생성 설정)
4-1. 체계
인터넷 경계와 내부 옵션이 있다. 내부 옵션은 Private IP를 활용할 때, 사용한다.
Router 기준 바깥과 통신하는 기준은 인터넷 경계를 뜻한다.
4-2 IP 주소 유형
EC2 인스턴스가 IPv4 주소만 있다면 IPv4 를 선택하면 된다.
EC2 인스턴스 중 IPv6 주소를 가지고 있다면 듀얼스택을 선택한다.
4-3 네트워크 매핑
아래와 같이 설정하도록 하자. (매핑 전부 체크)
● ELB 셋팅하기 - 보안 그룹
ELB에 셋팅할 보안그룹을 새로 생성하도록 한다.
경로는 콘솔 > EC2 > 보안그룹 > 보안그룹 만들기(추가)
ELB의 인바운드 규칙에는 HTTP (80포트) , HTTPS(443포트)를 추가해 주도록 하자.
(SSL 적용시, HTTPS 통신이 가능하도록)
다시 ELB 생성창으로 돌아와서 보안 그룹을 생성한 보안그룹을 등록한다.
● 대상 그룹(Target Group) 설정하기
1. 리스너 및 라우팅 설정
리스너 및 라우팅 설정은 ELB로 들어온 요청을 어떤 EC2 인스턴스로 분배할 것인지를 설정하는 부분이다.
대상 그룹 생성을 하도록 한다.
2. 대상 그룹 생성
EC2에서 만든 특정 인스턴스로 요청을 전달하기 때문에 인스턴스 옵션을 체크한다.
3. 프로토콜 , IP 주소 유형, 프로토콜 버전 설정
ELB가 사용자로부터 트래픽을 받아 대상 그룹에게 어떤 방식으로 전달할 지 설정하는 부분이다.
(아래 설정은 HTTP(HTTP1), 80포트, IPv4 주소로 통신 하겠다고 설정하는것)
4. 상태 검사(Health Check) 설정하기
ELB의 부가 기능으로 상태검사 (= Health Check) 기능이 있다.
ELB는 들어온 요청을 대상 그룹에 있는 EC2 인스턴스들에게 전달한다.
하지만 만약 그룹내 특정 EC2 인스턴스 서버가 고장났다고 가정하면, 해당 EC2 인스턴스로 요청을 분산하는 것은
비효율적인 방법이 된다.
그렇기 때문에 ELB는 주기적으로 대상 그룹에 속해있는 각각 인스턴스에 정상 기동 중인지에 대한 상태 체크를
한다. (간격 30초) 그 요청에 대한 리턴 메세지를 받게 되면 (HTTP Status code: 200) 정상 동작중인 것으로 간주한다.
하지만 해당 동작에 대한 리턴 메세지를 받지 않으면 해당 EC2의 동작이 중지했다고 판단하여 해당 인스턴스로는
트래픽을 전송하지 않는다.
ELB 상태 검사 세팅은 아래 화면과 같이 검사 프로토콜(통신방식) 과 경로를 지정한다.
해당 Health Check할 EC2 경로를 지정한 후 해당 대상 그룹 생성을 완료한다.
6. ELB 생성창에서 대상그룹 등록
생성한 대상 그룹을 아래 그림과 같이 등록한다.
7. ELB 생성완료하기.
해당 설정 외 나머지 부분들은 기본 값으로 두고 생성한다.
ELB 의 Health Check 관련 EC2 셋팅 방법은 나중에 포스팅 할 수 있도록 하겠다.
'AWS' 카테고리의 다른 글
(AWS) S3 개념 및 생성 실습 (3) | 2024.09.15 |
---|---|
(AWS) RDS란 무엇인가? RDS 생성 및 삭제 실습 (0) | 2024.08.31 |
(AWS) Route 53이란? 도메인 구매 및 연결하기 (0) | 2024.08.21 |
(AWS)탄력적 IP란? 탄력적 IP 할당 및 연결 (0) | 2024.08.20 |
(AWS) EC2 세부 정보 및 접속하기 (0) | 2024.08.19 |