클라우드 첫걸음, NHN Cloud로 시작하기 - Part2

minj-j·2023년 8월 7일
0

NHN Cloud

목록 보기
2/2
post-thumbnail

웹 사이트 구축 전, 네트워크를 구축하는 리전이 어디인지를 확인한다.
앞으로 진행할 실습에서는 평촌 리전에서 진행한다.

LAB1. 소규모 웹 사이트 구축하기 #1 - 네트워크 환경 구축


위의 사진과 같은 시나리오로 네트워크를 구축하기

  1. 인스턴스 서비스를 선택하면서 자동으로 생성된 default VPC를 Management VPC로 바꾸고 Service VPC를 하나 더 만든다.
  2. public network로 service_vpc용 인터넷 게이트웨이를 만들어 준다. default VPC는 인터넷 게이트웨이가 자동 할당되어 있어 별도 작업은 필요하지 않다.
  3. 만든 service_vpc용 인터넷 게이트웨이를 service_vpc와 라우팅 연결한다.
  4. default 서브넷을 Management용 서브넷으로 이름을 변경하고 Service용 서브넷도 2개 생성한다.

여기까지 하면 위와 같은 시나리오로 네트워크를 구축할 수 있다.

다음은 위의 사진과 같이 서브넷 마다 인스턴스를 설치하고 각 VPC를 피어링을 통해 통신시키고자 한다.

인스턴스 설치 후 피어링으로 VPC간 통신시키기
1. mgmt-server라는 이름의 인스턴스를 생성한다. 보안그룹에는 내 IP로 22번 포트에서 들어올 수 있도록 허용하는 규칙을 추가해 준다.
2. web1도 같은 방식으로 만들어 준다.

DB 서버 만들기
1. 인스턴스 만들기에서 공용이미지 > DBMS > MariaDB를 설정한 후 가장 위에 있는 이미지를 선택한다.
2. 가용성 영역은 KR-a로 선택한다.
3. Private_subnet에 만들 예정이기 때문에 해당 서브넷 네트워크를 선택한다.
4. db용 보안그룹을 추가해 준 뒤 인스턴스를 생성한다.

mgmt 서버에서 web1과 db 서버에 접속하기 위해서는 키페어를 mgmt 서버에 올려야 한다.
그리고 ssh -i [키페어] centos@[각 서버 IP 주소] 로 접속하는 것이다.

전송한 키는 chmod로 관리자만 접근할 수 있게 권한을 변경해야 한다.

  1. mgmt 서버와 service 서버가 연결될 수 있는 피어링 게이트웨이를 생성한다.

  2. 각 VPC의 라우팅 테이블에 피어링 게이트웨이 정보를 추가한다.

[ mgmtVPC 라우팅 정보]

[ service-VPC 라우팅 정보]

이렇게 구성하면 mgmt 서버에서 ssh 명령으로 web1과 db서버에 접근해보자

먼저 각 보안그룹에 mgmt 서버의 IP 주소로 22번 포트에서 들어올 수 있도록 하는 규칙을 추가해야 한다.

이렇게 보안 그룹을 수정하면

다음과 같이 mgmt 서버에서 web1과 mydb에 접속할 수 있게 된다.

web1에서 DB서버로 접속하기

3306 포트로 web1에서 db서버로 접속을 할 것이다.

  1. 보안그룹에 3306 포트에서 web1의 IP로 db서버에 접근할 수 있도록 규칙을 추가해 준다.
  2. myssql -h [db서버주소] 아이디 -p 명령으로 웹 서버에서 db 서버로 접속한다.

php 웹페이지에 자신의 DB 내로 데이터가 저장되도록 하기
1.web서버를 만들때 미리 돌린 사용자 스크립트로 만들어진 php파일을 찾는다 -> /var/www/html/process_create.php 에 있음
2. vi로 편집기를 열어 DB가 나의 db서버 IP로 연결될 수 있도록 db IP 정보를 수정해 준다.

