AWS RDS 구축하기

dev-jjun·2022년 12월 24일
0

Server

목록 보기
2/33

AWS RDS 구축하기

*본격적으로 시작하기 전에 AWS 과금 방지를 위한 기본 셋팅을 하고 가자!

[AWS] 과금 없이 안전하게 aws 쓰는 법

RDS란?

아마존 관계형 데이터베이스 서비스로, 아마존 웹 서비스(AWS)가 서비스하는 분산 관계형 데이터베이스

💫 특징

  • 애플리케이션 내에서 관계형 데이터베이스의 설정, 운영, 스케일링을 단순하게 하도록 설계됨
  • 소프트웨어를 패치하거나 데이터베이스를 백업하거나 시점 복구를 활성화하는 등 복잡한 관리 프로세스들을 자동으로 관리해줌
  • 스토리지와 연산 자원들을 스케일링 하는 것은 하나의 API 호출로 수행할 수 있음
  • 데이터베이스(RDS)와 서버(EC2)를 분리함으로써 서로에 의한 간섭을 줄이고, 다음의 장점을 가짐
    • N:1의 확장성
    • 보안 GOOD
    • 편리성

1. RDS 인스턴스 생성 후 EC2와 연결하기

새로 생성한 보안 그룹의 인바운드 규칙을 수정하여 EC2 서버 인스턴스와 연결해준다!

MYSQL/Aurora 유형으로 소스에는 EC2의 보안그룹 코드 를 설정하여 새로운 인바운드 규칙을 추가한다.

그럼 이제 EC2에서 RDS의 접근이 가능한 상태가 된다!

→ 이를 WorkBench에서 RDS 엔드포인트를 Host명으로 하고, 설정한 사용자명과 비밀번호로 접속했을 때 연결에 성공하면 제대로 진행된 것이다!

2. RDS의 파라미터 그룹 생성 및 수정

파라미터 그룹 → 데이터베이스에 연결하기

데이터베이스 선택 > [수정]

default로 설정된 부분을 새로 생성한 파라미터 그룹으로 변경

즉시 적용 하여 인스턴스를 수정

변경 사항

  • time_zone : Asia/Seoul

  • character_set 로 시작하는 모든 설정값 : utf8mb4

    *utf8 VS utf8mb4의 차이점

    • 모두 한글이 깨지지 않도록 인코딩하는 공통점을 가지지만, utf8mb4는 이모지까지 저장 가능하도록 지원해준다. 문자 하나를 표현할 때 4바이트를 사용하는 utf8mb4와 달리, utf8은 가변 3바이트를 사용하여 이모지까지 저장이 불가능하다.
  • collation : utf8mb4_general_ci

    • collation_connection : utf8_general_ci
    • collation_server : utf8_general_ci

변경 사항을 적용하기 위해 [작업] > [재부팅]을 해주고 파라미터 그룹에서 변경한 설정값들이 잘 변경되었는지 확인한다.

select @@time_zone, now();

만약 변경되지 않았다면 sql문을 사용해 강제로 바꿔준다.

// character_set. collation 변경
ALTER DATABASE umc_server
CHARACTER SET = 'utf8mb4'
COLLATE = 'utf8mb4_general_ci';

// time_zone 변경
SET time_zone='Asia/Seoul';

이후 show variables like ‘c%’/’t%’, select @@time_zone, now(); 으로 variable이 잘 변경되었는지 확인하면 성공이다!

한글이 제대로 출력되는지 확인하기 위해 테스트 해보자

use 데이터베이스명;

CREATE TABLE test (   // test는 테이블명
    id bigint(20) NOT NULL AUTO_INCREMENT,
    content varchar(255) DEFAULT NULL,
    PRIMARY KEY (id)
) ENGINE = InnoDB;

insert into test(content) values ('한글 테스트');
select * from test;

*InnoDB란? MySQL의 데이터베이스 엔진으로, MySQL의 모든 바이너리에 내장되어 트랜잭션을 제공한다.

EC2에서 RDS 접속

$ mysql -u 사용자명 -p -h Host주소(RDS엔드포인트)

다음과 같이 뜨면 접속에 성공한 것이다!

이와 같이 한글이 제대로 인코딩되어 출력되는 것을 볼 수 있다.

*참고 - https://luminitworld.tistory.com/94

profile
서버 개발자를 꿈꾸며 성장하는 쭌입니다 😽

0개의 댓글