본문 바로가기
Cloud/AWS | Cloud

[Amazon RDS] 생성하기

by 카랑현석 2024. 11. 12.

Amazon RDS?

- Amazon Relational Database Service

- 클라우드에서 간편하게 데이터베이스를 설치, 운영 및 확장할 수 있는 관리형 서비스 모음

- 더 쉽게 이야기하면, 데이터베이스를 클라우드에 올리는 느낌

- 팀 공동 작업을 위해 Amazon RDS가 필요

 

Amazon RDS 생성 방법

① AWS(Amazon Web Service) 사이트 접속

AWS 홈페이지


② 무료 계정 생성 버튼 클릭

AWS 홈페이지 > 무료 계정 생성

 

③ 계정 생성 1단계 : 이메일 주소 및 암호 설정

- 루트 사용자 이메일 주소는 분실하거나 유출되면 안된다.

- 루트 사용자 이메일 주소와 AWS 계정 이름을 모두 입력 후 [Verify email address] 버튼을 클릭한다.

이메일 주소 / AWS 계정 이름 입력

 

- 이메일 인증 번호 입력 후 [Verify] 버튼 클릭

이메일 인증 번호 입력

 

 

- 본인의 암호를 입력 후 [Continue (step 1 of 5)] 버튼 클릭

암호 입력

 

 

③ 계정 생성 2단계 : 연락처/주소 정보 입력

- 전체 이름 / 주소 라인 1 / 주소 라인 2 / 시 / 시,도 또는 리전 은 모두 영어로 입력한다.

- 국가 코드는 +82 , 국가 또는 리전은 대한민국으로 한다.

- 영문주소변환 사이트 : https://www.jusoen.com/

 

영문주소변환

지번주소,신주소 등의 한글주소를 영문주소 변환 해주는 영어주소검색,영문주소변환기

www.jusoen.com

연락처 / 주소 정보 입력

 

③ 계정 생성 3단계 : 결제 정보 입력

 

결제 정보 입력

③ 계정 생성 4단계 : SMS/음성 통화 인증

SMS/음성 통화 인증 보내기
인증 코드 화인

③ 계정 생성 5단계 : 플랜 설정

기본 지원 - 무료 플랜 선택

 

④ RDS 생성하기

- 리전 변경 : 아시아 태평양(서울) 로 변경

우측 상단 지역 클릭 > 아시아 태평양(서울) 선택

 

- 서비스 > 데이터베이스 > RDS 선택

서비스 > 데이터베이스 > RDS

- 대시보드에서 [데이터베이스 생성] 클릭

대시보드 > 데이터베이스 생성

 

- RDS 설정

 

[데이터베이스 생성 방식 선택 , 엔진 옵션]

데이터베이스 생성 방식 / 엔진 옵션 1

 

엔진 옵션 2

[템플릿]

템플릿

[설정 - DB 이름, 사용자 이름, 사용자 암호 설정]

설정

 

[인스턴스 유형]

- 과금 방지를 위해 db.t3.micro 인스턴스로 설정

인스턴스 구성

 

[스토리지]

- 과금 방지를 위해 스토리지 용량은 20GiB로 설정, 스토리지 자동 조정 활성화 체크 해제

스토리지

[데이터베이스 인증]

암호 인증 선택

데이터베이스 인증

[모니터링]

모니터링

[추가 구성]

- 자동 백업을 활성화합니다. 체크 해제

추가 구성 1

- 혹시 모를 과금을 방지하기 위해 [유지 관리 > 마이너 버전 자동 업그레이드 사용] 체크 해제

추가 구성2

 

페이지 최하단에 [데이터베이스 생성] 버튼 클릭

데이터베이스 생성

 

- 데이터베이스 생성 중

데이터베이스 생성 중

 

5~10분 정도 기다리면 데이터베이스 생성이 완료된다.

- 데이터베이스 생성 완료

데이터베이스 생성 완료

 

⑤ DB 세부 정보 확인하기 (엔드포인트/포트 번호 확인)

- 데이터베이스에서 DB 식별자의 파란색 밑줄 글씨를 클릭하면 DB 세부 정보를 확인할 수 있다.

DB 세부 정보 확인하기

 

- 엔드포인트와 포트로 DB에 접근이 가능하다. 공동 작업 시 이를 공유한다. (엔드포인트와 포트가 유출되면 안되므로 각별히 관리한다.)

엔드포인트 / 포트 번호 확인

 

⑥ 한글 설정

 

- Amazon RDS > 파라미터 그룹 > 파라미터 그룹 생성

파라미터 그룹 생성

 

- 파라미터 그룹 생성

 

파라미터 그룹 이름 : korean

설명 : korean setting

엔진 유형 : MySQL Community

파라미터 그룹 패밀리 : mysql8.0

유형 : DB Parameter Group

파라미터 그룹 생성

 

- 파라미터 그룹 세부 정보 페이지로 이동

파라미터 그룹 > 파라미터 클릭(파란색 밑줄 글씨)

파라미터 그룹 세부 정보 페이지 이동

 

- 파라미터 편집 페이지로 이동

우측 상단 [편집] 버튼 클릭

파라미터 그룹 세부 정보 페이지에서 파라미터 편집

 

