NCP Hands on Lab Materials

안녕하세요~ 오늘은 베스핀글로벌 D&A실 변광수님이 작성해 주신 NCP Hands on Lab Materials에 대해 알아보겠습니다 🙂

Lab 1 : 서버 생성 및 접속 (15분)

1. 웹서버 ACG 만들기

All Product > Server > ACG 선택 > +ACG 생성 선택
“ACG 이름” 에 lab1-acg 라고 입력

‘Lab1-acg’ ACG를 선택 후 상단의 “ACG 설정”을 선택합니다.

다음 2 개의 룰을 설정합니다.
프로토콜 : ICMP, 접근 소스 : 0.0.0.0/0
프로토콜 : TCP, 접근 소스 : 0.0.0.0/0 허용 포트 (서비스) : 80 프로토콜 : TCP, 접근 소스 : myIp 허용 포트 : 22

2. 스크립트 만들기

Server > Init Script를 선택합니다.
스크립트 이름 : lab-script
OS 타입 : Linux
스크립트 내용
스크립트의 내용은 서버 부팅 후 아파치 웹서버와 PHP를 설치하고 테스트 페이지를 다운받은 후,
설정 내용을 수정 후 아파치 웹서버를 기동하는 스크립트입니다.

3. 웹서버 만들기

서버탭에서 “서버생성”을 눌러 서버를 만들 수 있습니다.
이미지는 Centos-7.3-64를 선택합니다.

서버 타입과 요금제를 선택해 주세요.
서버 세대는 G1을 선택해 주세요.
서버 타입은 vCPU 2개, 메모리 4GB, 디스크 50GB 를 선택해 주세요.
서버 개수는 1, 서버 이름은 lab1-org1 입니다.
Script 선택에 lab-script를 선택해 주세요.

새로운 인증키 생성에서 인증키 이름에 NCP오늘날짜 (예, ncp20200325)을 입력하고 인증키 생성 및 저장을 클
릭합니다.

방화벽 설정에서 “보유하고 있는 ACG중에서 선택”을 선택하시고 “lab1-acg”을 선택해 주세요.

  • 한 번 ACG에 맵핑된 서버는 다른 ACG에 맵핑할 수 없습니다.

서버 생성을 클릭하면 서버가 만들어집니다.

4. 공인 IP 설정

먼저 서버 탭에서 좌측 메뉴의 “Public IP”를 선택합니다.
상단의 “공인 IP 신청”을 선택합니다.

적용 서버 선택에 lab1-org1을 선택합니다.

웹 브라우저를 이용해 부여 받은 공인 IP로 접근해봅니다.

5. 이미지 생성

Lab1-org1 서버를 선택한 후 상단 메뉴의 정지를 선택
정지된 lab1-org1 서버를 선택하고 상단의 서버 관리 및 설정변경에서 “내 서버 이미지” 선택
서버 이미지 이름 : lab1-org-image

Server > Server Image 메뉴에서 lab1-org-image가 만들어진 것을 확인할 수 있습니다.

6. 내 서버 이미지로 서버 만들기

Lab1-org-image 이미지를 이용하여 lab1-org1와 동일한 서버를 만들고자 합니다.
Compute > Server > Server Image 메뉴에서 lab1-org-image를 선택하고 상단 메뉴의 “+서버생성”을 클릭합니다.
Zone : KR-2
스토리지 종류 : SSD
서버 이름 : lab1-org2
서버 타입 : Standard Vcpu 4개, 메모리 4G

인증키는 ‘보유하고 있는 인증키 이용’을 클릭한 후, lab1-org 서버 생성시에 다운받은 인증키를 선택합니다.
ACG는 lab1-acg를 선택합니다.

7. Lab1-org에 추가 스토리지 추가

Lab1-org 서버를 선택한 후 상단 메뉴의 서버 관리 및 설정 변경을 선택 후 스토리지 추가 선택
스토리지 종류 : SSD
스토리지 이름 : lab1-org-disk1
크기 : 10GB

서버를 클릭하면 스토리지가 생성된 것을 확인할 수 있습니다.

Lab 2 : DNS와 로드 밸런서 구성 (15분)

