안녕하세요
이번 시간에는 네이버 클라우드 플랫폼에서 애플리케이션 로드 밸런서를 구성한 후 웹 서버 로드밸런싱을 테스트해 보겠습니다. 따로 이론적인 내용은 뒤로하고 실습하면서 알아보겠습니다.
1. VPC 생성하기
VPC: hyuk-test-vpc
범위: 192.168.100.0/24
VPC를 생성합니다. 실제 운영 환경에서는 VPC를 여러 개 생성하거나 24보다 더 여유있게 생성하는 게 좋습니다.
2. Subnet 생성하기
서브넷 이름 | IP 주소 범위 | 인터넷 게이트웨이 | 용도 |
hyuk-pub-sub-01 | 192.168.100.0/27 | Public | 일반 |
hyuk-lb-sub-01 | 192.168.100.32/27 | Private | 로드밸런서 |
hyuk-pri-sub-01 | 192.168.100.64/27 | Private | 일반 |
hyuk-nat-sub-01 | 192.168.100.96/27 | Public | NAT 게이트웨이 |
NCP에서는 AWS와 다르게 NAT 게이트웨이와 로드 밸런서가 위치할 서브넷을 따로 생성해주어야 합니다. 또한 각 서브넷 당 최대 5개의 로드 밸런서를 생성할 수 있기 때문에 그 부분도 고려해야 합니다. 로드 밸런서의 경우 Private 서브넷으로만 생성할 수 있습니다.
3. 서버 생성하기
로드 밸런서 테스트를 위해 Bastion 서버를 1개, Private 서버를 2개 생성합니다. Private 서버는 두 번 설정하기 힘들 수 있기 때문에 [내 서버 이미지]를 생성한 후 복제해도 괜찮습니다. 아니면 서버를 생성할 때 패키지를 [Init Script]를 적용하여 생성해도 괜찮습니다.
4. NAT 게이트웨이 생성하기
Private 서버가 인터넷 통신을 하기 위해 NAT 게이트웨이를 생성합니다. (Bastion Host 생성하지 않을 경우 생성)
5. NACL 설정하기
서브넷 레벨에서 HTTP로 외부와 통신하기 위해 NACL에서 80번 포트를 허용합니다. 인바운드를 내 IP로 설정하고, 아웃바운드를 전체로 허용합니다. 기본적으로 NACL은 ASG와 다르게 All Deny 정책에 따르고 있지 않기 때문에 설정해주셔도 되고 안해주셔도 됩니다.
6. 타겟 그룹(Target Group) 생성하기
로드밸런서에 SSL 인증서를 적용하지 않았기 때문에 HTTPS로 통신할 수 없어 HTTP 80으로 타겟 그룹을 생성합니다. 타겟 그룹에 Private 서버 2개를 포함한 후 Target 상태 확인 버튼을 눌러 상태를 확인합니다. 로드밸런서를 생성한 후 연결하지 않아 UNUSED로 떠있는 것을 확인할 수 있습니다.
7. 로드밸런서 생성하기(Application LoadBalancer)
웹 서버 로드밸런싱을 테스트하기 위해 Application LoadBalancer를 생성합니다. SSL 인증서를 적용하지 않았기 때문에 HTTP 80 포트로 설정합니다. 타겟 그룹은 앞에 생성했던 [hyuk-tg-01] 타겟 그룹을 설정한 후 생성합니다.
8. Private 서버 설정하기
베스천 호스트(Bastion Host)에 접속하여 SSH로 Private 서버에 접속합니다.
apt update
apt install nginx
vi /var/www/html/index.nginx-devian.html
텍스트 문구를 svr-01, svr-02로 수정합니다.
systemctl restart nginx
systemctl status nginx
// Init Script에 다음 코드를 넣어 서버를 생성할 때 패키지가 설치되게 끔 해줄 수 있습니다.
// svr-01을 설정한 후 [내 서버 이미지]를 생성한 후 복제해줄 수 있습니다.
Private 서버에 접속하여 다음 코드로 Nginx를 설치합니다.
10. ACG 설정하기
로드밸런서 도메인으로 접속했을 때 웹 서버 화면이 나오지 않습니다. Default ACG에서 기본적으로 SSH에 대한 포트는 허용하고 있지만 HTTP에 대한 포트는 허용되어 있지 않기 때문입니다.
인스턴스 레벨에서 80포트로 들어오는 요청을 허용해야 하며, 80 요청은 ALB를 통해 애플리케이션에 접근하기 때문에 인바운드 IP를 로드밸런서 대역으로 잡아줍니다.
11. NACL 설정하기
인스턴스 레벨에서는 HTTP 포트를 허용해 주었지만 서브넷 레벨에서 엔드 유저의 요청을 받기 위해 NACL을 통해 HTTP 포트를 허용해주어야 합니다. 로드 밸런서를 테스트하는 용도이기 때문에 인바운드/아웃바운드를 내 IP로 설정합니다.
12. 타겟 그룹(Target Group)의 상태 확인하기
타겟 그룹의 상태를 확인하면 Health Check가 정상적으로 이루어져 상태가 UP으로 바뀐 것을 확인할 수 있습니다.
기본적으로 네트워크 설정을 변경하고 헬스 체크가 이루어지는데 시간이 걸리기 때문에 기다려주면 됩니다.
Health Check 시간을 30초로 두고 정상 임계값을 2로 설정했다면 약 1분 뒤에 상태가 UP으로 바뀔 것입니다.
13. Nginx 확인하기
타겟 그룹 상태까지 확인했다면 웹 서버에 접속했을 때 정상적으로 로드밸런서를 통해 부하가 분산되어 서비스에 접근 가능한 것을 확인할 수 있습니다.
이번 시간에는 네이버클라우드플랫폼에 애플리케이션 로드밸런서를 구성하여 웹 서버에 대한 로드밸런싱을 간단하지만 상세하게 Hands-On을 통해 테스트해 보는 실습을 진행했습니다.
다음 시간에는 로드밸런서에 오토스케일링 그룹을 연동하는 실습을 진행하겠습니다.
감사합니다.
'Cloud > Naver Cloud' 카테고리의 다른 글
[NCP] NCP에서 외부(가비아)에서 구매한 도메인 Global DNS에 도메인 등록하기 (0) | 2023.10.30 |
---|---|
[NCP] NCP에서 LoadBalancer와 Auto Scaling Group 손 쉽게 연동하기 (0) | 2023.10.30 |
[NCP] NCP에서 기존 LVM에 LV 용량 증설 및 축소, VG에서 PV 추가 및 제거하기 -Linux (1) | 2023.10.19 |
[NCP] NCP에서 LVM fstab, mount, LV, VG, PV 제거(삭제)하기 -Linux (1) | 2023.10.19 |
[NCP] NCP에서 LVM을 이용하여 스토리지 추가하기 - Linux (2) | 2023.10.18 |
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!