[AWS] RDS(MySQL) 생성
2023. 2. 9. 15:20ㆍAWS
반응형
Amazon RDS(Amazon Relational Database Service)
RDS는 클라우드에서 간편하게 데이터베이스를 설치, 운영 및 확장할 수 있는 관리형 서비스 모음입니다.
RDS 생성하기
- https://aws.amazon.com/ko
- 로그인 후 > 서비스 > 데이터베이스 > RDS
클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services
aws.amazon.com

- 대시보드에서 데이터베이스 생성 선택
- 이때, 리전 [ 도쿄 ] 부분 확인하기 --> 보통 서울로 하는 듯 (몰라서 안 했다가 쭈욱.. 도쿄가 돼버렸다..)

- 표준 생성 선택
- 엔진은 MySQL 선택함 / 엔진 버전도 필요하면 선택.

- 프로덕션이나 개발/테스트 템플릿은 요금 발생
- 무료 버전인 프리티어 선택함.

- DB 인스턴스 식별자에 DB 이름 입력
- 마스터 사용자 이름과 마스터 암호는 실제 DB에 접속 시 필요한 정보임.

- 버스터블 클래스로 자동 선택되고, 기본인 db.t3.micro 선택

- 스토리지 자동 조정 활성화 해제하기
- 체크했을 경우 : 개발 진행 중 임계값이 초과되는 경우 자동으로 스토리지가 늘어나 추가 금액이 붙을 수 있음!

- 컴퓨팅 리소스 EC2 컴퓨팅 리소스에 연결 안 함 선택 (추후 수동으로 연동할 예정)
- 네트워크 유형 IPv4 선택
- VPC는 Default 선택
- 퍼블릭 액세스 예 선택
- 퍼블릭 액세스 아니오 선택 시 : 외부 접속이 불가능하고, EC2 내에서만 연결 가능.

- DB 포트는 3306

- 데이터베이스 인증은 암호 인증 선택

- 자동 백업 활성화 해제



- 모두 마치고 나서 데이터베이스 생성 버튼 클릭 시 MySQL 인스턴스가 생성된다.
- 데이터베이스 생성 중..

- 데이터베이스 생성 완료

- 대시보드에서 생성된 데이터베이스에서 DB 식별자 파란 부분을 클릭하게 되면 데이터베이스 상세화면 확인 가능
- 엔드포인트와 포트는 외부에서 DB에 접속할 때 필요한 정보임! ( 엔드포인트는 외부로 유출하지 않도록 하자 )

한글 설정
- Amazon RDS > 파라미터 그룹 > 파라미터 그룹 생성

- 파라미터 그룹 이름 : korean
- 파라미터 그룹에 대한 설명 : korean setting

- 파라미터 편집 선택

- 파라미터 char_ -> 값 utf8로 변경

- 파라미터 collaction_ -> 값 utf8_general_ci로 변경

- 변경사항저장 클릭
- 방금 만든 korean 파라미터 그룹을 데이터베이스에 연동(..?)하기
- 데이터베이스 상세페이지에서 수정 클릭

- 추가 구성 > 데이터베이스 옵션 > DB 파라미터 그룹 > 만들어놓은 korean으로 변경

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

- DB 인스턴스 수정 완료

MySQL RDS 서버 접속
- cmd 창(관리자모드로 실행)에서 엔드포인트를 이용하여 접속 후 인스턴스 확인해 보기
- 아래의 명령어를 이용하여 DB 서버에 접속해 보기
- RDS를 만들면서 설정한 마스터 사용자 이름, 마스터 암호 & 상세페이지에서 확인 가능한 엔드포인트 주소가 필요
mysql -h [엔드포인트 주소] -u [마스터 사용자 이름] -p
# 이후 password 입력
[마스터 암호]
- ERROR 발생!
ERROR 2003 (HY000) : Can't connect to MySQL server on '[엔드포인트 주소]' (10060)
- 이 에러는 AWS 네트워크 규칙이 MySQL 클라이언트가 실행되고 있는 호스트에 도달할 수 없기 때문에 발생하는 것이다. 따라서, RDS 보안 그룹의 IP 주소를 등록하여, RDS MySQL 인스턴스에 액세스 권한을 주는 작업이 필요하다.

- 데이터베이스 상세페이지에서 보안 > VPC 보안그룹의 default 부분 클릭

- 보안 그룹 이름이 default인 보안 그룹 체크 > 인바운드 규칙 > 인바운드 규칙 편집

- IPv4와 IPv6 어디서든 들어갈 수 있게끔 인바운드 설정 후 규칙 저장
- 이때, 유형은 모든 트래픽 선택 & 소스는 Anywhere-IPv4, Anywhere-IPv6 둘 다 설정
기존에 있던 거 삭제 후 진행했음(이 부분은 잘 모르겠....)- 규칙 저장 클릭

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

- 다시 cmd창에서 명령어 입력하면
mysql -h [엔드포인트 주소] -u [마스터 사용자 이름] -p
# 이후 password 입력
[마스터 암호]
- MySQL에 접속이 가능하다

- 명령어 입력해 보기
# 현재 MySQL 서버에 저장되어있는 모든 database을 보여줘라
show databases;
# 'about'이라는 database를 사용하겠다
use about;
# 현재 about이라는 database에 있는 모든 table을 보여줘라
show tables;

- Table 생성
# about이라는 database를 사용하겠다.
use about;
# QnA Table을 생성한다
CREATE TABLE QnA(
SEQ_NO BIGINT AUTO_INCREMENT NOT NULL KEY COMMENT '일련번호'
, TITLE VARCHAR(300) NOT NULL COMMENT 'QA 제목'
, ANSWER VARCHAR(300) NOT NULL COMMENT '답변'
, ADD_CONTENTS TEXT COMMENT '추가내용'
) COMMENT 'QnA 테이블';
# Query OK, 0 rows affected 라고 나오면 Table 생성 성공
# about이라는 database 내에 있는 모든 테이블을 보여라
show tables;

- 생성한 Table에 데이터 Insert 및 Select
# 각 칼럼별로 순서대로 데이터 INSERT 진행
INSERT INTO QnA(
SEQ_NO
, TITLE
, ANSWER
, ADD_CONTENTS
) VALUES(
1
, '문의합니다.'
, '답변입니다.'
, '추가. 추가'
);
INSERT INTO QnA(SEQ_NO, TITLE, ANSWER, ADD_CONTENTS) VALUES(2, '문의', '답변', '추가_추가');
# Insert한 데이터 Select하기
SELECT * FROM QnA;

728x90
반응형