1. 로드 밸런서 생성

웹 서비스의 가용성을 확보하기 위한 로드 밸런서를 구성하고자 합니다.
All Product > Networking > ‘Load Balancer’를 선택합니다. 그리고 상단의 로드 밸런서 생성을 선택합니다.

로드 밸런서 이름은 “lab-lb” 로 합니다.

서버리스트에서 “lab1-org1”과 “lab1-org2”를 찾아 더블클릭하여 로드 밸런서에 추가합니다.

정상적으로 적용이 되면 다음과 같이 상태는 운영 중으로 나오게 됩니다.
로드 밸런서에 접속하기 위해서는 도메인 이름을 복사하여 웹 브라우저 주소창에 입력합니다.

웹 브라우저에서 접속하게 되면 접속자의 IP 주소가 변경된 것을 확인할 수 있습니다.

2. 도메인 등록

사전에 ncloudedu.com 도메인이 등록되어 있고 ncloudedu.com에서 교육 계정별도 도메인을 생성하여 위임하였습니다.
따라서, 도메인 등록기관에서 도메인을 등록하는 과정은 완료되었으며 LAB에서는 도메인을 등록하고 호스트를 등록하겠습니다.
Networking > DNS 에서 “도메인 추가” 선택

도메인 이름에 계정명.ncloudedu.com 입력  (예시) edu01.ncloudedu.com

다음과 같이 네임서버 기본 정보가 채워진 것을 확인

3. 서버를 등록

Networking > DNS 에서 상단의 “레코드 추가”를 선택하고
레코드명 : server1
레코드타입 : A
레코드값 : lab1-org1 서버 공인 IP

입력 후 “레코드 추가”선택
웹브라우저에서 server1.eduxx.ncloudedu.com 으로 접속 확인

4. 로드밸런서를 등록

Networking > DNS 에서 상단의 “레코드 추가”를 선택하고
레코드명 : www
레코드타입 : CNAME
레코드값 : 로드밸런서 접속정보

입력 후 “레코드 추가” 선택
웹브라우저에서 www.eduxx.ncloudedu.com 으로 접속 확인  (예시) www.edu01.ncloudedu.com

Lab 3 : 이벤트 대응과 비용 최적화를 위한 오토 스케일링 구성 (30분)

1. Launch Configuration 구성

Auto Scaling > Launch Configuration 선택 후 Launch Configuration 생성

OS는 Centos-7.3-64 선택
스토리지 종류 및 서버타입 선택
Init Script에 lab-script 선택

Launch Configuration 이름에 lab6-lc 입력

ACG는 lab1-acg 선택

2. Auto Scaling Group 생성

Auto Scaling > Auto Scaling Group 선택 후 Auto Scaling Group 생성
Launch Configuration 선택에서 lab6-lc 선택, 하단의 다음을 선택

그룹설정에서 오토 스케일링의 범위 및 서버가 속할 로드밸런서 선택

Auto Scaling Group 이름 : lab6-asg
최소 용량 : 1  최소 생성 서버수
최대 용량 : 4  auto scalling 그룹 내에서 생성될 수 있는 최대 서버 개수의 제한
기대 용량 : 2  2대씩 생성되는 것
쿨다운 기본값(초) : 10
헬스 체크 보류 기간 : 60초
헬스 체크 유형 : 로드밸런서
로드밸런서 : lab-lb

정책/일정 설정에서 정책 설정을 선택 후
서버 수 증가 정책에서
정책 이름 : add
Scaling 설정 : 증감 설정 1대 추가
서버 수 감소 정책에서
정책 이름 : sub
Scaling 설정 : 증감 설정 1대 반납

완료를 하게 되면 Server > Server 에서 계속해서 웹 페이지를 통해 부하를 생성하면, 서버 4대로 생성되는 것을
확인할 수 있습니다.

3. Group Event 설정

조건에 따른 행동 설정을 위해 이벤트 조건을 만들어 보겠습니다.
Montoring > Group Event Setting 에서 lab6-asg를 선택하고 상단에 “그룹 이벤트 설정”을 선택합니다.

