본문 바로가기

데이터엔지니어링

[6주차] AWS 클라우드(2)

🙂 DB

RDS

  • DB 인스턴스는 클라우드에서 실행하는 격리된 DB환경 
    • DB 인스턴스에는 여러 사용자가 만든 데이터베이스가 포함될 수 있으며,
    • 독립 실행형 DB 인스턴스에 액세스할 때 사용하는 도구 및 애플리케이션을 사용해 액세스할 수 있다.
  • AWS 명령줄 도구, Amazon RDS API 작업 또는 AWS Management Console을 사용해 간단히 DB 인스턴스를 만들고 수정 가능.
  • 직접 시스템 로그인 불가.
  • Serverless가 아님.

 Document DB

  • MongoDB API 워크로드의 완전 관리 및 유연한 확장이 가능한 문서전용(Document) DB
  • Amazon Document DB에서는 스토리지 및 컴퓨팅이 분리되어 각각을 독립적으로 조정.
  • 개발자는 데이터 크기에 관계없이 지연 시간이 짧은 읽기 전용 복제본을 몇 분 내에 최대 15개까지 추가하여 읽기 용량을 초당 수백만 개의 요청으로 늘릴 수 있음.
  • Amazon Document DB는 99.9%의 가용성을 위해 설계되었으며 6개의 데이터 복사본을 3개의 AWS 가용 영역(AZ)에 복제.
  • JSON 데이터
  • 유연한 인덱싱

🍦 MongoDB

  • Document 지향 DB
  • 데이터 중복이 발생할 수 있지만, 접근성과 가시성이 좋음.
  • 스키마 설계가 어렵지만, 스키마가 유연해서 Application의 요구사항에 맞게 데이터 수용이 가능.
  • 분산에 대한 솔루션을 자체적으로 지원해서 Scale-out이 용이.
  • 확장 시 Application을 변경하지 않아도 됨.


 Dynamo DB

  • 완전관리형 Key-Value 기반 NoSQL 데이터베이스 서비스.
  • Auto-Scaling
  • DynamoDB는 유휴 시 암호화를 제공하여 중요한 데이터 보호와 관련된 운영 부담 및 복잡성 제거
  • 원하는 양의 데이터를 저장 및 검색하고 어느 수준의 요청 트래픽도 처리할 수 있는 DB 테이블 생성 가능.
  • AWS Management Console을 사용하여 리소스 사용률 및 성능 지표를 모니터링.
  • DynamoDB는 온디맨드 백업 기능 제공.
  • 테이블 생성 시 스키마 생성 필요 X
DocumentDB DynamoDB
문서(Documents) key-values vs. 문서(Documents)
쉬운 확장 (최대 64TB) 하이퍼 스케일
풍부한 조회 연산자 모든 규모에서 일관된 지연 시간
최대 16MB 문서(Document) 크기 최대 400KB 아이템(Item) 크기
MongoDB API 호환, 쉬운 마이그레이션 글로벌 테이블과 같은 차별화된 기능
관리 및 가격 책정
인스턴스 기반
스토리지 자동 확장
가격(인스턴스, IO, 스토리지, 백업 스토리지)
관리 및 가격 책정
서버리스
자동 샤드(Shard) 및 오토스케일
가격 책정 (온디맨드 vs 프로비젼 비교)
프리티어 (무료구간) 사용

🙂 Network

Route53

DNS(네임서버) + 모니터링 + L4 + GSLB

  • 가용성과 확장성이 뛰어난 DNS(도메인 이름 시스템) 웹 서비스
  • 세 가지 주요 기능 (도메인 등록, DNS 라우팅, 상태 확인)을 조합해서 사용 가능
  • public host zone / private host zone 존재

Certification Manager

  • AWS Certificate Manage (ACM)을 사용하면 AWS 서비스 및 연결된 내부 리소스에 사용할 공인 및 사설 SSL/TLS 인증서를 프로비저닝, 관리 및 배포 가능.
  • ACM은 SSL/TLS 인증서를 구매, 업로드 및 갱신하는 데 드는 시간 소모적인 수동 프로세스를 대신 처리

  1. 사용할 TLS/SSL 인증서를 AWS 계정으로 요청하거나 가져옴.
  2. 도메인 이름 시스템(DNS) 또는 이메일 검증을 통해 요청된 인증서의 도메인 소유권을 검증하여 인증서 발급 완료
  3. Elastic Load Balancing(ELB), Amazon CloudFront 등과 같은 다양한 AWS 서비스에서 새로 발급되거나 가져온 인증서 사용.

🍦 특징

  • ACM 통합 서비스를 위한 무료 퍼블릭 인증서
  • 관리형 인증서 갱신
  • 손쉽게 인증서 받기

🍦 SSL 인증서

  • 공개 키와 개인 키라는 키 쌍을 가지고 있다.
  • 이 키들이 함께 작용하여 암호화된 연결을 수립
  • 인증서는 또한 '주체(Subject)'라는 것을 포함하고 이는 인증서/웹사이트 소유자의 ID
  • 인증서를 얻으려면 서버에서 인증서 서명 요청(CSR)을 생성.
  • 이 과정에서 서버에 개인 키와 공개 키 생성.
  • SSL 인증서 발급자(인증 기관 또는 CA라 함)에게 보내는 CSR 데이터 파일에는 공개 키가 포함.

 CloudFront

