Cloud Service/AWS 공부

[AWS] RDS - 2) DB 인스턴스 생성 + 실습 **

Queen Julia 2023. 10. 28. 19:43

1. 파라미터 그룹 (Parameter Group)

1-1. 파라미터 그룹(Parameter Group)이란?

RDS를 이용하여 DB 인스턴스(mysql 서버)를 만들 때

해당 DB 인스턴스의 구성을 지정하는 방법

 

 RDBMS(예를 들어 MySQL) 서버에서 사용하는

여러가지 설정값들의 모음

 

메모리를 비롯하여 데이터베이스에 할당할 리소스의 양을 지정한다거나

charset(언어셋)을 설정하는 등

해당 DB 인스턴스에 적용되는 다양한 서버(mysqld) 구성 값을 묶어 그룹으로 설정한 것

 

 

하나의 파라미터 그룹은

하나 이상의 DB 인스턴스에 적용될 수 있으며,

 

DB 인스턴스 생성 시

파라미터 그룹을 지정하지 않는다면

기본 파라미터 그룹을 사용

 

각 기본 파라미터 그룹에는

인스턴스의 엔진, 컴퓨팅 클래스 및 할당된 스토리지에 따른 데이터베이스 엔진 기본값과 RDS 시스템 기본값이 포함

 

기본 파라미터 그룹은 수정할 수 없으니

커스텀이 필요한 경우 꼭 본인에 맞게 파라미터 그룹을 만들어서 사용 권장

 

1-2. 파라미터 그룹(Parameter Group) 생성

DB 인스턴스를 생성하기 전 미리 파라미터 그룹을 생성

 

 

0. AWS - rds - parametergroup 

 

  1.  Create parameter group 

2. 다음과 같이 설정 후 생성

 

Parameter group family  (사용하는 데이터베이스)

    -> mysql 8.0을 선택하면 Type이 자동으로 선택된다

 

 

3-1. create 누르면 아래와 같이 페이지 이동과, 생성됨

3-2.  생성한 Parameter Group 클릭하면, 아래 페이지로 이동됨

4-1. 우측 상단 Edit  클릭하면 아래 화면으로 이동된다.

4-2. 

character_set 로 검색, Value를 수정

--> allowed values로 나와 있는 거 복붙

4-3 Save changes 클릭

 

알수 없는 에러로 중단..

 

 

학습자료의 사진 

학습자료의 사진 

  • character_set_client - utf8mb4
  • character_set_connection - utf8mb4
  • character_set_database - utf8mb4
  • character_set_results - utf8mb4
  • character_set_server - utf8mb4
  • collation_connection - utf8mb4_unicode_ci
  • collation_server - utf8mb4_unicode_ci

여기서 character_set을 utf8mb4로 설정하는 이유는 글자당 최대 4bytes까지 할당할 수 있도록 하기 위함입니다. 기존에는 utf8만으로도 전세계의 언어를 표현하는데 문제가 없었지만 이모티콘과 같은 다양한 문자들이 탄생하면서 대부분 utf8mb4로 character_set을 설정하는 추세입니다.

 

또한 collation(정렬) 설정은 보통 크게 2가지로 나누어 설정하는데 하나는 general_ci, 다른 하나는 unicode_ci 입니다. 각자의 정렬 알고리즘이 조금 차이가 있지만 간단하게 이야기하면 general의 경우 unicode보다 덜 섬세하지만 조금 더 빠르다고 생각하면 됩니다. 하지만 이전과 달리 CPU의 성능이 무척 좋아져 정렬에서의 성능을 고려하는 것보다 조금이라도 더 섬세한 설정값을 선택하는 것이 현명하다고 볼 수 있습니다.

 

2. DB 인스턴스 생성 및 접속

2-1. DB 인스턴스 생성

1.DB 인스턴스 생성 시작: AWS 로그인 후 RDS 서비스 페이지로 이동하여 Create Database 를 클릭 

2. Standard create 를 선택 

3. 데이터베이스 엔진은 MySQL을 선택합니다. 현재 진행중인 프로젝트에 맞는 버전을 선택해주세요.

4. 실제 서비스를 운영하는게 아니라면 Free Tier 를 선택해주세요

 

