[AWS] RDS(MySQL) 생성

2023. 2. 9. 15:20AWS

반응형
Amazon RDS(Amazon Relational Database Service)
RDS는 클라우드에서 간편하게 데이터베이스를 설치, 운영 및 확장할 수 있는 관리형 서비스 모음입니다.

 

RDS 생성하기
 

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

 

aws.amazon.com

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

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

RDS 대시보드에서 '데이터베이스 생성' 클릭 및 리전 확인

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

데이터베이스 생성 방식 및 엔진 선택

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

템플릿 설정

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

DB 접속 정보 설정

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

인스턴스 구성 설정

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

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

연결 정보 설정

  • DB 포트는 3306

연결 정보 설정

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

데이터베이스 인증 옵션 설정

  • 자동 백업 활성화 해제

데이터베이스 추가 구성1
데이터베이스 추가 구성2
월별 추정 요금 설명

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

  • 데이터베이스 생성 중..

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

  • 데이터베이스 생성 완료

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


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

DB 상세정보 확인

 


 

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

파라미터 그룹 생성

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

파라미터 그룹 생성 _ 이름 및 설명 설정

  • 파라미터 편집 선택

파라미터 그룹 설정 _ 파라미터 편집

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

char 검색 후 utf8로 값 변경

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

collaction 검색 후 utf8_general_ci로 변경

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

데이터베이스 상세 > 수정

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

DB 파라미터 그룹 변경

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

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 부분 클릭

RDS > 데이터베이스 > 상세페이지

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

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

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

인바운드 규칙 설정

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

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

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

cmd에서 MySQL 서버 연결

  • 명령어 입력해 보기
# 현재 MySQL 서버에 저장되어있는 모든 database을 보여줘라
show databases;

# 'about'이라는 database를 사용하겠다
use about;

# 현재 about이라는 database에 있는 모든 table을 보여줘라
show tables;

MySQL 명령어 입력해서 데이터 확인하기


  • 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;

Database 선택 및 Table 생성

  • 생성한 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;

데이터 Insert, Select

728x90
반응형