뛰어난 성능, 보안 및 개발자 편의를 위해 구축된 콘텐츠 전송 네트워크 (CDN) 서비스

  • CDN은 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크
  • 정적 콘텐츠 & 동적 콘텐츠
  • 캐싱 / 동적 가속 / 엣지 로직 계산

🍦 특징

  • 대기 시간 감소
  • 보안 향상
  • 비용 절감
  • 사용자 정의 전송

Elastic Load Balancing (ELB)

로드 밸런싱은 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법

🍦 Load Balancer

서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭

  L4 로드밸런서 L7 로드밸런서
네트워크 계층 전송계층 응용계층
특징 TCP/UDP 포트 정보를 바탕으로 함 TCP/UDP 정보는 물론 HTTP의 URI, FTP의 파일명, 쿠키 정보 등을 바탕으로 함
장점 > 데이터 안을 들여다 보지 않고 패킷 레벨에서만 로드를 분산하기 때문에 속도가 빠르고 효율이 좋음.

> 데이터의 내용을 복호화할 필요가 없기에 안전

> L7 로드밸런서보다 저렴
> 상위 계층에서 로드를 분산하기 때문에 섬세한 라우팅 가능

> 캐싱 기능 제공

> 비정상적인 트래픽을 사전에 필터링할 수 있어 안정성이 높음
단점 > 패킷의 내용을 살펴볼 수 없기에 섬세한 라우팅 불가능

> 사용자의 IP가 수시로 바뀌는 경우라면 연속적인 서비스 제공이 어려움
> 패킷의 내용을 복호화해야 하기에 높은 비용 지불

> 클라이언트가 로드밸런서와 인증서를 공유해야하기 때문에 공격자가 로드밸런서를 통해서 클라이언트에 데이터에 접근할 보안 상의 위험성이 존재

 

🍦 ELB 대상그룹

  1. 대상 그룹에 대상을 등록
  2. 기본적으로 로드 밸런서는 대상 그룹에 대해 지정한 프로토콜과 포트 번호를 사용하여 등록된 대상으로 요청 전송.
  3. 또는 대상 그룹에 각 대상을 등록할 때 이 포트를 재정의.

 VPC (Virtual Private Cloud)

사용자가 정의한 가상 네트워크

AWS의 확장 가능한 인프라를 사용 + 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 유사

🍦 VPC의 기능

 VPC

  • 자체 데이터 센터에서 운영하는 기존 네트워크와 아주 유사. 생성 후 서브넷 추가 가능.

서브넷

  • VPC의 IP 주소 범위. 서브넷은 단일 가용 영역에 상주해야 함. 서브넷 추가 후 VPC에 AWS 리소스 배포 가능.

IP 주소 지정

  • VPC와 서브넷에 IPv4 주소와 IPv6 주소 할당 가능.
  • 또한 퍼블릭 IPv4 및 IPv6 GUA 주소를 AWS로 가져오고 VPC의 리소스(EC2 인스턴스, NAT 게이트웨이, Network Load Balancer)에 할당 가능.

라우팅

  • 라우팅 테이블을 사용하여 서브넷 또는 게이트웨이의 네트워크 트래픽이 전달되는 위치를 결정

게이트웨이 및 엔드포인트

  • 게이트웨이는 VPC를 다른 네트워크에 연결.
  • ex) 인터넷 게이트웨이를 사용하여 VPC를 인터넷에 연결.
  • VPC 엔드포인트를 사용하여 인터넷 게이트웨이 또는 NAT 장치를 사용하지 않고 AWS 서비스에 비공개로 연결.

피어링 연결

  • VPC 피어링 연결을 사용하여 두 VPC의 리소스 간 트래픽을 라우팅

트래픽 미러링

  • 네트워크 인터페이스에서 네트워크 트래픽을 복사하고 심층 패킷 검사를 위해 보안 및 모니터링 어플라이언스로 전송.

Transit Gateway

  • 중앙 허브 역할을 하는 전송 게이트웨이를 사용하여 VPC, VPN 연결 및 AWS Direct Connect 연결 간에 트래픽을 라우팅.

VPC 흐름 로그

  • 흐름 로그는 VPC의 네트워크 인터페이스로 들어오고 나가는 IP 트래픽에 대한 정보 캡쳐.

VPN 연결

  • AWS Virtual Private Network (AWS VPN)을 사용하여 온프레미스 네트워크에 VPC를 연결.

 

🍦 CIDR (Classless Inter Domain Routing)

클래스 없는 도메인 간 라우팅 기법 (= 어디까지 NW 영역으로 설정할 건지)

 

🍦 VPC 생성

  1. IP 주소 범위 선택
  2. 가용 영역(AZ) 별 서브넷 설정
  3. 인터넷으로 향하는 경로(route) 만들기
  4. VPC 로/부터의 트래픽 설정

🍦 VPC 구성