[AWS]AWD RDS 설정
in Study on AWS&Docker
Amazon Relational Database Service(Amazon RDS)란?
Amazon Relational Database Service(Amazon RDS)는 AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스입니다. 이 서비스는 산업 표준 관계형 데이터베이스를 위한 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업을 관리합니다
-> 그냥 AWS에 디비 띄워서 공용으로 사용 가능하게 하겠다는 뜻.
위 짤은 프리티어 혜택들
그리고 AWS RDS를 만드는 곳에 가면 위와 같은 화면이 뜨는데 원하는 디비 설정하고 만들어준다.
가용성 및 내구성 부분은 인스턴스 하나 생성되면 대기 인스턴스 하나를 생성해서 하나를 만들것이냐 아니면
그냥 대기 인스턴스 없이 사용할 것인가 묻는 거
아래는 원하는 대로 설정 이 설정은 그냥 이름만 변경함
그리고 db부분은 db.m6g.large 그대로(디폴트)로 설정하는 것 같다.
스토리지의 경우 EBS 기반이기 떄문에 EBS에 선택한것과 동일 마그네틱 선택한다.
근데 그냥 다 무시하고 우리는 프리티어 쓴다.
그리고 밑에 추가구성은 3306(mysql이라) 그대로 두 암호인증 선택해 둠
그리고 아래 프리티어면 위와 같은 화면이 뜰것
그리고 RDS가 만들어지면 아래와 같은 화면이 만들어진다.
위에 인스턴스 연결을 클릭한다. 상세 정보들이 나온다.
그럼 암호가 나올텐데 암호 복사하면 이전 화면에 사용가능이 뜬다.(근데 나같은 경우 그냥 떠있던데 버전 업데이트 되서 그런가 아무튼 그럼)
그리고 옆 메뉴인 유지보수 관리에 들어가면 스냅샷이 하나 생성된 것을 볼 수 있다.
그리고 메뉴에 연결 & 보안이 있는데 여기 엔드포인트라는 것이 있다.
만약 멀티적으로 구성했다면 저 경로로 들어가면 날아가지 않게된다(싱글(프리티어)일 떄는 잘 모르겠다.)
RDS운영 환경에 맞는 파라미터 설정
파라미터 그룹 - 파라미터 설정
세부 정보 위쪽에 DB 엔진 선택하는 항목에서 생성한 DB와 같은 버전을 맞춰야 한다.
만약 마리아디비 10.2.21이면 같은 버전으로 해야한다.
위에서 생성한 파라미터 그룹을 클릭한다.
파라미터 편집으로 설정들을 하나씩 변경
time/zone으로 가서 asia/seoul 선택
그리고 Character Set을 변경
총 8개 항목 변경
character_set_client character_set_connection character_set_database character_set_filesystem character_set_results character_set_server collation_connection collation_server
이 8개 항목 중 character 항목은 utf8mb4로
collation 항목들은 utf8mb4_general_ci로 변경한다.
utf8과 utf8mb4의 차이는 이모지의 저장 가능 여부이다.
utf8은 이모지를 저장할 수 없지만, utf8mb4는 이모지를 저장할 수 있으므로 보편적으로 utf8mb4를 많이 사용한다.
마지막으로 max connection을 수정한다.
RDS의 Max Connection은 인스턴스 사양에 따라 자동으로 정해진다.
프리티어사양은 60개만 가능하다.(돈 내면 더 가능)
생성한 파라미터 그룹을 데이터베이스에 연결한다
옵션에서 DB 파라미터는 default로 되어있다
DB파라미터 그룹을 방금 생성한 신규파라미터로 변경한다.
수정에서 DB 파라미터 그룹을 변경한다. 그 후 저장.
수정사항 요약에서 반영 시점을 적용 시점을 즉시 적용으로 한다
예약된 다음 유지시간으로 하면 지금하지않고 새벽시간대에 진행한다.
이 수정사항이 반영되는 동안 디비가 작동 안할 수 있으므로 예약 걸어두라는 의미지만 지금은 서비스가 오픈 되지 않아서 즉시 적용.
혹시 파라미터 그룹이 제대로 반영 안 될수 있으므로 정상 적용을 위해 한번 더 재부팅을 진행한다.
로컬 PC에서 RDS 접속해보기
로컬에서 RDS에 접근하기 위해 RDS의 보안그룹의 나의 IP를 추가해야 한다.
RDS의 세부정보 페이지에서 [보안 그룹] 을 선택한다.(컨트롤로 새창 띄워서)
그리고 EC2에 사용된 보안그룹의 그룹 ID를 복사한다.
인바운드 규칙 편집으로 들어간다.
복사된 보안그룹 ID와 본인 IP를 RDS보안 그룹의 인바운드로 추가한다.(EC2 인스턴스 안의 보안그룹)
인바운드 규칙에서는 Mysql/Aurora를 선택시 자동으로 3306 포트가 선택된다.
보안그룹 첫 번째 줄 : 현재 PC의 IP를 등록한다. 보안그룹 두 번째 줄 : EC2의 보안그룹을 등록한다.
- 이렇게 하면 EC2와 RDS간의 접근이 가능하다.
- EC2의 경우 이후 2,3대가 될 수도 있는데 매번 IP를 등록할 수 없으니 이렇게 보안 그룹간에 연동을 한다.
RDS간에 개인PC, EC2의 연동 설정은 모두 됨. 로컬 간에 테스트를 진행하면 된다.
Database 플러그인 설치
인텔리제이에 플러그인을 설치한다.
RDS의 접속 URL은 연결 & 보안에 있다.(엔드포인트)
인텔리제이에 플러그인을 설치하면 옆에 DB브라우저가 생성된다.
그리고 MariaDB를 썼으므로 Mysql을 선택한다.
마스터 계정명과 비밀번호를 등록 뒤 커넥션 테스트 해본다.
참고로 마스터 계정은 AWS안의 계정을 말한다.(이거 몰라서 로컬 mysql인줄 알고 삽질..)
참고로 위에서는 얼티메이트 버전이라 DB 설정 항목이 따로 있어서 거기서 했다.
그리고 콘솔로 들어가서 쿼리를 짜면 된다.
만약 본인이 RDS 생성시 지정한 database명을 잊었다면 인텔리제이 왼쪽의 schema항목에서 MYSQL에서 기본으로 생성하는 스키마 외에 다른 스키마가 있으므로 확인하면 된다.
삽질)
아니 아무리 찾아도 데이터베이스 스키마가 없길래 찾아보니 데이터베이스 옵션이 없었고 데이트 베이스 이름 지정 안하면 데이터베이스를 생성 안한다.. 하.. 다시 생성해야됨.