728x90
반응형
이번 글에서는 **네이버 클라우드 플랫폼(Naver Cloud Platform, NCP)**을 활용해 VPC 서버를 생성하고, Init Script를 사용해 서버 공인 IP에 접속 시 특정 문구가 출력되는 과정을 다룹니다.
이 글의 주요 목표는 다음과 같습니다:
- VPC 서버 생성 및 네트워크 설정 방법 이해
- Init Script를 설정하고 결과를 확인하기
1. 네이버 클라우드 플랫폼 VPC 설정 시작하기
1.1 네이버 클라우드 플랫폼 접속
- 네이버 클라우드 플랫폼에 접속합니다.
- 네이버 아이디로 로그인 후, 왼쪽 메뉴에서 "Service"를 선택합니다.
- Networking > VPC로 이동합니다.
2. VPC와 서브넷 생성
2.1 VPC 생성
- VPC 메뉴에서 "VPC 생성" 클릭
- VPC 이름: 생성할 VPC의 이름을 입력합니다. (예: test-vpc)
- IP 주소 범위(CIDR):
- VPC 내부에서 사용할 네트워크 범위를 정의합니다.
- 기본값 10.0.0.0/16을 사용하거나 필요에 따라 변경하세요.(글 하단에 자세한 설명 첨부)
- 유형:
- 기본적으로 일반 VPC를 선택합니다.
- 저장 후 새 VPC가 생성됩니다.
2.2 서브넷 생성
- 서브넷 생성 화면 이동:
- VPC를 선택한 후, "서브넷 생성" 버튼을 클릭합니다.
- 서브넷 설정 항목:
- 서브넷 이름: PublicSubnet으로 설정 (예: test-public-subnet).
- IP 주소 범위(CIDR): 10.0.1.0/24와 같이 적절한 범위를 설정합니다.
- 가용 영역(Availability Zone):
- 서버가 배치될 물리적 데이터 센터를 선택합니다. (예: KR-1, KRS-1 )
- Network ACL:
- 네트워크 접근 제어 규칙을 지정합니다. 기본값으로 둡니다.
- Internet Gateway 전용 여부:
- Internet Gateway 전용 여부에서 "Y"를 선택하면 public이고, "N"를 선택하면 private이 됩니다.
- 용도:
- 일반으로 설정합니다.
3. 서버 생성 및 Init Script 설정
3.1 Init Script 설정
Init Script는 서버 생성 시 초기화를 자동으로 실행합니다.
- Init Script 생성 방법:
- Server > Init Script 메뉴로 이동.
- "Script 생성" 클릭 후 아래 내용을 입력합니다.
- Init Script는 서버 생성시에 한 번 실행되므로 나중에 수정하고 서버를 재시작해도 반영이 안됩니다. 신중이 작성해주세요.
- Init Script 예제:
#!/bin/bash
# Update and upgrade without prompts
export DEBIAN_FRONTEND=noninteractive
sudo apt update -y
sudo apt upgrade -y
# Install Apache2
sudo apt install -y apache2
# Start and enable Apache2 service
sudo systemctl start apache2
sudo systemctl enable apache2
# Create a test index.html file
echo "<html><h1>Welcome to Test NCP Server!</h1></html>" | sudo tee /var/www/html/index.html
# Check Apache2 service status
sudo systemctl status apache2
3.2 서버 생성
- 서버 생성 화면 이동:
- Server > 서버 메뉴로 이동한 후, "서버 생성" 버튼 클릭.
- 서버 설정 항목:
- 이미지 타입: 일반적으로 " OS"를 선택합니다. (Application : os와 함께 특정 app을 함께 서버에 설치해줌, DBMS os와 함께 특정 DMBS를 함께 서버에 설치해줌)
- OS 이미지 타입: Ubuntu 20.04 또는 CentOS 7 중 하나를 선택합니다.
- 서버 타입: 테스트용이므로 standard를 선택한다.
- 인증키 설정:
- 서버 생성 시 사용할 pem 키 파일을 생성하거나 기존 키를 선택합니다.
- 키 생성 예시 (이름 : test-nc-pem-key)
- 키 파일은 한 번만 다운로드 가능하므로 반드시 백업해 두세요.
- MobaXterm이나 Putty같은 원격 프로그램으로 SSH 접속할 경우 필요합니다.
- 네트워크 접근 설정:
- 퍼블릭 서브넷 선택: 이전에 생성한 PublicSubnet을 선택합니다.
- 퍼블릭 IP 할당: "자동 할당" 옵션을 선택해 공인 IP를 부여합니다.
3.3 보안 그룹 설정
- Server > ACG 메뉴로 이동해 보안 그룹 생성:
- 기본 보안 그룹 이름: test-vpc-default-acg
- ACG 설정을 클릭해서 수정합니다.
- 인바운드 규칙 추가:
- SSH(포트 22):
- 역할: 로컬 PC에서 서버에 접속하기 위해 필요.
- 소스: 0.0.0.0/0 (모든 IP 허용).
- HTTP(포트 80):
- 역할: 브라우저로 공인 IP에 접속해 Init Script 설정 결과를 확인.
- RTSP(포트 554):
- 역할: TX2에서 서버로 RTSP 스트림을 송출.
- 저는 이후에TX2와 Gstream 통신을 위해 설정했으나 안해도 무방합니다.
- HTTPS(포트 443):
- 역할: HTTPS 요청 처리.
- 설정 후 저장합니다.
- SSH(포트 22):
- 아웃바운드 규칙:
- 기본적으로 모든 트래픽을 허용하므로 별도의 설정이 필요하지 않습니다.
4. Init Script 테스트
4.1 브라우저에서 테스트
- 서버 생성 완료 후 공인 IP를 확인합니다.
- 예: http://211.188.80.93/
- 브라우저에서 서버의 공인 IP를 입력합니다.
- 결과 확인:
- 정상적으로 설정되었다면, "Welcome to My NCP Server!"라는 문구가 출력됩니다.
5. MobaXterm을 통한 SSH 접속
- MobaXterm 설정:
- Session > SSH를 선택.
- Remote Host: 서버의 공인 IP 입력 (예: 211.188.84.169).
- Port: 22.
- Use private key: 서버 생성 시 다운로드한 pem 키 파일을 선택.
- SSH 접속:
- Username: Ubuntu 서버의 계정은 ncloud
- 비밀번호는 Server에서 관리자 비밀번호를 확인합니다.
- 접속 후 명령어 실행으로 서버 상태 확인 가능.
- Ubuntu 서버 계정 및 비밀번호 확인 방법
1. 경로 : VPC > Server > Server
해당 페이지에서 서버이름 및 서버 공인IP 확인
2. 생성한 서버에 체크박스 선택 후 [서버 관리 및 설정 변경] 클릭하여 '관리자 비밀번호 확인'을 선택합니다.
3. 패키지 생성 시 다운로드 된 Pem Key 파일을 등록하면 관리자 이름(ID) 및 비밀번호 확인이 가능합니다.
6. 추가 설정 (다음 목표)
다음 글에서는 GStreamer를 설치하고, TX2에서 서버로 RTSP 스트림을 송출하며, 이를 로컬 PC에서 확인하는 과정을 다룰 예정입니다.
7. 네이버 클라우드 서버 구축 전 알아둘 기본 개념
CIDR 블록과 서브넷
- CIDR(Classless Inter-Domain Routing): 네트워크의 IP 주소 범위를 정의하는 방식입니다.
- 예: 10.0.0.0/16은 네트워크의 첫 16비트를 네트워크 주소로, 나머지 16비트를 호스트 주소로 사용함을 의미합니다.
- 서브넷은 CIDR 블록을 나누어 더 작은 네트워크 단위를 생성한 것입니다. 예를 들어, 10.0.1.0/24는 256개의 IP 주소를 포함한 서브넷을 나타냅니다.1. CIDR 블록의 구성
- 네트워크 주소: IP 주소의 앞부분으로 네트워크 범위를 나타냅니다.
- 슬래시(/) 뒤 숫자: 서브넷 마스크를 나타내며, 네트워크와 호스트 주소를 구분합니다.
- 10.0.0.0: 네트워크 주소 (이 범위 내의 IP를 네트워크에서 사용).
- /16: 네트워크 부분이 16비트라는 뜻.
2. 슬래시(/) 뒤 숫자의 의미- 16비트는 네트워크에 사용 → 고정된 네트워크 주소.
- 나머지 16비트는 호스트 주소에 사용 → 해당 네트워크에서 사용할 수 있는 IP 주소의 수 결정.
/8 8 24 16,777,216 10.0.0.0 - 10.255.255.255 /16 16 16 65,536 10.0.0.0 - 10.0.255.255 /24 24 8 256 10.0.0.0 - 10.0.0.255 /28 28 4 16 10.0.0.0 - 10.0.0.15 - 사용 가능한 IP 수 = 2^(호스트 비트 수) - 2
- 2개는 네트워크 주소와 브로드캐스트 주소로 예약되기 때문에 실제 사용 가능한 IP는 줄어듭니다.
3. 네이버 클라우드에서 설정 가능한 IP 주소 범위 예시3.1 작은 네트워크 구성 (테스트용)- CIDR: 10.0.1.0/24
- 사용 가능한 IP: 254개 (작은 규모의 테스트 서버에 적합).
- 범위: 10.0.1.0 ~ 10.0.1.255.
- CIDR: 10.0.0.0/16
- 사용 가능한 IP: 65,534개 (회사 네트워크나 대규모 클라우드 구성에 적합).
- 범위: 10.0.0.0 ~ 10.0.255.255.
- CIDR: 10.0.0.0/8
- 사용 가능한 IP: 16,777,214개 (매우 큰 네트워크 환경에 적합).
- 범위: 10.0.0.0 ~ 10.255.255.255.
4. 슬래시 숫자를 기반으로 서브넷 나누기- 예: 10.0.0.0/16을 나누기
- /16 네트워크를 /24로 나누면, 각각 256개의 IP를 가진 서브넷이 생성됩니다:
- 10.0.0.0/24 (256개 IP)
- 10.0.1.0/24 (256개 IP)
- 10.0.2.0/24 (256개 IP)
- CIDR 블록을 기반으로 더 작은 네트워크(서브넷)로 나눌 수도 있습니다.
- 기본값인 10.0.0.0/16 외에도 원하는 범위를 설정할 수 있습니다. 네트워크 규모에 따라 적절한 범위를 선택하세요.
- 슬래시(/) 뒤 숫자는 네트워크 비트를 나타내며, 남은 비트는 호스트 주소에 사용됩니다. IPv4 주소는 총 32비트이므로, /16이라면:
- CIDR 블록은 다음과 같이 구성됩니다:
인바운드 vs 아웃바운드 규칙
- 인바운드 규칙: 서버로 들어오는 트래픽을 제어합니다. 예를 들어, SSH(포트 22) 또는 RTSP(포트 554) 접속을 허용하는 설정입니다.
- 아웃바운드 규칙: 서버에서 나가는 트래픽을 제어합니다. 기본적으로 아웃바운드는 모든 트래픽이 허용됩니다.
하이퍼바이저 종류
- 네이버 클라우드에서는 다양한 하이퍼바이저를 기반으로 서버를 제공합니다.
- XEN, RHV: 안정적이고 전통적인 하이퍼바이저.
- KVM: 고성능과 유연성을 제공하며, 최신 기술을 지원.
- g1, g2 서버는 XEN/RHV 기반, g3 서버는 KVM 기반으로 동작합니다.
'임베디드 관련 카테고리 > 네이버 클라우드 플랫폼(NCP)' 카테고리의 다른 글
RabbitMQ와 MQTT의 역할과 용도 (0) | 2024.12.14 |
---|---|
DNS, Zone, URL Path, 그리고 포트별 서비스 구분에 대한 완벽 가이드 (1) | 2024.12.13 |
VPC(가상 사설 클라우드), VPN(Virtual Private Network)의 관계 (0) | 2024.12.10 |
[네이버 클라우드 VPC: Network ACL 이해 및 설정 가이드] (0) | 2024.11.28 |
원격 서버 보안 규칙 설정(인바운드 규칙, 아웃바운드 규칙) (0) | 2024.11.27 |
댓글