ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS 배포를 위한 모든것 2 (EC2 RDS 연동)
    AWS 2024. 11. 18. 00:54

    RDS

     

    RDS란 Amazon Relational Database Service의 약자로 AWS에서 제공하는 관계형 DB서비스다.

     

    EC2 서버에 DB를 설치해서 사용해도 되지만 RDS를 따로 서비스하는 이유는

    RDS는 자동화된 관리, 쉬운 확장가능성등의 이유이다.

     

    RDS를 사용하는 이유

     

    데이터베이스 운영 및 관리를 간소화하고 싶을 때.

    자동 백업 및 복구를 통해 데이터 안전성을 확보하고 싶을 때.

    고가용성과 확장성을 제공하여 장애 시 다운타임을 최소화하고 싶을 때.

    개발자는 애플리케이션 개발에 집중하고 AWS가 데이터베이스 관리를 맡도록 하고 싶을 때.

     

     

    MySQL로 설정해주었고, 탬플릿은 프리티어를 선택해준다.

    다중 AZ 클러스터는 앞의 게시글에 작성했듯 AZ 즉 물리적 DB위치를 다른곳에 둔다는 것이다.

     

    즉 같은 리젼안에 다른 AZ를 두어 하나에 장애가 발생하더라도 다른 하나는 영향을 받지 않게된다.

     

    다중 AZ DB 클러스터

    DB 인스턴스 3개로 DB 클러스터를 생성합니다. 각 DB 인스턴스는 서로 다른 가용 영역에 있습니다. 다중 AZ DB 클러스터에는 프라이머리 DB 인스턴스 1개와 읽기 가능한 예비 DB 인스턴스 2개가 있습니다. 다중 AZ DB 클러스터를 사용하면 고가용성, 읽기 워크로드 용량 증가, 지연 시간 감소를 제공할 수 있습니다.

    다중 AZ DB 인스턴스

    다른 가용 영역에 예비 DB 인스턴스 1개를 생성합니다. 다중 AZ DB 인스턴스를 사용하면 고가용성을 제공하지만 예비 DB 인스턴스는 읽기 워크로드에 대한 연결을 지원하지 않습니다.

    단일 DB 인스턴스

    예비 인스턴스가 없는 단일 DB 인스턴스를 생성합니다.

     

     

    이후 인스턴스 식별자, 마스터사용자 이름, DB암호를 설정해준다.

     

    아까 만들어 둔 EC2와 연결하기 위해 EC2컴퓨팅 리소스 연결을 선택해준다.

     

    VPC보다 작은 단위인 서브넷을 RDS를위해 따로 만들어주고 

     

     

    VPC는 기존에 EC2가 들어가있는걸 선택해줘야 한다. DB는 퍼블릭엑세스는 필요없으니 꺼둔다.

    어차피 서브넷의 EC2와만 통신하기 때문.

     

    이후 암호인증으로 설정을 마무리 해 준다.

     

    VPC


    이제 AWS서비스중 VPC에 들어가본다.

     

    먼저 VPC는 클라우드 내에서 사용자가 정의하는 가상 네트워크 공간이다.

    CIDR범위를 설정하여 완전히 격리된 환경을 제공한다.

     

    퍼블릭, 프라이빗 서브넷으로 네트워크를 분리가능하다.

     

    1. 서브넷 

    서브넷은 VPC를 더 작은 단위의 네트워크로 나눈것이다.

    VPC의 IP주소범위 CIDR을 더 작은 단위로 분할하고, 각 서브넷은 특정 AZ에 속한다.

     

    VPC CIDR: 10.0.0.0/16

    퍼블릭 서브넷 CIDR: 10.0.1.0/24

    프라이빗 서브넷 CIDR: 10.0.2.0/24

     

    2. 라우팅 테이블

    라우팅테이블은 네트워크 트래픽의 경로를 정의한다.

     

    VPC안의 서브넷은 각각 라우팅 테이블에 연결되어야 한다.

    라우팅 테이블에는 트래픽이 향하는 목적지와 이를 처리할 게이트웨이가 정의된다.

     

    3. 인터넷 게이트웨이

    라우팅 테이블에서 정의되는 인터넷과의 통신을 위한 네트워크 구성요소이다.

    퍼블릭 서브넷이 외부 인터넷과 연결되기 위해선 IGW로 시작하는 게이트웨이정의가 필요하다.

     

    4. 네트워크 ACL

    서브넷 수준에서 네트워크 트래픽을 허용 또는 차단하는 규칙이다.

    inbound, outbound를 각각 설정해야한다.

     

    5. 보안그룹

    VPC내에서 인스턴스 수준의 네트워크 트래픽을 제어하는 가상 방화벽이다

    ACL은 서브넷 수준이라면 인스턴스 수준이란 점이 차이점이다.

    하나의 인스턴스에 여러 보안그룹을 적용할 수 있고, ip범위, 프로토콜, 포트를 기준으로 허용/차단 한다.

     

    VPC 네트워크의 통합 동작

     

    1. 트래픽이 VPC 외부로 나가려면:

    퍼블릭 서브넷 → 라우팅 테이블 → 인터넷 게이트웨이 → 외부 네트워크.

    2. 트래픽이 서브넷 내로 들어오려면:

    네트워크 ACL에서 허용 → 보안 그룹에서 허용 → 인스턴스 접근 가능.

    3. 트래픽 보안 체계:

    네트워크 ACL은 서브넷의 기본 방화벽 역할.

    보안 그룹은 인스턴스 단위의 세부적인 접근 제어.

     

     

    EC2와 RDS는 인스턴스이므로 인스턴스 수준의 트래픽제어 방화벽인 보안그룹을 통해 서로의 인스턴스를 허용해준다.

    즉 ACL은 인스턴스들이 있는 서브넷의 전체적인 방화벽 역할을 하고, 각 인스턴스는 보안그룹에 따라 트래픽을 허용/차단 한다.

     

    모든 서브넷은 하나의 라우팅테이블과 연결되어야 하며, 퍼블릭 서브넷의 라우팅 테이블의 경우 igw 게이트웨이를 설정해줘야 

    외부 인터넷망과 연결될 수 있다.

     

    반대로 말하면 RDS가 있는 서브넷은 local게이트웨이만 필요하다. 

    프라이빗 서브넷이지만 외부로 나가는 트래픽이 필요한 경우에는 NAT를 사용하기도 한다.

     

     

    정리


    리젼 -> VPC -> 서브넷(네트워크 ACL, 라우팅 테이블(게이트웨이)) -> 인스턴스(보안그룹)

     

    을 모두 설정해주어야 배포했을때 외부에서 접근이 가능하고 RDS는 안전하게 EC2와만 통신할 수 있다.

    'AWS' 카테고리의 다른 글

    AWS 배포를 위한 모든것 3 (S3, Redis)  (0) 2024.11.18
    AWS 배포를 위한 모든것 1 (개념 + EC2)  (0) 2024.11.18
Designed by Tistory.