[프로그래머스] 데브코스 데이터엔지니어링 TIL Day 27

주재민·2023년 11월 21일
0
post-thumbnail

📖 학습주제

가장 많이 사용되는 AWS 클라우드에 대해 실습 중심으로 학습 (2)


DB

SQL vs NoSQL

SQLNoSQL
관계형 데이터베이스비관계형 데이터베이스
테이블 기반문서, 키-값, 그래프
또는 와이드 컬럼 스토어
정규화된 데이터 구조 사용비정규화된 데이터 구조 사용
미리 정의된 스키마동적 스키마
수직적 확장수평적 확장
다중 행 트랜잭션에 적합문서나 JSON과 같은
비정형 데이터에 더 적합
MySQL, PostgreSQL, Oracle,
SQL Server, Microsoft SQL Server
MongoDB, Cassandra, Couchbase,
Amazon DynamoDB, Redis

RDS

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

실습

Amazon Management Console에서 RDS를 검색하면 찾을 수 있다.

데이터베이스 탭의 데이터베이스 생성을 누른다.

그렇게 하면 사용하고자 하는 RDBMS의 여러 종류를 선택 할 수 있다.

아래에서 여러 설정들은 선택하고 데이터베이스 생성을 눌러 생성한다.

MySQL을 선택했기에 보안규칙을 확인해 3306포트가 인바운드 되어있는지 확인하고 없다면 편집해 추가한다.

MySQL Workbench에서 +를 눌러 만든 데이터베이스에 접속하자.
데이터베이스 생성이 완료되면 엔드포인트가 나오게 되는데 hostname에 해당 엔드포인트를 입력하고 생성할 때 설정한 username도 입력한다.

접속이 됨을 확인할 수 있다.

NoSqL

Document DB

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

MongoDB

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

RDBMS vs MongoDB

Dynamo DB

  • 완전관리형 Key-Value 기반 NoSQL 데이터베이스 서비스
  • Auto-Scaling
  • DynamoDB는 유휴 시 암호화를 제공하여 중요한 데이터 보호와 관련된 운영 부담 및 복잡성을 제거
  • DynamoDB를 통해 원하는 양의 데이터를 저장 및 검색하고 어느 수준의 요청 트래픽도 처리할 수 있는 데이터베이스 테이블을 생성 가능
  • AWS Management Console을 사용하여 리소스 사용률 및 성능 지표를 모니터링할 수 있음
  • DynamoDB는 온디맨드 백업 기능을 제공
  • 테이블 생성시 스키마 생성 필요 없음

Document DB vs Dynamo DB

공통점

  • NoSQL Database
  • AWS Database Migration Service를 통해 데이터 마이그레이션을 위한 이식성을 제공
  • AWS Key Management Service를 통한 저장 데이터 암호화와 보안기능을 제공
  • 관리 API 호출과 CloudFormation에 대한 CloudTrail 및 VPC Flow Logs로 감사 기능 제공

차이점

Route53

  • 가용성과 확장성이 뛰어난 DNS(도메인 이름 시스템) 웹 서비스
  • Route 53을 사용하여 세 가지 주요 기능, 즉 도메인 등록, DNS 라우팅, 상태 확인을 조합하여 실행할 수 있음

실습

Amazon Management Console에서 Route53을 검색해 대시보드로 들어간다.

도메인을 등록하기 전에 도메인을 구매해야 한다. 도메인 이름 입력에 임의의 도메인을 입력하고 검색한다. 아래 도메인을 구매한 후 등록할 수 있다.

호스팅 영역 생성에서 외부에서 도메인을 구매할 수도 있다.

Certification Manager

  • AWS 서비스 및 연결된 내부 리소스에 사용할 공인 및 사설 SSL/TLS 인증서를 프로비저닝, 관리 및 배포
  • SSL/TLS 인증서를 구매, 업로드 및 갱신하는 데 드는 시간 소모적인 수동 프로세스를 대신 처리
  1. 사용할 TLS/SSL 인증서를 AWS 계정으로 요청하거나 가져온다.

  2. 도메인 이름 시스템(DNS) 또는 이메일 검증을 통해 요청된 인증서의 도메인 소유권을 검증하여 인증서 발급을 완료한다.

  3. Elastic Load Balancing(ELB), Amazon CloudFront 등과 같은 다양한 AWS 서비스에서 새로 발급되거나 가져온 인증서를 사용한다.

SSL 인증서

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

Certification Manager 특징

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

CloudFront

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

CDN

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

CloudFront 특징

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

Elastic Load Balancing (ELB)

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

Load Balancer

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

ELB 대상그룹

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

EC2 메인보드에서 로드 밸런서와 대상그룹을 확인 할 수 있다.

VPC

  • 사용자가 정의한 가상 네트워크
  • AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 유사함

VPC 기능

Virtual Private Cloud(VPC)

  • 자체 데이터 센터에서 운영하는 기존 네트워크와 아주 유사한 가상 네트워크
  • VPC를 생성한 후 서브넷을 추가할 수 있음

서브넷

  • VPC의 IP 주소 범위
  • 서브넷은 단일 가용 영역에 상주해야 함
  • 서브넷을 추가한 후에는 VPC에 AWS 리소스 배포할 수 있음

IP 주소 지정

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

라우팅

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

게이트웨이 및 엔드포인트

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

피어링 연결

  • 두 VPC의 리소스 간 트래픽을 라우팅

트래픽 미러링

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

Transit Gateway

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

VPC 흐름 로그

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

VPN 연결

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

CIDR(Classless Inter-Domain Routing, 사이더)

  • 클래스 없는 도메인 간 라우팅 기법

  • /n이 사이더 표기법
  • n번자리까지 network 영역, 그 뒤가 host 영역이 됨
  • network 영역은 전체적으로 사용되는 네트워크 주소 범위, host 영역은 내가 할당할 수 있는 ip대역이 됨

[ Private IP 대역 ]
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255

VPC 생성

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

NAT(Network Address Translation) Gateway

  • 외부 서비스에서 프라이빗 서브넷의 인스턴스로 접근할 수 없게 하되, 프라이빗 서브넷의 인스턴스에서는 외부 서비스로 접근할 수 있게 해주는 서비스

VPC 구성

실습

VPC 대시보드에서 VPC 생성을 눌러 생성할 수 있다.

VPC를 먼저 만들고 서브넷을 설정할 수도 있지만 VPC 등을 선택하면 자동으로 만들 수 있다.

0개의 댓글