[AWS] EC2 & RDS 활용해 Django 서버 배포하기 (2)

민영·2023년 11월 15일
0

aws

목록 보기
2/4

RDS 생성하기

RDS란 ?
관리되는 관계형 데이터베이스 서비스
클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있도록 서비스를 제공!

먼저 서비스 -> EC2 화면에서 왼쪽 하단의 네트워크,보안 -> 보안그룹으로 들어간다. 보안그룹 생성을 누르면 다음과 같은 화면이 나온다.

보안그룹 이름과 설명을 작성한다.
vpc 정보의 경우, 생성한 ec2와 같은 vpc를 선택해주면 된다!

VPC?
VPC는 사용자가 정의하는 aws 계정 사용자 전용 가상의 네트워크 이다. 사용자는 자기가 원하는대로 IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워크 환경을 구성해 VPC를 생성할 수 있다. 한마디로 AWS용 나만의 개인 네트워크 망이라고 이해하면 된다.

따라서 ec2와 rds가 연결되기 위해서는 서로 같은 vpc를 사용해야 한다.

그리고 인바운드 규칙을 추가해준다.

*인바운드 규칙?
해당 보안 그룹에 속한 모든 인스턴스에 대해서 외부에서 접근할 수 있는 규칙을 설정해주는 것이다. 인바운드 규칙에서 허용하지 않은 접근은 접근이 불가능하다.

나는 mysql db를 사용할 것이기 때문에 유형 정보에는 mysql/Aurora를 설정해준다. 소스는 ec2에서 사용하는 것과 같은것으로 설정해준다.
나는 ipv4 + 위치무관으로 설정해주었다.
(내가 생성한 ec2에서 ipv4의 프로토콜을 사용하기 때문에, ipv4프로토콜을 사용하는 모든 ip주소를 허용해준다는 것으로 이해했다.)

그리고나서 보안그룹 생성을 눌러주면 보안그룹이 생성된다!

보안그룹을 생성하고 RDS 서비스 페이지에서 서브넷 그룹을 누르고 DB 서브넷 그룹 생성을 눌러준다.

서브넷 그룹의 이름과 설명을 작성하고 vpv는 ec2, 그리고 보안그룹 생성할 때 설정한 것과 같은 것으로 설정해준다.

서브넷 추가에서는 모든 것을 추가해준다.
이는 DB 인스턴스와 연결할 서브넷&해당 서브넷 내의 IP 주소를 선택하는 것이다. 서브넷은 선택한 가용 영역 내에 존재하는 서브넷이다.
aws에서는 가용성을 위해 2개 이상의 AZ&서브넷을 반드시 선택하도록 되어있다.

가용 영역(AZ:Abailability Zone) ?

  • aws는 global하게 호스팅 서비스를 지원하고 있고,Region 단위로 서비스를 지원하는 영역을 구분한다. 그리고 각 region별로 코드를 가지고 있다. (서울 : ap-northeast-2)
  • 하나의 region내에는 2개 이상의 az가 있고(ap-northeast-2a, ap-northeast-2b..), az는 개별 데이터센터로 구성되어 있다. 각 데이터 센터에는 50,000 ~ 80,000 대의 물리적 서버가 존재한다.
  • 동일 리전 내 존재하는 복수의 AZ는 서로 물리적으로 격리되어 있지만, 좋은 품질의 네트워크 연결을 통해 논리적으로 연결되어 있다.
  • 이는 하나의 가용 영역이 각종 재해, 정전, 화재 등 다양한 이유로 작동불능이 되더라도 다른 가용 영역에서 서비스를 재개하여 유지할 수 있기 때문이다.

출처: https://inpa.tistory.com/entry/AWS-📚-아마존-웹-서비스-구조-Region-AZ-Edge-Location-Cache-완벽-정리 [Inpa Dev 👨‍💻:티스토리
-> 정리를 잘 해 놓으셔서 도움이 되었다.

모든 설정을 했으면, 생성을 누르면 서브넷 그룹 생성이 완료된다.

보안그룹과 서브넷 그룹을 생성했으면, RDS 서비스 페이지에서 데이터베이스 생성을 해준다.
원하는 엔진 유형을 선택하면 된다.


나는 프리티어를 사용중이라 템플릿은 프리티어로 설정


이후 db이름과 user 이름, password를 입력해준다. 이름과 password는 이후 db 접속할 때 사용된다.


vpc를 ec2와 같은 것으로 설정해주고, 서브넷 그룹을 기존에 생성한 것 과 같은 것으로 설정해준다.
퍼블릭 액세스를 아니오로 할 경우, ec2와 같은 vpc를 사용하기 때문에 ec2에서 rds db에 접근하는 것은 문제가 없겠지만, 나의 경우 로컬 디비를 rds로 옮기는 것이 필요했기 때문에, 로컬에서 워크벤치를 통해 rds db에 접근하고자 했으므로 퍼블릭 엑세스를 예로 설정해주었다.


보안 그룹에는 기존에 생성해두었던 보안 그룹으로 설정해준다.

가용 영역 설정은 해당 데이터베이스를 어디에 생성해둘 것인지를 결정하는 것이다. (밑에 적힌 것을 보니 프리티어 계정은 하나의 az만 둘 수 있는 것 같다..)


마지막으로 데이터베이스 인증 옵션을 암호인증으로 설정해주었다. 데이터베이스 생성할 때 설정한 암호와 이름을 통해 인증을 진행하고 접속할 수 있다.

설정을 마치고 데이터베이스 생성을 하면 최종적으로 생성된다.

생성된 데이터베이스의 엔드포인트, user이름, password, port번호를 입력하면 ec2 또는 로컬 워크벤치를 통해서 데이터베이스에 접속할 수 있다.

profile
공부한 것을 기록하는 곳입니다 🖐

0개의 댓글