AWS 인프라 구축 실습 6회 - ELB (CLB)
AWS 인프라 구축 실습 6회 - ELB의 CLB
준비사항
1) VPC "new-vpc"
2) subnet "프라이빗서브넷2a", "프라이빗서브넷2c"
3) 보안그룹 : "new-SG-CLB" <- 생성중 할당
4) EC2 인스턴스 2개 (웹서버)
5) 도메인 : clb.sbrich.shop
1. ELB의 CLB 생성하기
1.1. CLB(Classic Load Balancer) 생성
Load Balancer 메뉴 > Load Balancer 생성 > "Classic ..."선택합니다.
1단계: Load Balancer 정의
- 이름 : ELB-CLB
- LB 생성할 VPC : "new-vpc"
- 리스너 구성:
(*80포트로 들어오면 CLB에서 load labalancer port로 받아서 인스턴스 포트로 연결)
- 서브넷 선택 : 2개(실무에서 외부로는 CLB가 오픈되고 서브넷은 프라이빗으로 설정합니다)
사용가능한 서브넷 리스트에서 '+'클릭하여 선택한 서브넷으로 보내고 다음으로 이동합니다.
2단계: 보안 그룹 할당
- 새 보안 그룹 생성 : "new-SG-CLB"
HTTP 포트 추가
3단계: 보안 설정 구성
- HTTPS 인증서는 다음 실습에서 설정(ALB 할때)
4단계: 상태 검사 구성 health check
(ping 과 유사하게 접속확인)
- 응답 시간 초과 : ping protocol로 응답시간내 응답시간 한계
- 비정상 임계값 : 가격 시간동안 응답시간초과가 비정상 임계값만큼 발생하면 "비정상"으로 판단
- 정상 임계값은 : "비정상" 후 10번의 응답을 확인하는 과정이 연속적 정상응답이라면 "정상"으로 판단
5단계: EC2 인스턴스 추가
- 인스턴스 2개 선택
- web 서버를 설치하고 구분이 가도록 'web server 01', 'web server 02'로 표시
EC2 인스턴스는 2건 아래와 같이 하고 서버 구분만 가능하도록 합니다.
AMI : 'Amazon Linux 2 AMI (HVM), SSD Volume Type'
유형 : t2.micro
VPC : 'new-VPC'
Subnet : '퍼블릭서브넷2a' / '프라이빗서브넷2c'
(이름과는 관계없이 설정하면됩니다. 다만, AZ를 프라이빗서브넷2d로 했으나 2d에서는 t2.micro 유형을 지원하지 않는다고 하여 이대로 진행합니다)
퍼블릭IP 활성화 : 비활성화 (<-- 프라이빗 서브넷)
사용자 데이터 : (아파치 웹서버 스크립트로 초기생성시 설치)
스토리지 : 8 GiB
태그명 : 'CLB-WEB01' / 'CLB-WEB02'
보안그룹생성 : 'new-SG-WEB', SSH, HTTP(위치무관)
EC2 에는 아파치 웹서버를 설치 및 실행하여 두었습니다. 아래와 같이 2개의 EC2를 선택합니다.
6단계: 태그추가 (생략)
7단계: 검토
생성을 클릭합니다.
이제 "ELB-CLB" Load Balancer 생성완료했습니다.
참고로 CLB에는 대상그룹이 없습니다. 다음 회차 NLB생성 과정에서 대상그룹이 있으므로 설정해 보도록 하겠습니다.
2. ELB-CLB생성확인
DNS 이름 값 복사 후 웹브라우저 주소에 붙여넣기
리프레시를 해가면서 확인 'web server 01', 'web server 02'가 랜덤하게 나타나는걸 확인할 수 있습니다
ELB-CLB-276907929.ap-northeast-2.elb.amazonaws.com
인식되는데 약간의 시간이 필요할 수 있습니다. 바로 변경이 안되면 인터넷 뉴스라도 잠깐 보고 와도 되겠습니다.
3. 도메인 연결
CLB에 외부에서 접근할 수 있는 웹주소가 필요합니다. 설정해 보겠습니다.
3.1. Route53 설정
- 레코드 생성 레코드명 : clb <-- clb.sbrich.shop
- 레코드유형 : A 값(info)
- 별칭 (체크) : "트래픽 라우팅 대상" > "application/classic load balancer에 대한 별칭" > 리전: "아시아 태평양(서울)" > 생성한 CLB를 선택 레코드 생성 클릭 주소 "http://elb-clb-1626253128.ap-northeast-2.elb.amazonaws.com/"
호스팅영역 생성 후, 호스팅 영역 세부정보입니다.
'호스팅 영역 세부정보'를 클릭하여 네임서버 4건을 복사해서 도메인등록사이트에서 네임서버를 설정해 줍니다.
'레코드 생성'을 클릭하여 CLB에 사용할 호스트를 등록합니다.
레코드명 : clb, 레코드 유형 : A-IPv4, 그리고 값은 별칭을 클릭하여 '트래픽 라우팅 대상'을 설정합니다.
'Application/Classic Load Balancer에 대한 별칭' > 아시아 태평양(서울)[ap-northeast-2] > 'dualstack.ELB-CLB-276907929.ap-northeast-2.elb.amazonaws.com'을 선택하고 '레코드 생성'을 클릭합니다.
이제 주소가 짧아진 url ("http://clb.sbrich.shop/")로 CLB가 수행가능합니다.
웹 브라우저 URL을 입력해 봅니다. (DNS 설정에 따라 몇분, 몇 십분이 걸릴 수도 있습니다)
저는 한참 걸렸습니다. 5분도 더 걸린 것 같습니다.
웹사이트 접속은 한 번씩 교차해서 접속하게 됩니다.
이렇게 접속하는 것은 속성중 아래의 설정'교차 영역 로드 밸런싱 구성'을 활성화 해서 입니다.
4. 로드밸런싱 선택
* 로드밸런싱 방식
- round robin (순차적 접속). 학습/테스트용
- least connection (최소 연결 접속) 현재 접속자가 적은 인스턴스로 외부유입을 포워드 연결
** sticky session 설정 : 로그인 후 세션이 12시간이나 24시간으로 해서 같은 인스턴스로 접속하게 해서 세션이 남아 있도록 하여 설정시간내에는 동일한 인스턴스로 포워드 되는 기능. 서비스 사이트의 경우 접속자가 해당 세션을 유지하도록 하기 위해서 기능이 필요합니다.
- 포트구성과 로드밸런싱 방식 설정
아래는 디폴트 값입니다.
로드밸런서 설정의 "ELB-CLB" 내부에서
포트구성 : "고정 : 비활성"
sticky 설정 : "활성화"
고정편집 : "Load Balancer 생성 쿠키 고정 활성화" 선택후 시간 입력
(로그인 후 세션이 12시간이나 24시간으로 해서 같은 인스턴스로 접속하게 해서 세션을 유지할 수 있도록 하는 방법입니다)
* Route53 레코드생성에서 "레코드 유형"을 CNAME 으로 해도 가능합니다.
AWS 인프라 구축 실습 6회 - ELB의 CLB를 마치고 다음 과정에서는 ELB의 NLB과정을 살펴보겠습니다.