Skip to main content

AWS basic (3)

· 6 min read
고현림
프론트엔드 | 블록체인 Developer

Database Service

AWS RDS개요

  • 관계형 데이터베이스를 완전관리형으로 제공하는 서비스입니다.
  • RDS 서버 시스템을 직접 접속이 불가능해요.
  • VPC 내부에 배치해서 사용하며 VPC 환경을 이용한 보안 환경 구성 외에도 IAM, Secret Manager 등의 서비스를 통해 데이터베이스 보안을 강화할 수 있어요.

AWS RDS DBMS engine type은 아래와 같습니다.

백업

자동 백업과 수동 백업으로 나누어져있어요:

  • 자동 백업

    • 스냅샷과 트랜잭션 로그를 참고해서 데이터를 백업하는 방식으로 기본적으로 default로 활성화 됩니다. 특정 시점 데이터 상태로 복구할 수 있어요.
    • 원본 DBMS가 삭제되면 함께 삭제 되는 데이터에요.
  • 수동 백업

    • 사용자가 수동으로 원하는 시점에 스냅샷을 생성하는 방식이에요. 원본 DBMS가 삭제돼도 스냅샷은 삭제되지 않고 S3에 보관이 됩니다.
    • 다른 리전으로 복제를 하거나 다른 계정에 공유할 수 있어요.

AWS RDS Read Replica

  • 대규모 서비스 트래픽을 분산처리하기 위해서 데이터베이스 읽기 작업만 지원하는 복제 데이터 베이스 입니다.
  • 최대 15개의 읽기 전용 복제 본을 리전, 가용영역에 걸쳐 구성 가능해요. 읽기 전용 복제본은 원본 데이터베이스 시스템이 다운될 경우 별도의 독립된 DB 인스턴스로 수동 승격이 가능해요.

AWS RDS Multi AZ(가용영역)

  • Write Database를 Active-StanBy 형태로 이중화 구성이 되어있어 장애 대비 자동 복구 대응을 할 수 있어요.
  • Read Replica의 쓰기 전용 데이터베이스 승격과 유사하지만 다운타임이 없어요.
  • 예비용 인스턴스를 하나 더 생성하기 때문에 기존 대비 비용이 2배 증가합니다.
  • 성능향상에 대한 이점보다는 고가용성을 확보하기 위한 옵션이에요.

Storage Auto-Scaling

  • 운영관리 과정에 디스크가 부족해지는 경우 자동으로 용량을 확장할 수 있도록 지원하는 기능입니다.
  • 전체 용량 중 여유 공간이 10% 미만인 상태가 5분 이상 지속되고 && 지난 6시간 동안 저장소가 변경된 이력이 없을 경우에 자동으로 확장됩니다.

RDS Storage Structure

  • Aurora에 저장되는 데이터는 최소 3개의 가용영역에서 데이터를 복제하여 6개의 사본으로 저장해요 (4/6 Quorum 방식)
  • 내부에서 데이터 손실이 발생해도 자체적으로 사본을 통해 자동 복구를 합니다.

Aurora Storage, Read Replica, Auto-Scaling

  • 데이터의 저장공간은 10GB ~ 128TB 까지 자동으로 사용하는 만큼 확장할 수 있어요.
  • 읽기 전용 복제본은 최대 15개 까지 Auto Scaling 설정이 가능해요. Writter instance에는 적용이 불가능해요.

Management Service

Cloud Formation

개요

  • 인프라를 코드로 관리하게 해주는 서비스로, AWS 리소스의 생성, 관리, 업데이트를 자동화해줘요.
  • 코드를 템플릿 형태로 만들어서 관리하고, 템플릿을 통해 STACK을 생성하여 코드 내용을 기반으로 인프라를 생성합니다.

Cloud Watch

개요

  • AWS 리소스나 Application의 모니터링 서비스입니다.
  • 운영 데이터를 수집, 분석, 시각화, 관리를 위한 통합 서비스에요

주요구성은 아래와 같습니다.

  • Metrics : AWS 리소스에서 생성되는 Metric 수집 및 저장을 해요. Custom Metric 구성 및 수집/저장이 가능합니다. ex. EC2 CPU 사용률 등
    • 거의 모든 리소스에서 대한 지표를 기본으로 제공해줘요.
    • Metrics의 주요 구성 요소는 NameSpace, Metric Name, Dimension, Period가 있어요.
  • Logs : AWS 리소스에서 생성되는 Log 수집 및 저장을 해요. Custom 설정으로 Application, System, Log 추가 수집 및 저장 가능해요.
    • Standard, Infrequent Access 2개의 클래스를 지원합니다.
    • 로그의 주요 구성요소에는 Log Event, Log Stream, Log Group, Retention Period, Metrics Filter, Subscription Filter 이렇게 있어요.
  • Dashboards : Metric, Log를 시각화해요.
  • Alarms : Metric 데이터를 기준으로 Alarms를 설정합니다. 임계치 초과 시 SNS를 만들어 알림을 전송할 수 있어요.
  • CloudWatch Events : 이벤트를 수집하고 특정 리소스로 라우팅합니다. 기타 서비스와 연동하여 특정 작업을 자동으로 수행합니다.

Network Connectivity

VPC Peering