이벤트 항목 : CPU
이벤트 세부항목 : used(%)
임계치 : 5%
비교 : 이상
지속시간 : 1분
정책 : add
로 설정합니다.

4. 부하 발생

로드밸런서 접속주소 페이지에 접근하면 다음과 같은 화면이 출력됩니다.

일정 시간이 지나면 서버의 부하가 감소하여 서버 대수가 감소하는 것을 확인할 수 있습니다.

Lab 4 : Cloud DB의 활용

1. Cloud DB (CDB) 구성

기존에 DB 서버가 웹서버와 한 서버에 구성되어 있다면 가용성을 위해 DB서버를 웹서버로부터 분리하는 작업을
진행하여야 합니다. 이를 위해 실습에서는 Cloud DB for MySQL를 이용한 DB서버 구성을 진행합니다.

Cloud DB for MySQL을 선택하고 상단의 “DB Server 생성”을 선택합니다.

DB서버 이름은 edu로 하고 DB 서비스 이름은 ncp-edu로 합니다.
스토리지 타입은 HDD 혹은 SSD 를 선택합니다.
기본 DB명에는 lab2db를 입력합니다.

USER ID는 student로 하고 HOST에는 ‘%’ 를 입력합니다. 암호는 abc123!@# 으로 합니다.
USER ID는 DB 접속 시 사용하는 아이디이며 호스트는 MYSQL에서 접근 제어를 위한 부분입니다.
%는 모든 호스트에서 접근 가능하도록 하는 설정입니다.

CDB가 생성되면 관련 ACG도 추가되며 접속하고자 하는 서버를 ACG에 추가하여야 합니다.
다음 그림과 같이 ACG에는 DB관련 ACG가 새로 생성된 것을 확인할 수 있습니다.

ACG 설정을 누르고 ACG를 다음과 같이 추가합니다.
프로토콜 : TCP
접근 소스 : lab1-acg
허용포트 : 3306

실제로 접속을 해보겠습니다.
접속을 위해서는 mysql client가 설치되어 있어야 하는데 init script를 통해 설치 완료되어 있습니다.
mysql –u student –p –h RDS접속정보
RDS 접속정보는 콘솔에서 RDS 정보를 통해 확인할 수 있습니다.

그리고 다음 명령어로 lab2db가 생성되어 있음을 확인할 수 있습니다.

Lab 5 : 안전한 서버 접속을 위한 SSL VPN 사용

1. 나만의 SSL VPN 서비스 구성

All Product > Security > SSL VPN 선택

상단의 “+ SSL VPN 생성” 으로 SSL VPN 설정

SSL VPN 설정 내용을 확인하고 설정
상품선택은 : User ID 최대 3개
인증방식 : 일차 인증 (ID/PW)

일차 인증은 아이디와 패스워드 기반으로 접속하고 이차 인증은 일차 인증에 추가적으로 SMS나 메일로 OTP 코드를 확인하여 인증하고 접속하는 방식

2. 계정 생성

하단의 화면에서 생성한 SSL VPN을 선택 후, 상단의 “사용자 설정” 선택

생성할 사용자의 아이디와 패스워드를 입력
아이디 : eduxxxx
패스워드 : 임의의 패스워드
추가 후 하단의 적용 버튼 선택

3. VPN 접속 후 서버 접속을 위한 ACG 수정

서버에 접근하기 위해서는 서버의 ACG에서 VPN 대역에 대해 허용을 해주어야 합니다.
따라서 다음과 같이 ACG에 VPN 대역을 추가합니다.
VPN IP 대역 확인

위의 그림과 같이 10.62.6.80/28 이 VPN IP 대역입니다.
Lab1-acg 에 다음 룰을 추가합니다.
프로토콜 : TCP, 접근 소스 : 10.62.6.80/28 허용 포트 (서비스) : 1-65535 (모든 TCP 통신에 대해 허용)
프로토콜 : ICMP, 접근 소스 : 10.62.6.80/28

4. SSL VPN 접속

