AWS를 이용하여 배포 환경을 구축해보자 1 - VPC (tistory.com)
AWS를 이용하여 배포 환경을 구축해보자 2 - EC2부터 ssh 접속까지 (tistory.com)
EC2도 만들었으니 데이터를 저장할 데이터베이스를 만들어보자.
RDS는 AWS가 관리해주는 데이터베이스다. RDS를 사용하여 사용자는 디비 사용에만 집중할 수 있다.
AWS는 늘 과금을 조심하자.
생성
1. [RDS] - [데이터베이스] - [데이터베이스 생성]
2. 데이터베이스 설정
나는 MySQL을 사용할 예정이다.
각자 원하는 엔진을 선택
5.7버전으로 선택
각자 필요한 버전으로 선택
나중에 돈 많이 벌어서 비싼거 쓰자^.ㅜ..
RDS 인스턴스 이름과 마스터 설정
식별자는 인스턴스의 이름이니 내가 알아보기 쉽게 정해주자.
마스터 계정은 DB접속시에 사용된다.
여기서는 RDS인스턴스의 사양을 지정
하고 싶지만 프리티어는 지정할 수 없다.
t2 마이크로 강제임 따흑
스토리지 유형: 데이터를 저장하는 디스크
범용 -> 싸다 그래서 느리다.
프로비저닝된 IOPS -> 더 빠르다 당연히 더 비싸다.
할당된 스토리지: 저장소의 용량
용량과 속도가 비례하는 매직이 존재한다.
프리티어는 20!
스토리지 자동 조정도 해제
딱 봐도 돈냄새 난다.
프리티어는 건드려보지도 못하는 구역
백업용을 위한 영역이다.
대기 인스턴스 생성을 선택하면 서로 다른 AZ에 각각 생성이 되고 데이터가 각각 저장이 된다.
당연히 두 배의 요금이 든다🥰🥰
중요한 연결 탭
이전에도 말했지만 내가 구축할 네트워크는 아래와 같다.
이전에 생성했던 EC2와 같은 서브넷을 선택한다.
퍼블릭 액세스를 예로 선택하면 외부에서 RDS로 접근할 수 있는 상태가 된다.
이전에 생성했던 프라이빗 보안 그룹 선택
초기 데이터베이스 이름에 원하는 이름을 넣어주면 create database (이름)이 된다.
백업 부분은 딱히 건드리지 않았다.
백업 보존 기간이 7일이면 8일째부터 과거 백업 데이터는 삭제된다.
유지 관리 기간: 변경 사항들을 모아 특정 시간에 업데이트한다. 아무때나 디비 설정을 변경해버리면 디비에 무슨 일이 일어날지 모르니까...
난 테스트용이라 삭제 방지 활성화를 선택하지 않았다.
언급하지 않은 부분들은 기본 설정은 사용했다.
3. 모든 설정이 마무리 되었으면 [데이터베이스 생성] 선택
인스턴스를 생성하는데 시간이 걸린다.
잠깐 아이스크림을 먹고 오자.
4. 이제 바로 서버에서 연결하기 전에 새로 생긴 데이터베이스니까 한글 설정을 꼭 해줘야한다.
아휴 귀찮아..
만약 한글 설정을 하지 않고 그냥 테이블을 만들었다면 alter로 수정해줘야 한다.
MySQL의 기본 인코딩 값은 latin-1이다. 우리는 이걸 최소 UTF-8(이모지까지 고려한다면 utf8mb4)로는 만들어줘야 한다.
이왕 하는 거 이모지까지 고려해서 설정해보자
5. [RDS] - 왼쪽 메뉴 하단에 있는 [파라미터 그룹] 선택
들어가보면 기본 파라미터 그룹이 있다.
이건 수정이 안 되니까 새로 만들어주자.
6. 우측 상단에 있는 [파라미터 그룹 생성] 선택 - 세부 정보는 아래 참고 - [생성]
맞는 버전을 선택해주고 이름을 정해주자.
내가 잘 알아볼 수 있으면 된다.
추가되었다.
7. 체크박스 체크 후 편집 선택
들어가면 무수히 많은 설정값들이 있다.
모두 읽어가며 찾을 필요는 없고 감사하게도 필터링이 가능하다.
8. 'char' 로 필터링한다.
9. character와 관련된 설정들을 utf8 혹은 utf8mb4로 바꿔준다.
filesystem은 binary
10. 'collation' 로 필터링 후 [utf8mb4_unicode_ci] 로 설정 변경 후 우측 상단에서 [변경 사항 저장] 선택
collation은 데이터 정렬 기준 설정이다.
[변경 사항 저장]을 눌렀는데 아무 반응이 없다면 [편집 취소]를 누른 다음 'character' 와 'collation'으로 필터링 해보자.
값이 바뀌어있는 모습을 볼 수 있다.
+ 타임존도 변경하려면
11. 이렇게 편집한 파라미터 그룹을 RDS에 적용하자. [RDS] - [데이터베이스] - 방금 만든 DB 선택 - 우측의 [수정] 클릭
쭉쭉 내려가면 추가 구성 탭에 DB 파라미터 그룹이 있다.
default값을 우리가 방금 생성해서 설정을 변경해준 파라미터 그룹으로 수정한다.
12. 하단에 있는 [계속] 선택
지금 당장 적용해야 하니까 [즉시 적용] 선택 - [DB 인스턴스 수정] 선택
수정을 하고 나면 아래에서 파라미터 그룹을 확인할 수 있다.
구성에서 확인 가능
13. RDS 재부팅
14. 접속해서 확인 가능
현재 외부 접속을 막아논 상태니까 EC2를 통해서 들어가보자.
mysql -h [엔드 포인트] -u [마스터 계정] -p [데이터베이스 이름]
이것도 마찬가지로 쉘 스크립트로 만들어두면 편하다.
엔드포인트는 RDS 인스턴스 선택 후 상세 화면의 [연결 & 보안] 탭에서 확인 가능하다.
마스터 계정과 데이터베이스 이름은 RDS를 생성할 때 이미 위에서 모두 설정한 값들이다.
EC2에 접속해서 아무것도 설치 하지 않은 상태라면 update && upgrade && mysql install 까지 모두 해줘야한다.
update -> 저장소에서 OS에 설치된 패키지들의 버전 리스트를 다운로드한다. 새로운 버전이 있는지 확인.
sudo apt-get update
업데이트 후에 업그레이드를 해줘야 한다.
upgrade -> update에서 받은 리스트에서 새 버전이 존재하면 업그레이드 한다.
sudo apt-get upgrade
중간에 y 눌러줌
그 후 mysql 설치
아래처럼 설치하면 5.7버전이 설치된다고 알고 있다.
sudo apt install mysql-client
그 다음에 다시 mysql -h [엔드 포인트] -u [마스터 계정] -p [데이터베이스 이름] 를 누르면 비밀번호를 입력하라고 한다.
설정값을 보고싶다면 아래 명령어 입력
show variables where variable_name like 'c%';
어... 근데 난 설정이 잘 안됐다.
그럼 그냥 여기서 바꿔주자
ALTER DATABASE [데이터베이스 이름] DEFAULT COLLATE 'utf8mb4_unicode_ci';
이것만 해주면 collation_database와 character_set_database 가 제대로 변경된다.
변경되지 않는다면 아래 명령어도 시도해볼 것
ALTER DATABASE [데이터베이스 이름] DEFAULT CHARACTER SET 'utf8mb4';
난 character set 을 변경하니까
collation_database 가 general로 설정이 된다. 그래서 다시 COLLATE 값으로 변경해주니까 이전과 같은 상태가 되었다.
그리고 분명 모두 utf8mb4 와 관련된 값으로 설정했는데 RDS에 모두 설정되지는 않았다.정상 작동은 되지만 왜인지는 더 알아봐야겠다.
✨다음 글✨
AWS를 이용하여 배포 환경을 구축해보자 번외1 - EC2에 Spring boot 프로젝트 배포하기(수동 배포) (tistory.com)
'AWS' 카테고리의 다른 글
AWS를 이용하여 배포 환경을 구축해보자 번외1 - EC2에 Spring boot 프로젝트 배포하기(수동 배포) (1) | 2021.03.06 |
---|---|
AWS를 이용하여 배포 환경을 구축해보자 2 - EC2부터 ssh 접속까지 (0) | 2021.02.27 |
AWS를 이용하여 배포 환경을 구축해보자 1 - VPC (0) | 2021.02.27 |