- 파라미터 그룹 편집 1

파라미터가 char로 시작하는 것에 한해서 그 파라미터 값을 utf8 으로 변경

변경 사항 저장 버튼 클릭

파라미터 편집 1 - char로 시작하는 모든 파라미터의 값을 utf8 으로 변경

 

- 파라미터 그룹 편집 2

파라미터가 collation_ 으로 시작하는 것에 한해서 그 파라미터 값을 utf8_general_ci 으로 변경

변경 사항 저장 버튼 클릭

파라미터 편집 2 - collation_ 으로 시작하는 모든 파라미터의 값을 utf8_general_ci 으로 변경

 

- 데이터베이스 세부 정보 페이지로 이동

Amazon RDS > 좌측 탭에서 데이터베이스 > 파란색 밑줄 버튼 클릭

데이터베이스 세부 정보 페이지로 이동


- 데이터베이스 세부 정보 페이지 에서 수정 버튼 클릭

수정 버튼 클릭

 

- 데이터베이스 옵션 > DB파라미터 그룹 을 기존에 만들었던 그룹으로 선택 > 최하단 계속 버튼

DB파라미터 그룹 수정

 

- 수정 예약은 "즉시 적용" 으로 선택 > DB 인스턴스 수정 버튼 클릭

수정 예약에서 "즉시 적용" 선택 > DB인스턴스 수정

- DB인스턴스 수정 완료

 

⑦ MySQL RDS 서버 접속

 

- cmd 창 열기 (관리자모드로 실행)

- cmd 창에서 아래 명령어 입력

mysql -h [엔드포인트 주소] -u [마스터 사용자 이름] -p

# 이후 패스워드 입력
[마스터 암호]

 

- 오류 발생 확인

ERROR 2003 (HY000): Can't connect to MySQL server on '[엔드포인트 주소]' (10060)
  • 이 에러는 AWS 네트워크 규칙이 MySQL 클라이언트가 실행되고 있는 호스트에 도달할 수 없기 때문에 발생하는 것이다. 따라서, RDS 보안 그룹의 IP 주소를 등록하여, RDS MySQL 인스턴스에 액세스 권한을 주는 작업이 필요하다.

- 오류 해결

데이터베이스 세부 정보 페이지에서 연결&보안 > 보안 > VPC 보안 그룹 부분의 파란색 글씨 클릭

VPC 보안 그룹 설정 페이지로 이동

 

보안 그룹 이름이 default인 보안 그룹을 체크 > 인바운드 규칙 > 인바운드 규칙 편집 버튼 클릭

VPC 보안 그룹 설정 페이지 > 인바운드 규칙 편집 페이지 이동

 

기존에 있는 보안 그룹 규칙 삭제

기존에 있던 인바운드 규칙 삭제

 

[규칙 추가] 버튼을 클릭하여 2개의 규칙을 추가

유형 : 모든 트래픽 / 소스 : Anywhere-IPv4

유형 : 모든 트래픽 / 소스 : Anywhere-IPv6

 

완료 후 [규칙 저장] 버튼 클릭

인바운드 규칙 규칙 새롭게 추가

인바운드 보안 그룹 규칙 수정 완료

 

- cmd 창 열기 (관리자모드로 실행)

- cmd 창에서 아래 명령어 입력

mysql -h [엔드포인트 주소] -u [마스터 사용자 이름] -p

# 이후 패스워드 입력
[마스터 암호]

 

- 정상 연결 확인

DB연결 cmd
정상 연결 확인

 

⑧ MySQL 명령어

0. MySQL Workbench 접속

- MySQL Workbench을 키고 > Database > Connect to Database...

- Hostname에 Amazon RDS 엔드포인트 주소 입력

- Username에 Amazon RDS 마스터 사용자 이름 입력

- Default Schema에 Amazon RDS DB 인스턴스 식별자 입력 (필수X)

 

1. database / table 조회

# 현재 MySQL 서버에 있는 모든 Database를 조회
show databases;

# ‘checkmate’ 데이터베이스를 사용
use checkmate;

# 현재 checkmate 라는 Database에 있는 모든 table을 조회
show tables;

 

2. table 생성

- MySQL Workbench 에서 테이블 생성 버튼 클릭

 

- 테이블 이름과 칼럼 정보 입력 후 테이블 생성

테이블 생성 예시

 

3. table에 데이터 넣기(INSERT)

아래와 같이 INSERT INTO [테이블명] (칼럼명1, 칼럼명2 ...) VALUES (값1, 값2 ....); 구문을 적으면 된다.

INSERT INTO Quiz (QZ_NO, QZ_CATEGORY, QZ_CONTENT, QZ_ANSWER, TIME_LIMIT)
VALUES (default, 1, '현석이가 제일 좋아하는 것은?', '커비', 30);

 

Tip) INSERT 구문을 까먹었을 때

Mysql Workbench에서 데이터를 삽입할 테이블 우클릭 > Send to SQL Editor > Insert Statement

INSERT 구문을 까먹었을 때 대처법

 

 

4. table의 데이터 조회하기(SELECT)

select [조회할 칼럼명] from [조회할 테이블명];

select * from Quiz; #Quiz 테이블의 모든 칼럼(*)을 조회한다.

조회된 데이터