0. 들어가며
이번에 새로운 프로젝트를 진행하면서, AWS에 새로운 RDS 인스턴스를 생성할 일이 생겼다.
몇 번의 크고 작은 프로젝트를 거치며 여러 번 진행했던 일이지만, 할 때마다 헷갈리고 자료를 찾아봤던 기억이 났다.
이번 기회에 확실하게 블로그에 정리해두면 좋을 것 같아 글을 작성하게 되었다.
AWS 계정은 이미 존재한다고 가정하고 진행하겠다.
1. 보안 그룹 생성
우선, RDS 인스턴스에 적용할 보안 그룹을 생성해야 한다.
보안 그룹은, 특정 인스턴스(EC2, RDS 등등)에 대한 트래픽에 대한 규칙을 정하는 것이라고 생각하면 된다.
AWS Console 검색 창에 '보안 그룹'을 입력하고, EC2 기능 - 보안 그룹을 클릭한다.
리전이 '서울'로 되어있는지 확인하고, '보안 그룹 생성' 버튼을 누른다.
첫 번째로, 보안 그룹 이름과 설명을 적어준다.
이 이름의 경우 크게 중요하지는 않지만, 추후 다른 보안 그룹을 생성할 경우를 대비해 식별할 수 있는 이름으로 생성해 주는 것이 좋다.
이후 인바운드, 아웃바운드 규칙을 작성해주어야 한다.
인바운드 규칙은 외부 -> RDS로 들어오는 트래픽,
아웃바운드 규칙은 RDS -> 외부로 나가는 트래픽을 의미한다.
우선 유형 - 소스를 먼저 살펴보겠다.
나는 단순한 프로젝트를 위한 것이기 때문에, TCP 프로토콜로 들어오는 모든 IP에 대해 트래픽을 허용 해 두었다.
하지만 실제 상용 서비스를 운용할 때에는 모든 IP에서 RDS에 접근할 수 있도록 처리할 경우 보안이 매우 취약하기 때문에, 특정 IP에서만 접속 가능하도록 설정해 주어야 한다.
포트는 DB마다 일반적으로 사용하는 포트가 따로 존재하는데, 나는 PostgreSQL을 사용하기 때문에 5432번으로 지정 해 주었다.
MySQL의 경우, 기본 포트가 3306이므로, 사용하는 DB에 맞는 포트를 입력해 준다.
2. RDS 생성
보안그룹을 생성했으니, 이제는 RDS 인스턴스를 생성 할 차례이다.
AWS Console에 'RDS'를 검색해 들어가 준다.
'DB 인스턴스' 버튼을 눌러 들어가 준다.
여기서 RDS 인스턴스에 대해 잠깐 이야기하자면, AWS 프리티어 계정의 경우 1달 동안 750시간의 RDS 인스턴스 구동이 무료로 지원된다.
계산을 해 보면, 1개의 계정에서 1개의 RDS 인스턴스를 1달 내내 작동시킬 경우에는 무료로 사용이 가능하지만, 여러 개의 인스턴스가 동시에 구동되고 있을 경우 과금이 발생할 수 있기 때문에 주의해야 한다.
'데이터베이스 생성' 버튼을 클릭한다.
나는 PostgreSQL을 사용할 것이기 때문에 선택 해 주었고, 프리 티어 요금제에서는 PostgreSQL 기준 버전 12 이하까지만 지원한다고 해서 12의 가장 최신 버전을 선택해 주었다.
AWS를 사용할 때에는 항상 과금을 주의해야 한다! 꼭 프리 티어를 선택하자.
DB 인스턴스 식별자 역시 다른 인스턴스와 헷갈리지 않도록 이름을 지정해준다.
마스터 사용자 이름, 마스터 암호는 DB에 접속하기 위해 필요하므로 반드시 기억해두어야 한다.
인스턴스 클래스를 db.t2.micro로 변경 해 주었다.
t3.micro도 프리 티어로 사용이 가능하다는 이야기가 있는데, 과금되었다는 사람도 존재했기 때문에, 혹시 모를 과금의 위험을 피하고 싶었다.
스토리지 자동 조정 활성화 역시 필요 없는 옵션이라 꺼 주었다.
(AWS 설정 시에는 필요없는 옵션은 모두 꺼 주는 것이 좋다고 생각한다.)
이 부분은 아무 것도 건드리지 않았다.
나는 Datagrip이라는 툴을 이용해 RDS에 접속할 것이기 때문에, 퍼블릭 액세스를 허용 해 주었다.
보안 그룹 역시 아까 위에서 생성했던 보안 그룹으로 지정해주었다.
위에서 생성한 마스터 비밀번호를 사용해 인증을 DB에 접속할 것이므로 '암호 인증'을 선택해주었다.
성능 인사이트도 당장 필요하지 않은 옵션이기 때문에 꺼 주었다.
추가 구성 역시 모두 꺼 주었다.
초기 데이터베이스 이름 란은, RDS 내부의 데이터베이스를 당장 생성할 지 여부를 묻고 있는데, 추후 생성해 주면 되기 때문에 옵션을 해제했다.
이렇게 모든 옵션들을 검토했고, '데이터베이스 생성'을 눌러 RDS 인스턴스를 생성했다.
'Dev' 카테고리의 다른 글
VSCode에서 SSH로 리눅스 서버 원격 연결하기 (0) | 2022.12.11 |
---|---|
AWS RDS, PostgreSQL timezone 변경하는 방법 (0) | 2022.11.22 |
NVIDIA DLI - 딥러닝의 기초 (2) | 2022.08.23 |
DB에서 상대적 위치 값을 활용해 드래그 앤 드롭으로 인한 순서 변경 처리하기 (0) | 2022.08.01 |
[THE SOPT 도커 스터디] Week5 - 3. 도커 스웜 (0) | 2022.06.01 |