이미지 생성하기
이미지를 만들 때는 이미지를 만들 인스턴스를 중지하고 진행해야 한다.

생성한 이미지로 KR-b 가용성 영역에 웹서버 하나 더 만들기
내가 생성한 이미지로 KR-b 영역에 똑같은 웹서버를 하나 더 만든다.
이렇게 하면 KR-a 영역에서 장애가 생겨도 KR-b 영역으로 옮겨가 안정적으로 서비스를 제공할 수 있게 된다.

Load Balancer 생성하기
로드 밸런서 : 대규모 트래픽을 분산시켜주는 기능

로드 밸런서를 사용하는 이유 :
상태 확인 주기 순서대로 트래픽을 점검하여 해당 서버의 장애와 비장애 여부를 판단한다.

LB 동작 프로세스를 알아야 트러블 슈팅하기에 좋다고 한다.

리스너 : 로드 밸런서로 유입되어 처리될 트래픽은 리스너에서 정의한다.
예를들어 tcp 80포트만 처리하도록 설정시 80번 포트만 처리될 수 있다.

  1. 로드 밸런서를 어느 곳에 설치할지를 정의한다.
    예제에서는 service_VPC의 public_server(웹서버)와 연결될 수 있도록 설치하였다.

  2. 리스너 조건을 입력해 준다.
    tcp 80번 포트의 트래픽만 상태 확인을 진행하고 30초씩 확인을 한다.
    최대 응답 대기시간은 5초이고 최대 응답 재시도 횟수는 2번으로 하였다. 2번이 넘어가면 장애로 판단 후 더 이상 상태를 확인하지 않는다.

  3. 해당 로드벨런서에 플로팅 IP를 할당한다.

  4. 로드밸런서와 웹 서버들이 서로 연결 될 수 있도록 로드밸런서의 사설 ip를 web-sg 보안 그룹에 추가해 준다.

  5. 해당 로드밸런서를 KR-b 영역에 있는 웹서버와도 연결시켜준다.

  6. 로드 밸런서의 플로팅 IP로 접속하면 웹페이지가 뜬다.
    해당 웹페이지에 데이터를 입력하면 연결된 db로 데이터가 저장되는 것을 볼 수 있다.

시스템 모니터링


사용자 그룹을만들고 그 안의 알림 그룹을 통해 시스템에 생기는 이슈들에 대한 알림을 받을 수 있다.
ex. CPU의 임계값이 특정 범위를 특정 시간 동안 넘어서면 문자나 이메일로 알림을 보내라

Scale-in & Out


Auto Scale : 인스턴스의 부하 또는 장애 등과 같은 상황을 대비해 지속적으로 모니터링하여
인스턴스를 확장하거나 축소할 수 있는 클라우드 핵심 기술

Scale Up은 서버의 크기 자체를 늘리는 것 ex. cpu1 2GB 메모리를 cpu8. 16GB 메모리로 늘리는 것
Scale Out은 서버의 규모를 늘리는 것 ex. 1대이던 서버를 20대로 늘린다.

Auto Scaling Group 만들기
스케일링을 할 인스턴스 템플릿을 정한 후
특정 임계치에 도달하면 추가될 인스턴스 개수를 정해준다.
그럼 임계치에 다다른 인스턴스는 scale out을 통해 서버가 증설되고
임계치에서 멀어지면 증설된 인스턴스는 오래사용된 것 순으로 사라진다.

스케일링은 각 인스턴스 사용량의 평균치를 계산하여 인스턴스 개수를 조절한다.

Stress로 부하 테스트
Stress 명령으로 강제로 부하를 주면
서버가 증설되어 웹페이지 새로고침시 다양한 경로의 IP로 웹페이지에 접근할 수 있는 것을 볼 수 있게된다.

profile
minj-j`s Development diary!

0개의 댓글