고객 요구 사항 : 온프레미스사에서 클라우드로 Cloud DB for Mysql만 사용하겠다는 요청
구성 : 3tier 구성으로 계획하되 현재는 DB 구성만 적용. DB는 멀티존으로 구성. 외부 접속을 위한 별로의 서비스를 사용하지 않고 관리자가 접속 가능하도록 설정. 기본적인 VPC 및 subnet 구성을 위한 아키텍쳐 또는 문서로 작성.
IP 대역
- VPC : 10.20.0.0/16
- Public subnet1(KR1) : 10.20.0.0/24
- Public subnet2(KR2) : 10.20.1.0/24
- Private subnet1(KR1) : 10.20.10.0/24
- Private subnet2(KR2) : 10.20.11.0/24
VPC 생성
Subnet 생성
Subnet 이름, IP 주소 범위, 가용 Zone, Internet Gateway 전용 여부를 달리하여 4개의 subnet을 생성한다.
DB Server 생성
고가용성 지원을 체크하여 2대의 DB를 만들고 Multi Zone을 체크하여 KR1, KR2에 각각 만들도록 한다.
고가용성을 체크해야 Multi Zone 체크가 가능하다.(고가용성은 Standby 서버 생성, Multi Zone은 Master, Standby를 각각 다른 Subnet에 생성한다.)
Master는 KR1에 생성하고, Standby는 KR2에 생성한다.
기본 10GB에서 최대 6TB까지 자동 증가한다.
ACG가 자동으로 생성된다. 나중에 설정을 변경해야 접속이 가능하다.
DB에 접속 가능한 USER_ID를 적고, HOST는 모든 IP에서 접근 가능하도록 %로 한다.
만약 내가 접속하려는 IP가 고정되어 있다면 해당 IP를 넣어준다.
USER_ID로 접속하기 위한 암호를 설정하고, DB 접속 포트는 기본 포트인 3306을 사용한다.
포트 번호도 나중에 변경이 가능하다. 대신 연동되는 모든 애플리케이션의 포트 번호를 변경해줘야 한다.
DB log 수집, Backup 설정을 사용하려면 Cloud Log Analytics를 신청하라고 나온다.
로그 자체는 서버에 저장이 되는데 클라우드에서 보기 위한 것(대시보드에서 전체 사항을 볼 수 있다.)
신청 확인 후 DB를 생성한다.
ACG 설정
Server -> ACG를 보면 VPC를 생성할 때 만들어진 default ACG와 DB를 생성할 때 생성된 ACG가 있다.
DB ACG를 선택 후 ACG 설정을 누른다.
프로토콜 : TCP
접근 소스 : myip를 눌러 내 현재 ip를 입력
허용 포트 : 3306
변경 사항을 추가
Outbound 규칙 변경
프로토콜 : TCP
목적지 : 0.0.0.0/0(모든 IP)
허용 포트 : 3306
입력 후 설정 추가 및 적용
MySQL Workbench로 DB 접속
Workbench 실행 후 + 를 눌러서 연결을 추가한다.
Connetion Name : (아무거나)testdb
Hostname : DB Public 도메인
port : 3306
Username : adminuser(DB 생성 시 입력한 USER_ID)
설정 후 아래 만들어진 Connetion을 눌러서 접속한다.(접속 시 DB 서버 만들 때 생성한 암호 필요)
DB 관리 -> DB User 관리 -> USER_ID 확인
Master DB Failover 기능 확인
DB Failover 기능은 Master DB와 Standby DB가 있을 때 Master DB에 장애가 생길 경우 Standby DB가 Master DB로 변경되어 장애 없이 DB 기능을 제공하는 것을 말한다.
현재 testdb-001-3r98 DB 서버가 Master이고 testdb-002-3r99 DB 서버가 Standby이다.
이 상태에서 Failover를 실행하면 두 서버의 role이 바뀌게 된다.
약 3분 정도 DB 접속이 불가능하다.
시간이 지난 후 확인해보면 Master가 testdb-002-3r99로 바뀌었다.
Backup
DB를 생성할 때 보면 Backup을 설정할 수 있다.
처음 생성 시 기본적으로 Backup이 하나 생성된다.
Cloud DB for MySQL -> Backup -> 상세내역
Backup 된 내역을 선택 후 Backup 파일 복원을 하거나 Object Storage로 보내 저장할 수 있다.
Cloud DB for MySQL에서 지원하는 Backup은 최대 30일까지만 저장되기 때문에 더 저장하고 싶다면 Object Storage나 Archive Storage로 저장해야 한다.
파일 복원을 선택하면 현재 DB를 저장된 Backup으로 복원하거나 새로운 DB를 생성할 수 있다.
초기에 설정한 것과 같이 고가용성, Multi Zone이 적용된 DB를 새로 생성할 수 있다. 생성이 완료된 후에는 장애가 발생하거나 데이터에 문제가 있는 DB 서버를 삭제하여 정상적인 서비스를 제공할 수 있다.
Cloud DB for MSSQL 서버를 Private Subnet에 생성 후 VPN 접속
원래 DB는 private subnet에 생성한다.
이번에는 private subnet에 cloud db for mssql 서버를 생성 후 SSL VPN으로 접속하여 보자.
기본적인 설정 후 Principal Subnet을 private subnet1, Mirror Subnet을 private subnet2로 설정한다.
mysql의 master, standby와 같은 개념이다.
DB에 접근할 USER_ID와 암호를 입력하고, 기본 접속 포트인 1433를 입력한다.
Cloud DB for PostgreSQL 서버를 Private Subnet에 생성 후 VPN 접속
https://guide.ncloud-docs.com/docs/sslvpn-spec
SSL VPN 사용 준비
guide.ncloud-docs.com
MSSQL 생성이 너무 오래 걸린다. PostgreSQL을 이용하여 DB Server 생성 후 VPN을 이용해 접속하기로 함.
Cloud DB for PostgreSQL 서버 생성
postgreSQL 서버 생성 완료
SSL VPN 생성
생성 후 email로 연락이 온다는데...교육용 계정이라 잠시 기다리니 바로 되었다.
Route Tabel 설정하기
Services -> Networking -> VPC -> Route Table -> Route Table 선택 후 Routes 설정
Destination : SSL VPN Pool을 입력
Target Type : SSLVPN
Target Name : postgrVPN(생성한 VPN 이름)
SSL VPN IP pool은 SSL VPN 화면에서 확인 가능
ACG 설정
PostgreSQL에 접근하기 위해 PostgreSQL의 ACG를 수정해야 한다.
Services -> Compute -> Server -> ACG -> ACG 설정
프로토콜 : TCP
접근 소스 : SSL VPN IP pool(SSL VPN 화면에서 확인 가능)
허용 포트 : 5432
입력 후 추가 후 적용한다.
SSL VPN Agent 설치 및 접속
https://guide.ncloud-docs.com/docs/sslvpn-download
SSL VPN 다운로드
guide.ncloud-docs.com
VPN으로 접속하기 위해서는 Agent라는 프로그램이 필요하다.
Windows, Mac에 맞게 파일을 다운로드 후 설치한다.
설치 후 BIG-IP를 검색해서 Agent 프로그램을 실행한다.
Agent를 실행하면 연결창이 나온다.
연결을 누르면 VPN 아이디, 암호 입력창이 나온다.
SSL VPN에서 접속하기 위한 아이디를 만든다.
사용자 설정 -> Username, Password, Email, SMS 모두 입력 후 추가 후 적용한다.
여기서 생성한 아이디와 암호를 Agent에서 입력하고 로그온 한다.
로그온이 되면 아이디 생성 시 입력한 Email 및 전화번호로 OTP 번호가 온다.
OTP 번호 입력 후 로그온을 하면 Agent가 연결됨으로 바뀐다.
연결을 확인하기 위해 윈도우 CMD에서 ping을 보내본다.
ping [SSL VPN IP]
ping이 제대로 보내지는 것이 확인된다.
PostgreSQL 접속하기
https://www.postgresql.org/ftp/pgadmin/pgadmin4/v7.8/windows/
PostgreSQL: File Browser
www.postgresql.org
PostgreSQL에 접속하기 위해 접속 프로그램인 pgadmin4를 설치한다.
아무거나 해도 상관 없는데 일단은 Install for all users로 한다.
pgAdmin4를 실행 후 Add New Server를 눌러 Cloud DB for PostgreSQL을 연결한다.
Host name/address : DB private 도메인
Port : 5432
Username : DB USER_ID
Password : DB USER_PASSWORD
입력 후 저장한다.
PostgreSQL 접속 확인
'배운 내용 > 클라우드 교육' 카테고리의 다른 글
11월21일 - storage 붙이기 실습 (0) | 2023.11.22 |
---|---|
11월21일 - DB 실습 (0) | 2023.11.21 |
11월3일(금) - AWS 실습2 (0) | 2023.11.06 |
11월2일(목) - AWS 실습 (0) | 2023.11.02 |
11월1일(수) - 클라우드 아키텍쳐 실습 (0) | 2023.11.01 |