개요

  • 서로 격리 되어 있는 2개 이상의 VPC의 네트워크를 연결하는 서비스입니다.
  • 동일 리전, 가용영역에서 발생하는 데이터 트래픽은 무료이지만 리전, 가용영역을 교차하는 데이터의 경우에는 트래픽에 따른 금액이 발생해요.
  • 전이적 피어링이 불가능하며, CIDR block이 겹치는 경우에도 VPC Peering 구성이 불가능해요.

VPC Endpoint

개요

  • VPC 내부 리소스가 AWS Service에 접근할 때 Private Link를 사용해 사설 통신을 가능하게 해주는 서비스입니다.
  • 인터넷 게이트웨어, NAT 게이터으웨, VPN, Direct Connect를 사용하지 않고 사설 통신 구간을 이용해 AWS 서비스와 통신합니다.

Gateway Endpoint S3, DynamoDB 서비스를 대상으로 private 연결을 제공, Routing Table을 통해 연결합니다. 무료로 사용 가능합니다.

Interface Endpoint Private Link를 지원하는 서비스를 대상으로 Private 연결을 제공합니다. 지정한 VPC 내부에 Elastic Network Interface를 생성하여 통신을 지원해요. ENI와 AWS 서비스와 연결하여 Private 통신 구간이 활성화되는 구조이며, 트래픽에 따른 통신이 가능합니다.

Route 53

  • AWS에서 제공하는 완전 관리형 DNS 서버입니다. 도메인 구입 및 도메인 호스팅 관리릴 지원해요. 외부 도메인을 AWS Route53의 Hosted Zone에 등록하여 사용할 수 있습니다.
  • DNS Routing Policy를 통해 트래픽을 적합한 EndPoint로 라우팅합니다. 또한, 도메인 및 연결된 리소스에 대한 Health Check 기능을 제공해줍니다.
  • Route 53의 Public / Private Hosted Zone
    • Public Hosted Zone : 인터넷에 연결된 모든 리소스에 접근 가능한 DNS 서비스를 제공해요.
    • Private Hosted Zone : 특정 VPC 내부 리소스만 접근 가능한 Local DNS 서비스를 제공합니다. VPC 내부 리소스 간 통신을 위한 맞춤형 도메인을 제공해요.

Public Hosted Zone

  • 인터넷에 연결된 리소스의 DNS Record를 관리하는 저장소에요.
  • AWS 또는 외부에서 구매한 도메인을 등록하여 사용 가능해요. (반나절 저도의 시간을 ㄱ)

Private Hosted Zone

  • VPC 내부 네트워크 리소스의 DNS Record를 관리하는 저장소에요.
  • VPC 내부 통신에만 사용되며, 인터넷에서 접근이 불가능합니다. Private DNS 이름을 사용해 내부 애플리케이션 간 통신을 최적화 할 수 있어요.
  • Route 53에서 지원되는 DNS Records type은 아래와 같아요.
    • A : 도메인 주소와 IPv4 주소를 직접 할당해요.
    • AAAA : 도메인 주소와 IPv6 주소를 직접 할당해요.
    • CNAME(Canonical Name Record) : 도메인 주소를 다른 도메인 주소에 할당해줘요.
    • MX : 도메인 주소를 이메일 서버에 할당해줘요. 등록 도메인 주소 정보를 이메일 주소로 사용합니다.
    • NS : Name Server, 구매한 도메인을 관리하는 네임 서버 정보입니다.
    • SOA : Start of Authority, 구입한 도메인에 대한 기본 정보가 담긴 레코드에요. Open Search로 로그를 검색, 분석, 시각화를 합니다.

Policy

  1. Simple Policy
  • 단순한 방식으로 도메인에 대한 트래픽 리소스를 전달하는 방식입니다.
  • 1개의 레코드에 Multi value 설정이 가능해요.
  • Health Check 기능 사용은 할 수 없습니다.
  1. Weighted
  • 단순한 방식으로 도메인에 대한 트래픽을 리소스로 전달하는 방식이에요.
  • 도메인에 등록된 리소스 마다 가중치를 적용해 트래픽의 양을 조절합니다. 레코드의 유형과 레코드의 이름을 동일하게 구성하고 각 레코드에 가중치를 설정합니다.
  1. Latency
  • 응답 지연시간이 가장 적은 리소스의 정보를 반환하는 방식으로 사용합니다. 일정 기간 측정된 결과 값을 기준으로 라우팅해요.
  • 시간이 지남에 따라 다른 값을 반환 받을 수도 있습니다. 다중 리전 환경에서 클라이언트와 가장 근접한 리소스로 연결될 확률이 높아요.
  • Private Hosted Zone에 등록된 레코드에도 적용이 가능합니다.
  1. Failover
  • Route 53에서 제공하는 상태 검사기를 이용해 정상 리소스 값을 반환하는 방식이에요. 하나의 기본 레코드와 보조 레코드로 구성합니다.
  1. Geolocation
  • Client의 위치 정보를 기반으로 가장 가까운 리전의 리소스 정보를 반환하는 방식이에요. 위치 정보와 레코드 반환 값을 Mapping하여 구성합니다.
  • EDNS(RFC 7871) 기능을 지원하는 않는 경우에 예상과 달리 동작할 수 있습니다.