SSL VPN 접속을 위해서는 전용 프로그램을 설치하여야 합니다. 프로그램 위치는 포털 > 사용자가이드에서 하단
왼쪽 메뉴에서 Security > SSL VPN > SSL VPN Agent 프로그램(window용/Mac OS용)을 선택 설치 합니다.

Agent 다운로드 후 압축해제 후 설치를 합니다.

설치가 완료 후 프로그램을 실행하면 다음과 같이 로그온 창이 나타압니다.

SSL VPN 상품 생성시 설정한 ID/PW로 로그온 한 후, 서버의 비공인 IP로 ping check를 하게 되면 ping이 정상
적으로 되는 것을 확인할 수 있습니다.

Demo 1 : NAS 구성 (30분)

1. NFS 생성

Storage > NAS > NAS Volume 에서 NAS 볼륨 생성을 선택

볼륨명 : lab3nfs
볼륨 용량 설정 : 500GB
프로토콜 설정 : NFS

ACL 설정 서버에서 lab1-org, lab1-org2 선택

2. 서버에서 마운트

먼저 lab1-org에서 마운트를 진행합니다.
CentOS 6.x 이상의 Linux에서 NFS를 사용하기 위해서는 기본적으로 nfs-utils 패키지를 설치하여야 합니다.
설치 명령어는 다음과 같습니다.

yum install nfs-utils –y

<< 중략 >>

참고로 CentOS 5.x 버전에는 이미 설치되어 있습니다.
NFS를 사용하기 위해서는 RPC 데몬이 기동되어야 합니다.
기동시키는 명령어는 다음과 같습니다.

systemctl start rpcbind

systemctl enable rpcbind

NAS를 마운트하기 위해서는 먼저 마운트 포인트를 만들어 주어야 합니다.
mkdir 명령어로 먼저 마운트 포인트를 생성 합니다.
/mnt/nas 라는 디렉터리를 만듭니다.
mkdir /mnt/nas
관리 콘솔에서 NAS 신청을 통해 받은 볼륨명과 생성한 마운트 포인트를 이용하여 마운트를 합니다. 마운트는 다음과 같습니다.
mount -t nfs [마운트 정보] [마운트 포인트]
예를 들어, 10.10.10.10:/vol/nas 라는볼륨을 받았다면 다음과 같은 명령으로 마운트 할 수 있습니다.
mount -t nfs 10.10.10.10:/vol/nas /mnt/nas

참고로 위 캡쳐 화면의 NAS 마운트 정보를 이용할 경우, 하기와 같이 마운트 명령어를 이용하면 됩니다.