5. 다음과 같이 DB 인스턴스에 대한 설정값을 입력합니다 

  • DB Instance identifier - RDS 페이지에서 보여지는 DB ID입니다.
  • Master username - 기존 MySQL과 같이 root로 설정하겠습니다.
  • Master password - 접속 시 사용될 비밀번호를 입력해주세요.

6. 본인이 원하는 사이즈의 클래스를 선택해주세요. 자료에서는 t2.micro 를 선택하겠습니다.[그림 2-6] 인스턴스 클래스 선택

 

7. 다음으로 DB 인스턴스의 용량을 선택합니다. 

  • Storage autocailing - Enable storage autoscailing 을 체크하게 되면 할당해놓은 20GiB에 근접했을 때 자동으로 해당 DB 인스턴스의 용량을 늘려줍니다.
  • Maximum storage threshold - 위에서 설정한 auto-scaling에 의해 늘어날 최대 용량을 정할 수 있습니다.

 

8. DB 인스턴스의 커넥션을 설정합니다. 

  • Virtual private cloud (VPC) - 처음 계정을 생성했을 때 존재하는 Default VPC를 선택해주세요. VPC를 학습하기 전에 모든 퍼블릭 엑세스에 대한 설정이 되어 있습니다.
  • Subnet group - 마찬가지로 Default로 선택해주세요.
  • Public access - 제일 중요한 퍼블릭 엑세스입니다. Yes 를 선택해야 곧바로 RDS에 접근할 수 있습니다. 하지만 실제 프로덕션 환경이라면 보안을 위해 퍼블릭 엑세스를 차단하고 동일한 VPC 내에 있는 다른 점프 서버를 두고 터널링해주는 방법을 사용하곤 합니다.

9. VPC Security Group** 을 새로 생성합니다.[그림 2-9] VPC Security Group 생성

10. Password authentication 을 선택합니다.

 

11. 추가 옵션에서 이전에 생성해둔 DB parameter group을 선택합니다

Additional configuration 에는 다음과 같이 다양한 옵션들이 존재합니다.

  • Backup - 말 그대로 DB의 스냅샷을 자동으로 생성합니다.
  • Monitoring - DB 인스턴스가 실행되는 OS의 측정치를 실시간으로 제공합니다.
  • MaintenanceEnable auto minor version upgrade - 마이너버전을 자동으로 업그레이드 할 수 있습니다. 하지만 데이터베이스의 버전이 자동으로 업그레이드 되면 버전간의 차이로 혼란이 있을 수 있습니다.

12. 설정을 마무리하고 Create database 를 클릭하여 DB 인스턴스를 생성합니다.

 

13. DB 인스턴스 목록을 보면 다음과 같이 생성중인 것을 볼 수 있습니다. 사용할 수 있을 때까지 몇 분 정도 소요될 수 있습니다.

 

 

14. DB 인스턴스 생성이 완료되었다면 DB 인스턴스를 클릭하여 상세 페이지로 이동합니다.[그림 2-14] 생성된 DB 인스턴스를 클릭하여 상세 페이지로 이동

15. DB 인스턴스 생성 과정에서 만들었던 VPC security groups 을 클릭합니다.

16. Edit inbound rules 를 클릭하여 인바운드 규칙을 다음 사진과 같이 수정합니다.

  • Type - 다양한 타입을 선택할 수 있습니다. (TCP, UDP, All traffic ...)
  • Port range - MySQL을 사용하기 때문에 3306 포트를 지정합니다.
  • Source - Anywhere IPv4 를 선택하여 어디서든 접속할 수 있도록 설정합니다. 하지만 실제 서비스 운영 환경이라면 절대 모든 IP의 접속을 허용하면 안됩니다. 보통 DB를 호출해야하는 백엔드 서버, 혹은 점프 서버로부터 오는 트래픽만 허용합니다.

 


2-2. 생성된 DB 인스턴스에 접속하기

DB 인스턴스를 생성했다면 그 안에 데이터베이스를 생성해줘야 합니다. 따라서 원격으로 외부 데이터베이스 서버에 접속하는 방법을 알아보겠습니다.

  1. 우선 생성한 DB 인스턴스의 Endpoint 를 복사합니다.[그림 2-18] Endpoint 확인

2. 터미널을 키고 다음 명령어를 입력하여 접속합니다.

mysql -h 'DB Instance Endpoint 주소' -u 'user' -p

    1.