NCP 네트워크 서비스를 퀵하게 하나씩 사용해 보자
개인적으로 꼭 필요한 것만 기입한다.
빠르게 작성하고 개인이 할 수 있도록 하기 위해~
기존 doc들은 너무 복잡하다. 따로따로 떨어져 있고.
이 글은 다른것과 관련 없이 그대로 따라하면 되도록 작성한다.
1
VPC를 여유있게 만들고, 서브넷으로 잘 나누는 것이 중요하다.
2
네이버 클라우드의 경우는 로드밸런서의 경우 별도의 서브넷이 필요하다.
이 부분에 대한 ip도 고려해야 한다.
예를 들어 10.100.0.0/23으로 VPC를 만들고 , 10.100.0.0/24 , 10.100.1.0/24로 public , private subnet을 만든다.
그러면, 로드밸런서용 별도의 서브넷을 만들 IP가 없다.
3
10.0.0.0/16으로 VPC 해서 하면 안 되나요?
된다.
테스트 환경에서는 된다.
하지만, 실무에서는 여러 개발팀별로 ip블록이 달라야 하고, 사내망과 온 프래 미스 IP 블록과 달라야 한다.
IP 블록이 달라야 서로 통신을 할 수 있다.
IP 중복이 생기면 방법이 없다.
그래서 , 실무에서는 전체적인 IP 관리 체계가 중요하고, 할당이 중요하다. 서브 네팅이 중요하다.
4
로드밸런서
외부 사용자가 사이트 접속을 하면, 서버에 대해 분산 처리를 해주는 장비이다.
보통 L4라고 부른다.
보통 사이트 도메인이 로드밸런서 장치로 설정한다.
이후 로드밸런서가 뒷단에 서버에 접속해 응답을 주는 것이다.
5
네이버 클라우드에 위저드 형식으로 VPC 구성하는 것이 생기겠지만 그전까지는 수동으로 만들도록 하자.
네트워크 개념을 알아야 구성하므로, VPC와 서브넷에 대해서는 잘 알아 두도록 해야 한다.
디폴트 VPC제공이 없고, 위저드도 없어서 네트워크를 처음 접하는 개발자나 학생, 직장인은 쉽지 않다.
그래서, 매번 네트워크 생성부터 설명 한다.
이 부분이 어려워 초기 포기~ 하는 분이 많다. - -
여기서 쉽게 설명이 되니 잘 따라오기 바란다.
6
기존에 VPC 네트워크가 있다면 사용하면 된다.
여기서는 이해를 돕기 위해 VPC생성부터 시작한다.
왼편 Platform을 VPC로 선택하고 시작하자~
자~
이제 VPC, 서브 네팅 , NAT , 서버 생성, 로드밸런서 생성 해 웹서비스를 만들어 보자~
<2> 로드밸런서 사용을 위한 VPC 생성
1
VPC 생성
VPC > VPC Management > vpc > seo-web-vpc
10.100.0.0/22
10.100.0.0/22는 C-Class 4개를 사용할 수 있다.
10.100.0.0/24 - public
10.100.1.0/24 -private
10.100.2.0/24 - LoadBalancer
10.100.3.0/24
2
VPC > Subnet Management
seo-web-pub1
10.100.0.0/24
public으로 생성
3
seo-web-pri1
10.100.1.0/24
internet Gateway 전용 여부 N(Private)
일반
4
NAT Gateway 생성
seo-web-ngw1
Zone은 KR-2로 한다.
Subnet을 더 만든다면 NAT 도 하나 더 만들고, Zone은 다른 곳에 하나 더 추가하는 게 이중화하는 것이지요~
여기서는 1개만 만듭니다.
NAT의 경우 Public에 만든다고 지정하는 부분이 없네요~ Public에 만들어지나 봅니다.
AWS에서는 인터넷이 되게 하기 위해서는 Public으로 지정해 만들어야 합니다.
간혹 private에 만들고 안된다고 하는 경우가 있습니다 ㅎㅎ
5
VPC > 라우팅 테이블 한번 봅시다.
seo-web-vpc-default-public-table > Routes 보면
0.0.0.0/0 IGW
10.100.0.0/22는 LOCAL 이 보인다.
모든 패킷은 IGW인터넷 게이트웨이를 통해 나갑니다
seo-web-vpc-default-private-table > Routes 보면
10.100.0.0/22 LOCAL 1개가 보인다.
Pivevate subnet은 디폴트로는 내부 통신만 가능합니다.
Private subnet의 서버가 외부로 접속해야 하니까 NAT1을 통해 외부로 나가도록 라우팅을 추가해주자.
seo-web-vpc-default-private-table
Routes 설정 클릭 > 0.0.0.0/0 > NATGW 선택 > seo-web-ngw1 선택 > 생성 > 확인
// 뭐 되긴 되는데. 뭔가 좀 어색하다. 선택 , 선택을 하는 부분을 한 번에 뭔가 할 수 있지 않을까? 그냥 생각이다.
6
Private Subnet에 서버 2대 만들고 로드밸런서를 연결해보자.
생성시 숫자에 2를 넣으면 한번에 2대가 같이 만들어진다.
7
Private Subnet에 있는 서버는 직접 접속이 안되므로, Public Subnet에 jump host 1대를 구축하자
jump host 1대를 통해 Private Subnet에 있는 서버에 접속하여 설정하자.
8
로드밸런서용 서브넷 생성필요
VPC > Subnet Management > Subnet 생성 >
seo-web-lb1-subnet
IP 주소 범위? 서브넷 블록을 하나 만들어야 한다.
10.100.2.0/24
Internet Gateway 전용 여부를 N(Private)로 해야 , 용도에서 LoadBalancer를 선택할 수 있다.
N (Private)
LoadBalancer 선택
참고
https://brunch.co.kr/@topasvga/1393
<3> Private Subnet에 서버 2대 생성하자.
1
(선택)
서버 생성될 때, 바로 웹서비스까지 설치되도록 하는 스크립트 생성(선택)
왼편 Server > Init Script > Script 생성 > seo-web-Script
#!/bin/bash
yum -y install httpd php mysql php-mysql
systemctl enable httpd
cd /var/www/html
wget http://211.249.50.207/lab/lab.tgz
sleep 10
tar xvfz lab.tgz
cat phpadd >> /etc/httpd/conf/httpd.conf
systemctl start httpd
2
왼편 Server > 서버 생성 > VCP에서 기 생성한 VPC 선택 > Subnet에 서버 개수 2개로
서버 이름
seo-web
Network Interface 추가
Scripte 선택 (이 부분은 꼭 안 해도 되나 서버에
방금 만든 seo-web-Script 선택 )
인증키 선택
보안 그룹 선택
3
seo-web001
seo-web002 가 생긴다.
(5분)
<4> 로드밸런서를 생성해보자
위에서 만든 서버 2대를 타깃 그룹으로 등록한다.
타깃 그룹을 먼저 만들면 편하다.
1
타깃 그룹을 생성해야 한다.
왼쪽 Products & Services > Load Blancer > 타깃 그룹
Target Group 생성 >
seo-web-tg1
VPC Server(서버로 지정)
seo-web-vpc
HTTP
80
HTTP Method??? HEAD
헬스체크
30초 주기 , 정상 임계값 2, 실패 임계값 2
타깃 추가 > 서버를 선택하고 "> " 표시를 눌러서 추가한다.
2
이제, 로드 밸런서를 생성하자.
왼쪽 Products & Services > Load Blancer > 로드 밸런서 생성
3
3가지 종류가 있다.
우리는 여기서 애플리케이션 로드 밸런서를 생성한다.
왜냐면 http 80 서비스 니까~
네트워크 로드밸런서를 선택하면 타깃 그룹에서 아무것도 안 보인다.
애플리케이션 로드밸런서
HTTP 및 HTTPS 트래픽을 사용하는 웹 애플리케이션을 위한 유연한 기능이 필요한 경우 선택하세요.
네트워크 로드밸런서
초고성능, 고정 IP 주소가 필요한 경우 선택하세요.
네트워크 프락시 로드밸런서
프락시 방식의 네트워크 로드밸런서입니다. TCP, TLS를 지원합니다.
3
seo-web-alb1
서브넷 선택 > KR-2에 서브넷을 만들었으므로 seo-web-lb1-subnet 10.100.2.0/24가 있다.
선택
80 추가 누른다.
<5> 타깃 상태 확인
1
Load Balancer > Taeget Group 가면 Target 상태 확인이 있다. > 클릭 > down 상태
2
서버에 로그온 해 확인하자.
직접 서버에 접속할 수 없으므로, public subnet에 서버 1대 만들고 해당 서버를 통해 들어가자.
3
웹서버를 설치하고 LB 이름으로 접속해보자.
서버 > 서버 생성 > public > 공인 IP 할당 > 생성
putty로 공인 ip 가진 서버 접속
공인 IP 접속하려고 공인IP부분 아이콘을 복사인 줄 알고 눌렀는데.. (AWS에서는 IP 복사입니다)
공인 IP 접속 해지할까요? 나오네요. ㄷㄷㄷㄷㄷㄷㄷㄷㄷ
클릭했다간 공인 IP 연결 해지 됩니다. ㅋ
4
암호는 root , 서버 관리 및 설정 변경에서 암호 확인
서버마다 암호가 틀리군요
5
서버 들어가 보니 웹이 떠있는데 안됨.
[root@seo-web001 ~]# ps -ef |grep httpd
root 2575 1 0 13:12? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2577 2575 0 13:12? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2578 2575 0 13:12? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2579 2575 0 13:12? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2580 2575 0 13:12? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2581 2575 0 13:12? 00:00:00 /usr/sbin/httpd -DFOREGROUND
root 3947 3927 0 13:56 pts/0 00:00:00 grep --color=auto httpd
6
서버 보안 그룹 보니 80이 안 열려 있음.
Server > ACG (보안 그룹) > seo-web-vpc-default-acg > inbound에
0.0.0.0/0 80 허용
7
다시 Load Balancer > 타깃 그룹 > 해당 타깃 그룹 클릭 > Target 상태 확인 > UP
Load Balancer
접속 정보
seo-web-alb1-7969681-4bb8706aafaf.kr.lb.naverncp.com
8
웹브라우저로 접속됨
완료
<6> 삭제 순서
1
로드 밸런서 삭제
2
타켓 그룹 삭제
3
Server > 서버 정지 > 반납
4
Route Table에서 Target으로 지정된 Route 정보를 모두 삭제
seo-web-vpc-default-private-table 에서 0.0.0.0/0 NAT로 되어 있는 부분 수정해서 삭제 필요
seo-web-vpc-default-private-table 자체는 default라 삭제 불가
(default Route Table 은 삭제할 수 없습니다.)
5
NAT Gateway 삭제
6
서브넷 삭제
7
VPC 삭제
리소스가 남아 있다면..
"Endpoint 가 전부 반납되지 않아 삭제가 불가능합니다. 라고 나온다."
<7> 개인 정리
1
서버 생성 시 80은 기본 허용이 아니다.
서버 생성 시 ACG 보안 그룹에서 80을 허용 하자 ^^
이 부분은 다른 클라우드와 동일.
2
네이버 클라우드는 LB를 사용하기 위해 별도 서브넷을 만들어 줘야 한다.
IP 블록의 여유가 있어야 한다.
3
http 80 웹 서비스는 ALB 애플리케이션 로드 밸런서를 만들어야 한다.
NLB 네트워크 로드밸런서를 만들면 타깃 그룹에서 리스트가 안 보인다.
4
NCP도 AWS처럼 리소스 삭제가 난해 하다~
Azure 처럼 리소스를 한번에 모아서 , 한번에 날리는 기능이 있으면 좋겠다~
다른 자료 보기
https://brunch.co.kr/@topasvga/1865
감사합니다.