관리 메뉴

SIMPLE & UNIQUE

2-2강 : AWS RDS 서버 기타 설정 본문

탈잉 강의 자료/2020_비전공자도 가능한 웹 프로젝트

2-2강 : AWS RDS 서버 기타 설정

착한코딩 2020. 8. 1. 13:35

2_2 목표 : RDS서버의 설정을 한국에 맞게 변경한다. DB서버의 시간을 한국 시간으로 변경한다. 한글 데이터가 깨지지 않도록 인코딩 설정을 한다. 더미 데이터를 삽입하고, 함수 생성 권한을 추가한다.

 

1. DB 시간을 한국 시간으로 변경한다.

  RDS 서버 세팅 후, 파라미터 그룹 설정을 변경하지 않았다면 아래와 같이 time-zone이 한국이 아닌 UTC로 되어있을 것이다.

## 참고 ##

  time-zone을 바꾸는 이유는 다양하지만, 이 사이트에서는 게시글을 insert/update 할 때 DB시간으로 등록/수정 시간을 삽입한다. 이때 한국시간으로 등록/수정하기 위해서 time-zone을 변경하는 것이다.

select now();

SHOW GLOBAL VARIABLES LIKE '%zone%';

RDS 파라미터 그룹에서 time-zone을 서울로 바꿔줘야, 기본으로 등록되어있는 dafault.으로 시작하는 파라미터 그룹은 수정이 되지 않아 [파라미터 그룹 생성] 버튼으로 새로운 파라미터 그룹을 생성해 준다.

아래와 같이 세팅후 [생성] 버튼을 누른다.

아래와 같이 생성된 파라미터명을 클릭하면

파라미터 값을 수정할 수 있는 상세페이지로 진입하는데, time_zone이라는 파라미터 값을 검색한다.[ 파라미터 편집] 버튼으 누른다.

[파라미터 편집] 버튼을 누르면 값을 선택할 수 있는데, Asia/Seoul을 선택하고 [변경 사항 저장] 버튼을 누른다.

이제 수정한 파라미터 그룹을 RDS 인스턴스에 등록해줘야 한다. DB명을 클릭해 상세페이지로 들어간다.

[수정] 버튼을 누른다.

수정페이지에서 [DB 파라미터 그룹] 영역을 찾아, 추가한 파라미터 그룹으로 변경해준다.

즉시 적용을 선택하고 [DB 인스턴스 수정] 버튼을 누른다.

수정 버튼을 누르면 RDS 서버가 [수정중] 상태가 되는데, 수정이 끝나고 아래 쿼리를 조회해보면 한국 시간으로 변경된 것을 확인할 수 있다. 

## 참고 ##

  만약 변경이 되지 않았다면 RDS 서버를 재시작한다.

2. 한글 인코딩 설정을 한다.

  RDS 서버 초기 세팅 상태에서 한글 데이터를 INSERT 하면, TABLE에 한글이 깨져서 삽입된다. 이때 테이블 별로 UTF-8로 인코딩을 변경해주면 해결할 수 있다. 아래와 같은 쿼리로 인코딩 타입을 변경해준다.

ALTER TABLE react.react_swtool convert to charset utf8;

3. Update/Delete 문이 실행되지 않을 때

 

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

  update/delete 쿼리를 실행할 때, 1175 에러코드의 메시지가 뜬다면, UPDATE 안전 모드로 되어있기 때문이다. 아래 쿼리로 SAFE MODE 를 꺼주면 해결할 수 있다.

SET SQL_SAFE_UPDATES = 0;

4. 함수, 트리거 등이 생성되지 않을때

 

MySQL Error 1227 “Access denied; you need (at least one of) the SUPER privilege(s) for this operation”

 

  함수나 트리거를 생성하는데 1227 에러코드 메시지가 뜬다면, 함수 생성 권한을 추가해야한다. 1번 서버시간 변경에서 사용한 파라미터 그룹 수정페이지로 들어간다. log_bin_trust_function_creators 값을 1로 수정 후, [변경 사항 저장] 버튼을 누른다.

4. 이전 강에서 생성한 테이블에 더미데이터를 삽입한다.

INSERT INTO `react_swtool` VALUES ('USW20200101000000', '툴 이름1', '상세 기능1', '20200101000000_라벨 이미지.png'
, '20200101000000_메인 이미지.png', '설명1', '데모 URL1', '20200101000000_메뉴얼 파일.docx', 'Github URL1'
, '20200101000000', 'userA1`', '20200102000000', 'userB1');
INSERT INTO `react_swtool` VALUES ('USW20200102000000', '툴 이름2', '상세 기능2', '20200102000000_라벨 이미지.png'
, '20200102000000_메인 이미지.png', '설명2', '데모 URL2', '20200102000000_메뉴얼 파일.docx', 'Github URL2'
, '20200102000000', 'userA2`', '20200103000000', 'userB2');

 

5. RDS 인스턴스에 동시접속가능한 DB connection 수를 확인한다.

  아래 쿼리를 조회해보면 t2.micro의 경우는 결과값이 66이 나오는데, db connection를 66개까지 연결할 수 있다는 의미이다. DB connection pool을 사용할 때, max_connection 값을 생각해서 세팅해야한다.

show variables like 'max_connections';

RDS 서버 사양별 최대 연결 수는 아래와 같다.

t2.micro: 66
t2.small: 150
m3.medium: 296
t2.medium: 312
M3.large: 609
t2.large: 648
M4.large: 648
M3.xlarge: 1237
R3.large: 1258
M4.xlarge: 1320
M2.xlarge: 1412
M3.2xlarge: 2492
R3.xlarge: 2540

 

https://taling.me/Talent/Detail/19341

 

[비전공자도 가능한 웹 프로젝트] 개발부터 배포까지, 배우면서 완성(react,nodejs,mysql,aws)! | 탈잉

✔ 수업 목표 & 5주 뒤 결과물 만들고 싶은 서비스를 직접 구현하게 됩니다. 사람들이 방문하고 액션을 할 수 있는 웹 페이지를 제작 & 배포하는 것까지 진행됩니다. 여러분이 개발 경험이 있든 ��

taling.me:443

강의 문의 : ljung5@naver.com

Comments