그리고 lab1-org2도 위의 작업을 동일하게 진행합니다.
최종적으로 공유가 잘 되는지 확인하기 위해 lab1-org 에서 다음 명령어를 수행합니다.
cp /var/www/html/* /mnt/nas
그리고 lab1-org2 에서 다음과 같은 명령어를 수행합니다.
Ls /mnt/nas
그러면 lab1-org에서 복사한 파일을 lab1-org2에서도 볼 수 있는 것을 확인할 수 있습니다.

3. CIFS 생성

Windows의 경우 CIFS를 생성하여야 합니다.

NAS 볼륨 생성을 눌러 볼륨을 생성합니다.
볼륨명 : lab3cifs
볼륨 용량 설정 : 500GB
프로토콜 설정 : CIFS
그러면 NFS와 다르게 ID와 패스워드를 설정하는 화면에서
ID는 부여 받은 교육 계정명을 입력하고
패스워드는 해당 계정의 패스워드를 입력합니다.

4. 네트웍 드라이브 연결

CIFS는 Windows를 위한 공용 스토리지인만큼 Windows 서버를 만들어야 합니다.
Compute > Server > Server 탭에서 서버 생성
다음과 같이 Windows 서버 생성 (win-2008-64-R2)

서버이름 : lab3-win
ACG : lab1-acg
서버가 생성되면 서버 접근이 가능하도록 “포트포워딩 설정”을 합니다.

서버에 로그인 후 다음과 같이 Windows에서 네트워크 드라이브로 연결을 합니다.

Windows 탐색기에서 마우스 오른쪽 버튼 클릭 후 “네트워크 드라이브 연결”을 선택합니다.
네트워크 드라이브 연결 화면에서 “연결할 로컬 드라이브”를 선택합니다.
관리 콘솔에서 NAS 신청 시 받은 볼륨 정보를 폴더에 입력합니다.
로그온할 때 다시 연결을 선택하게 되면 리부팅후 로그인시에 자동으로 연결을 하게 됩니다.
연결시 자격증명을 묻는 대화창이 열리는데 NAS 볼륨 생성시 입력한 계정과 패스워드를 입력합니다.

Demo 2 : 서비스 안정성을 확보하는 모니터링 (30분)

1. 서버 기본 모니터링

Compute > Server 에서 서버 목록중 lab1-org나 lab1-org2를 선택하고 상단의 모니터링을 클릭

기간 선택에서 다양한 기간 혹은 기간을 직접 입력하여 원하는 시간대의 모니터링 값을 살펴볼 수 있습니다.

서버 기본 모니터링에서는 CPU 사용률, 네트워크 트래픽, 메모리 사용률, 스왑메모리 사용률, 디스크 사용률, 디스
크 I/O를 확인할 수 있습니다.

2. 로드밸런서 기본 모니터링

Networking > Load Balancer에서 lab1-lb를 선택하고 상단의 모니터링을 클릭

로드밸런서 모니터링에서는 현재 동접, 초당 접속자, 트래픽을 확인할 수 있습니다.

3. 통보 대상 설정

Management > Monitoring > Notification Recipient 에서 대상자 추가 버튼을 클릭합니다.

대상자 이름 : 수강자 이름
이메일 주소 : 수강자가 바로 확인 가능한 이메일 주소
휴대폰 번호 : 수강자 휴대폰 번호
인증번호 전송을 클릭하고 인증번호 수신 후 인증번호 입력란에 인증번호 입력 후 확인 클릭. 후 등록 선택하면 이벤트 발생 시 알람을 받을 대상자가 추가됩니다.

4. 서버 상세 모니터링

Compute > Server 에서 서버 목록중 lab1-org 혹은 lab1-org2를 선택하고, 상단의 서버 관리 및 설정 변경을
클릭하여 상세 모니터링 설정 변경을 선택

Management > Monitoring > Server Dashboard에서 가시화된 모니터링값 확인

5. 이벤트 알람 설정

Management > Monitoring > Configuration > New Observation 선택, 모니터링 설정 할 서버 이미지 선택
Configuration > Create Observation 클릭

Lab1-org와 lab1-org2를 선택하고 하단의 “감시 설정” 클릭

우측의 추가 클릭 후 분류 항목에서 ‘Ping fail’ 선택 후 아래 통보설정 클릭

통보 설정 화면에서 담당자 이름에 수강자 이름을 선택 후 우측 추가 버튼 클릭 후, 아래 최종 확인 클릭

모니터링 통화 설정의 확인
Compute > Server > Server 에서 서버 목록중 lab1-org을 선택하고 상단의 “정지” 선택
SMS로 Ping Fail 메시지 확인 및 메일 확인
Management > Monitoring > Server Event Occurrence 에서 이벤트 발생 내역 및 통보된 내역 확인

Demo 3 : CLA를 통한 로그 수집 및 분석 (15분)

1. 분석할 로그와 서버 설정

Analytics > Cloud Log Analytics > Management 선택한 후
서버 목록중 lab1-org 선택하고 상단의 수집설정을 클릭

Syslog, Apache, Custom Log를 순서대로 선택
Custom Log 항목에서
Log Type : Secure
Log 경로 : /var/log/secure 입력 후 추가 후, 적용을 클릭

2. Cloud Log Analytics 상품을 사용하기 위한 서버 내 agent 설치

하기 화면의 가이드 처럼 서버에 접속하여 실행

서버 재시작이 완료되면 lab1-org 서버에 SSH로 접근하고, 웹페이지에 접근을 수차례 시도합니다. 그 후 CLA 페
이지에서 로그가 수집되는 것을 확인할 수 있습니다.

감사합니다 🙂

문의: info@bespinglobal.com | 대표번호: 02-1668-1280

Leave a Comment