안녕하세요
이번 시간에는 Ncloud의 완전관리형 서비스인 Cloud DB for PostgreSQL에 서비스 연동부터 테이블 생성하는 실습까지 진행하겠습니다.
0. Cloud DB for PostgreSQL 사용 가이드
https://guide.ncloud-docs.com/docs/ko/clouddbforpostgresql-overview
1. Cloud DB for PostgreSQL 이란?
Cloud DB for PostgreSQL은 PostgreSQL 데이터베이스를 손쉽게 구축하고 자동으로 관리할 수 있습니다. 네이버의 최적화 설정을 통해 안정적으로 운영하며, 장애 발생 시 자동 복구하는 완전 관리형 클라우드 데이터베이스 서비스입니다.
완전 관리형 서비스이기 때문에 DB 서버에서 내가 커스텀해서 사용하는 것은 어렵지만 그만큼 관리할 포인트가 줄어든다.
2. Cloud DB for PostgreSQL 기능
1. 빠르고 손쉬운 설치
간단한 입력과 클릭 몇 번이면 바로 서비스 사용 가능
2. 네이버 서비스에서 검증된 최적화 설정
다양한 네이버 서비스에서 오랜 시간 검증된 PostgreSQL 설정을 기본으로 지원하여 별도의 데이터베이스 튜닝 없이 빠르고 안정적인 운영 가능
3. 데이터 자동 백업 및 백업된 데이터로 PostgreSQL 서버 생성
매일 1회 고객이 원하는 시간에 데이터를 자동으로 백업하며, 백업된 데이터로 신규 PostgreSQL 서버를 생성하여 데이터 복원 가능
4. 성능 모니터링 및 알람
PostgreSQL 및 운영체제에 관련한 다양한 성능 모니터링 수치와 그래프 제공
5. 읽기 부하 분산
Zone별 최대 5대까지 Read Replica DB 확장이 가능하며, Load Balancer와 연동하여 데이터베이스 읽기 부하 분산 가능
6. 자동 Failover 지원
고가용성(HA) 지원 사용 시 서버 이중화 구성으로 장애 발생 시 Secondary 서버로 자동 Failover
3. Cloud DB for PostgreSQL 요금
가장 스펙이 낮은 Standard 기준으로 시간당 250원에 부가세가 별도로 붙습니다. 또한 DB 서버는 고가용성이 Default이기 때문에 기본적으로 2대가 생성되며 한 달 기준으로 이용 요금은 360,000원이 나옵니다. 기본적으로 스토리지는 일부 제공하지만 추가적인 스토리지에 대해서는 추가 요금이 붙는 점은 참고하시면 좋을 것 같습니다.
4. Cloud DB for PostgreSQL 연동 실습하기
1. SSL VPN 생성하기
외부에서 생성할 DB 서버에 접근하기 위해 [SSL VPN을 생성]합니다.
접근할 VPC와 이름을 입력한 후 [생성]을 눌러줍니다. 저는 유저 수를 3개로 설정했지만 규모에 맞게 끔 유저 수를 설정해주시면 되겠습니다.
SSL VPN을 사용할 수 있는 사용자를 지정하기 위해 해당하는 SSL VPN을 선택한 후 [사용자 설정]을 선택합니다.
SSL VPN에 로그인할 사용자 이름과 패스워드 그리고 OTP 번호를 전달받을 휴대폰 번호를 입력하고 [추가] 합니다.
2. Routing Table에 SSL VPN 대역 추가하기
다음과 같이 VPC - Route Table - [Route Table] - Private Subnet(DB 서버가 올라갈 서브넷) 선택 - [Routes 설정]을 눌러줍니다.
다음과 같이 SSL VPN 대역을 추가한 후 타겟을 SSLVPN으로 잡고 [생성]합니다.
3. SSL VPN Agent 설치 및 접속하기
https://guide.ncloud-docs.com/docs/sslvpn-download
다음과 같이 SSL VPN 환경에 접속하기 위해 Agent를 다운로드 해주시면 됩니다. 주의 사항은 SSL VPN 접속 경로에 443 포트가 허용되어 있어야 합니다. 설치되는 Agent 이름은 [BIG-IP Edge Client]입니다.
[BIF-IP Edge Client]에 접속하면 앞서 설정했던 SSL VPN의 유저와 패스워드 입력이 나옵니다.
*주의사항) 만약 로그인 정보와 OTP 정보를 입력했는데 접속이 안된다면 [서버 변경]에서 서버 URL을 체크해야 합니다.
다음으로 설정한 휴대폰 번호에 온 OTP 번호를 입력한 후 로그인하면 SSL VPN에 접속하실 수 있습니다.
4. Cloud DB for PostgreSQL 생성하기
외부에서 접속할 수 있게 끔 사전 세팅을 했으니 이제 DB 서버를 생성해야 합니다. CDB for PostgreSQL에 들어온 후 DB Server - [DB Server 생성]을 눌러줍니다.
다음과 같이 DB 서버에 대한 기본적인 세팅을 해줍니다. 저는 테스트 환경이기 때문에 싱글 DB 서버를 생성하고 스펙도 가장 낮은 것으로 세팅해 주었습니다.
다음과 같이 DB 유저, 패스워드, 포트, DB명 등 DB 서버 구성에 필요한 필수 정보를 입력한 후 생성합니다.
DB 서버가 생성되는데 시간이 오래 걸리기 때문에 그 사이에 필요한 세팅을 더 진행하겠습니다.
*주의사항) Ncloud에서 DB 생성 시 입력한 유저는 관리자 권한(superuser)을 갖지 않습니다.
5. PostgreSQL ACG 설정하기
먼저 Server - ACG - DB 서버 ACG - [ACG 설정]을 선택합니다.
SSL VPN에서 해당 DB 서버에 접속할 수 있도록 하기 위해 DB 서버의 ACG에서 SSL VPN 대역과 5432 포트를 허용해 줍니다.
6. DB Client 설치하기 (pgAdmin4)
https://www.pgadmin.org/download/
Ncloud 가이드에서는 pgAdmin4라는 DB Client 프로그램을 이용하여 DB 접속 테스트를 할 수 있게 끔 제공하고 있습니다.
(1) 서버 설정하기
pgAdmin4를 설치했다면 다음과 같이 [Add New Server] 버튼을 눌러줍니다.
(2) 접속 엔드포인트 확인하기
Ncloud 콘솔에서 DB 서버의 Private 도메인을 복사해 준 후에 다시 pgAdmin4로 돌아옵니다.
(3) DB Client Connection 설정하기
서버 이름과 DB Connection 정보를 입력한 후 [Save]를 눌러줍니다. 이때 Host는 Private 도메인을 입력해 주시면 됩니다.
(4) DB 서버 접속 확인하기
정상적으로 DB 서버에 접속된 것을 확인할 수 있습니다.
(5) 타 DB Client에서도 접속 확인해 보기
pgAdmin4가 아니더라도 다른 DB Client에서도 동일하게 접속 가능합니다.
(6) DB 유저 관리하기
기본적으로 해당 DB에 접속하기 위해서는 해당 DB에 User를 추가해주어야 합니다. 다음과 같이 DB 관리 - [DB User 관리]를 선택합니다.
(7) DB 유저 관리 설정하기
여기서 DB에 접속 가능한 유저를 생성하면 됩니다. CDB for MySQL과 다르게 권한 설정인 DDL, DML, DCL 등의 설정은 따로 없는 모습입니다. 따로 설정해주지 않아도 기본적으로 권한을 갖고 있는 것 같습니다.
(8) Cloud DB for PostgreSQL 기능 살펴보기
완전 관리형 서비스이기 때문에 따로 서버에 대한 설정을 사용자가 해줄 수 없습니다. 대신 다음과 같이 Ncloud 콘솔에서 필요한 기능들은 간편하게 제공하고 있습니다.
DB를 우클릭한 후 [Query Tool]을 이용하면 SQL문을 사용하실 수 있습니다. 기본적으로 DB 유저는 소유한 DB나 접근 가능한 DB에서만 권한을 갖습니다. (마스터 권한을 갖지 않음)
(10) Schema 및 Table 생성하기
다음과 같이 SQL 쿼리를 이용해서 스키마 및 테이블을 생성할 수 있습니다.
*주의사항) Ncloud에서는 기본적으로 public 스키마에 대해 보안 취약점 이슈로 접근을 권장하지 않습니다. 따로 스키마를 생성하여 사용하길 권장드립니다.
5. Cloud DB for PostgreSQL 주의사항
1. DB 생성 시 USER는 DB에 대한 소유권은 갖지만 superuser 권한을 갖지는 않습니다. 기본적으로 postgres라고 하는 계정이 superuser 권한을 갖고 있으나 CDB for PostgreSQL에서는 해당 계정을 사용할 수 없습니다.
2. CDB for PostgreSQL은 MySQL과 다르게 DB 유저 관리 시 DDL, DML, DCL과 같은 세부 권한을 줄 수 없고 접근 제어에 대한 설정이 가능합니다.
3. DB 서버 생성 시 기본적으로 public 스키마를 제공합니다. 해당 스키마는 사용해도 괜찮지만 보안 취약점 이슈로 사용하지 않는 것을 권장합니다.
4. pgAdmin4에서는 해당 데이터베이스에 대해서 Default Privileges를 통해 권한을 조절할 수 있습니다.
5. Ncloud에서는 DB Client를 pgAdmin4를 테스트 용도로 사용하지만 다른 DB Client를 사용해도 무방합니다.
6. 완전관리형 서비스이다 보니 서버에서 따로 설정 가능한 pg_hba.conf 같은 설정은 따로 해줄 수 없습니다.
Cloud DB for PostgreSQL에 대한 주의사항을 모아서 정리합니다.
Ncloud에 질의도 많이 하고 직접 테스트해 보면서 알게 된 것들입니다.
이번 시간에는 Cloud DB for PostgreSQL에 대해 알아보고 연동하는 실습을 진행했습니다.
완전 관리형 서비스라서 따로 제가 세팅할 게 없어서 정말 좋았지만 아직 다른 DB에 비해 기능이 더 추가되면 좋을 것 같습니다. 항상 빠르게 업데이트해주는 Ncloud인 만큼 기대해 보면 좋을 것 같습니다.
감사합니다.
'Cloud > Naver Cloud' 카테고리의 다른 글
[Ncloud] Server g3 업데이트 후 ubuntu 22.04에서 Nginx 설치가 안될 때 방법 알아보기 (0) | 2024.04.03 |
---|---|
[Ncloud] 네이버 클라우드 유저 커뮤니티(NCUC) 5회차 발표 후기 (1) | 2024.03.29 |
[Ncloud] Source Commit에 대해 알아보고 연동하기 (0) | 2024.03.28 |
[Ncloud] Global Traffic Manager를 이용해 일괄적으로 서버 점검 페이지 전환하기 (0) | 2024.03.19 |
[Ncloud] 서버리스 환경을 구성하기 위한 API Gateway를 간단히 알아보기 (0) | 2024.03.13 |
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!