이전 내용
[aws] ubuntu(우분투) Xshell 8 연결하기
이전 내용 [aws] 데이터베이스: RDS 생성하기이전 내용 [aws] default.conf 란?이전 내용 [aws] 3-Tier의 첫걸음: 도메인 톰캣 화면으로 바꾸기이전 내용 [aws] 프라이빗 서브넷 생성하기(feat. NAT 게이트웨
puppy-foot-it.tistory.com
Workbench의 출력 시간
(feat. UTC 시간?)
예전에 aws에서 RDS를 생성하고 DB 관리를 위한 MySQL Workbench(이하 Workbench)를 설치하여 연동하였다.
[aws] 데이터베이스: RDS 생성하기
이전 내용 [aws] default.conf 란?이전 내용 [aws] 3-Tier의 첫걸음: 도메인 톰캣 화면으로 바꾸기이전 내용 [aws] 프라이빗 서브넷 생성하기(feat. NAT 게이트웨이)이전 내용 [aws] Bastion Hub 만들기이전 내
puppy-foot-it.tistory.com
Workbench를 실행한 후 현재 시각을 확인할 수 있는 쿼리문을 입력해 보면
select now();
현재의 시간이 나오는데, 처음에는 UTC 기준 시간이 표시된다.
★ UTC(Universal Time Coordinated) 란? (출처: 나무위키)
협정세계시(協定世界時)는 국제적인 표준 시간의 기준으로 쓰이는 시각이다.
한국은 UTC+9 시간대에 속하므로 UTC 시간에 +9를 해주면 한국 환산 시간이 나온다. 예시로 UTC 02:00은 한국 기준으로는 오전 11:00이다. 즉, 한국 시계가 협정 세계시보다 아홉 시간 빠르다.
혹자는 UTC 시간이 나오면 왜 안 되는데? 라고 생각할 수 있다. 필자도 UTC 시간을 한국 시간대로 바꿔줘야 하는 이유에 대해 찾아봤다. (수업 시간에도 굳이 왜 바꿔야 하냐는 의견이 있었으니까.)
◆ UTC 기준 시간을 변경해줘야 하는 이유
서버 사이 동기화 작업을 진행해야 하는 상황이 발생한다. 서버 동기화에서 중요한 물리적 요인중 하나로는 시간이다.
각 서버의 운영체제 시간(or 하드웨어 시간)이 조금이라도 틀어지게 된다면 연동이 되지 않거나, 연동이 되더라도 나중에 시스템에 문제가 발생했을 때 크게 아래와 같이 문제점이 발생할 수 있다.
① 로그를 확인하는 과정에서 시간 간극으로 인해 정확한 원인을 파악하지 못하는 경우가 발생한다.
② 각종 로그 설정이나 디버깅에 있어 서버마다 다른 시간을 바라보고 있으면 디버깅이 어려워지며 특정 어플리케이션에서는 서비스에 문제가 발생 될 수 있다.
이러한 이유들로 AWS의 RDS와 연동된 시간 기준을 우리가 있는 한국 시간대로 변경해줘야 한다. 이제부터 이를 해보려 한다.
Workbench의 출력 시간 변경하기
부제: aws 파라미터그룹 설정하기
먼저 aws console로 접속하여 [RDS] - [파라미터 그룹] 으로 들어온 뒤, '파라미터 그룹 생성' 클릭
RDS 엔진 버전과 동일한 엔진 유형과 그룹 패밀리를 선택해줘야 한다.
(다른 버전 선택했더니 DB 인스턴스를 수정할 때 해당 파라미터 그룹이 보이지 않아서 몇 번을 헤맸다.)
필자의 경우, 생성한 RDS가 MariaDB의 11.4 버전으로 생성했으니, 엔진 유형과 파라미터 그룹 패밀리도 동일한 것으로 선택
파라미터 그룹을 생성한 뒤, 생성한 파라미터 그룹을 선택하고 [작업] - [편집] 을 클릭하여 몇 가지 파라미터를 수정해줘야 한다.
1. Time zone
앞서 RDS에서 select now(); 라는 쿼리문을 입력하면 UTC 시간이 나온다고 했는데, 한국 시간대로 인식되게 하려면 이 파라미터를 수정하면 된다. 수정 가능한 파라미터 검색 창에 'zone'을 입력한 뒤, 'Asia/Seoul' 입력 ▶ 변경사항 저장
2. character 파라미터들
이것은 한글이 깨지는 문제와 관련이 있으므로, 검색창에 'character'를 입력하면 나오는 파라미터 중 아래의 6개
- character_set_client
- character_set_connection
- character_set_database
- character_set_filesystem
- character_set_results
- character_set_server
의 입력값에 'utf8mb4' 입력 ▶ 변경사항 저장
※ MySQL, MariaDB는 utf8로 세팅하는 경우 emoji문자가 입력되지 않는다. 이런 문제점을 해결하기 위해 utf8mb4 라는 charset이 나오게 되었다.
3. collation 관련 파라미터
※ collation
인코딩을 기반으로 글자를 비교하는 정해진 규칙으로, 대소문자 구분, 정렬 방식, 문자열 함수 결과 등을 정한다.
데이터 정렬, 비교하는 방식을 지정하는 명령어로, collation 설정에 따라 작업 결과가 다르게 나타날 수 있다.
마찬가지로 검색창에 'collation' 을 검색하고 나오는 파라미터 중 아래의 두 개의 파라미터에
- collation_connection
- collation_server
입력값을 'utf8mb4_general_ci' 라고 입력한다. ▶ 변경사항 저장
utf8mb4는 앞서 설명했고,
general_ci는 "case insensitive"를 의미하는데, 즉 대소문자를 구별하지 않고 문자열을 비교할 수 있다.
그리고나서 데이터베이스를 클릭하고, '수정' 버튼 클릭
인스턴스 수정에서 기존의 인스턴스 설정은 그대로 놔두고 마스터 암호 (확인 포함)를 입력하고
추가 구성에서 데이터베이스 옵션 - DB 파라미터 그룹을 클릭해보면 앞서 생성한 파라미터 그룹이 생성되어 있는 것을 확인할 수 있는데, 이를 선택
그리고나서 수정 예약에서 '즉시 적용' 선택하고 'DB 인스턴스 수정' 클릭
그리고나서 데이터베이스 [작업]에서 '재부팅'을 클릭하여 데이터베이스를 재부팅 해준다.
다시 Workbench로 돌아가서 현재 시간을 확인하는 쿼리문을 입력해보면
시간이 현재 시간대로 바뀐 것을 확인할 수 있다.
다음 내용
[aws] IAM 계정 생성하기
이전 내용 [aws] Workbench에서 UTC 시간 변경하기(파라미터그룹)이전 내용 [aws] ubuntu(우분투) Xshell 8 연결하기이전 내용 [aws] 데이터베이스: RDS 생성하기이전 내용 [aws] default.conf 란?이전 내용 [aws]
puppy-foot-it.tistory.com
[참고]
나무위키
https://cirius.tistory.com/1769
'프로그래밍 및 기타 > Cloud : AWS' 카테고리의 다른 글
[aws] CloudFront (0) | 2025.02.21 |
---|---|
[aws] IAM 계정 생성하기 (0) | 2025.02.21 |
[aws] ubuntu(우분투) Xshell 8 연결하기 (0) | 2025.02.21 |
[aws] 데이터베이스: RDS 생성하기 (0) | 2025.02.20 |
[aws] default.conf 란? (0) | 2025.02.20 |