EC2 RDS에 연결 및 설정해보기🖥️

‍서지오·2022년 8월 23일
0

Server Study

목록 보기
7/11

구현 과정🚊

1. AWS RDS 구축

1-1. RDS에서 사용할 엔진 선택

1-2. 마스터 계정 생성

1-3. 인스턴스 및 스토리지 구성

  • 프리티어 계정 사용 시 DB 인스턴스 클래스를 버스터블 클래스만 사용 가능하다.
  • 프리티어에서 제공하는 최대 스토리지 용량은 20G 이다.

1-4. RDS 연결 정보 설정

  • 외부에서 생성한 RDS DB에 접속할 수 있도록 Public Access를 켜준다.
  • VPC 보안 그룹 : DB에서 사용할 인바운드 규칙들을 내포하고 있는 보안 그룹

1-5. 초기 데이터베이스 옵션

  • 추가 구성 탭을 열어 초기 데이터베이스의 이름을 설정한다.

1-6. RDS 생성 완료 모습

  • 상태에 생성 가능이 떠야 사용 가능하다.(시간이 좀 걸림)


2. DataGrip에 생성한 RDS 연동 및 설정

2-1. RDS 연동

  • Host : 생성한 RDS의 end point를 입력해준다.(AWS RDS 콘솔에서 확인 가능)
  • User : RDS 생성 시 만들었던 master 계정으로 로그인

2-2. RDS TimeZone 한국 시간으로 변경

  • 파라미터 그룹에 들어가서 time_zone 검색 후 파라미터를 Asia/Seoul로 편집
  • 이렇게 해야 테이블 내 createdAt과 같이 시간과 관련된 데이터가 한국 시간으로 나타나게 된다.

2-3. Character set uff-8로 설정

  • 위 이미지에 네 가지 파라미터 모두 utf8mb4 로 설정한다.
  • utf8mb4 : 기존 utf8의 주요 기능인 한국어 깨짐을 방지해주는 기능에 이모티콘 또한 나타낼 수 있도록 하는 부가 기능을 더한 문자 인코딩 방식

2-4. Collation 파라미터 utf-8로 설정

  • collation_connection : utf8mb4_general_ci로 설정
  • collation_server : utf8mb4_general_ci로 설정
  • default_collation_for_utf8mb4 : utf8mb4_general_ci로 설정

2-5. 변경사항 확인

  • 현재 시간을 찍어보면 올바르게 나오는 걸 확인할 수 있다.

  • 한글 데이터를 저장할 임시 테이블을 생성하고 한글 데이터를 추가하여 확인해보면 밑에 와 같이 한글이 깨지지 않고 잘 보이는 걸 확인할 수 있다.

3. MySql 스토리지 엔진 및 참고자료

  • 물리적 저장 장치(하드디스크)에 실제로 데이터가 어떤 형태로 저장되고 어떤 방식으로 조회할 지를 결정
  • create table 사용 시 엔진 이름을 추가하여 사용할 스토리지 엔진을 명시한다.
  • InnoDB : MySql 스토리지 엔진 중 하나로 테이블 생성 시 따로 스토리지 엔진을 명시하지 않는다면 default로 사용되는 엔진
    • 트랜젝션(transaction) 지원
    • row-level locking 제공
    • PK 제약을 제공하여 데이터 무결성 보장

트랜젝션 : 작업의 완전성을 보장하기 위해 논리적인 작업을 모두 완벽하게 처리하지 못할 경우 작업 수행 전 원래 상태로 복구(원자성, 일관성)하여 작업의 일부만 적용되는 현상이 발생하지 않도록 하는 기능. 트렌젝션을 통해 사용자는 DB 상태를 변화 시키는 작업을 논리적인 단위로 이해할 수 있고 시스템 입장에서는 데이터들을 접근 또는 상태를 변경하는 프로그램의 단위로 생각한다. (여기에서 자세한 내용 확인)
무결성 : 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성. null 무결성, 고유 무결성, 참조 무결성, 도메인 무결성, 키 무결성 등으로 구성된다. (여기에서 자세한 내용 확인)


4. EC2 RDS에 연결

4-1. RDS에 연결 및 테이블 확인

$ mysql -u 사용자명 -p -h RDS엔드포인트
mysql> show databases;
mysql> use seojioDB;
mysql> show tables;
mysql> select * from test;

4-2. 결과

참고 자료

https://luminitworld.tistory.com/94?category=975147

https://jobc.tistory.com/196

https://k39335.tistory.com/28

https://coding-factory.tistory.com/221

profile
백엔드 개발자를 꿈꾸는 학생입니다!

0개의 댓글