Amazon ElastiCache
- AWS의 In Memory Cache Service (유연한 실시간 사용 사례를 지원하는 완전관리형인 메모리 캐싱 서비스)
- Memcached와 Redis로 나뉨
- Memcached, Redis 모두 비관계데이터베이스형(NoSQL) 서비스이며, Key-value 기반
- Memcached, Redis 모두 이미 존재하는 서비스이며, AWS에서 사용 가능하도록 구현한 것
- ElastiCache는 Node로 구성되어 서비스를 제공하며, Node는 EC2처럼 다양한 Type을 가지고 유형에 따라 다양한 메모 리 크기를 가짐
- 다양한 Type을 갖는 이유는 적은 양의 메모리가 필요할 경우, 작은 Node를 사용하여 비용을 적게 들게 하기 위함
- 유형이 결정된 Node들은 '고정된' 메모리 크기를 가지며, 각자의 DNS로 이루어진 엔드 포인트를 보유함
ElastiCache Redis vs Memcached
ElastiCache Redis
- Redis 운영 지원 및 모니터링 제공
- 위치 정보, 채팅 메시지, 게임 리더보드 등 빠른 조회가 필요한 데이터를 구독자에게 제공
ElastiCache Memcached
- 단순한 모델이 필요한 경우
- 멀티스레드 or 멀티코어가 있는 큰 노드를 실행해야 하는 경우
- 객체를 캐시에 저장해야 하는 경우
공통점
- 1ms 이하의 응답대기시간
- 개발의 용이성
- 데이터 파티셔닝
- 다양한 프로그래밍 언어 지원
- 다양한 데이터 구조 지원
- 스냅샷 (디스크 저장)→복구 용이
- 복제 (Master-Slaves 구조) → 높은 가용성
VPC
VPC의 계층화된 네트워크 방어
VPC 내에서 모든 계층에서의 계층화된 네트워크 방어를 통해 애플리케이션의 보안 가능
인프라 구조화
VPC 엔드포인트
VPC 엔드포인트를 통해 인터넷 게이트웨이, NAT 디바이스, VPN연결 또는 AWS Direct Connect 연결이 필요 없이 VPC와 지원 서비스 간에 연결 설정 가능
- VPC에서 연결할 수 있는 특정 API 엔드포인트, 사이트 및 서비스 제어
- VPC 엔드포인트는 가상 디바이스
Interface Endpoint vs Gateway Endpoint
Interface Endpoint | Gateway Endpoint | |
What | Elastic Network Interface with a Private IP | A gateway that is a target for a specific route |
How | Use DNs entries to redirect traffic | Uses prefix lists in the route table to redirect traffic |
Which services | API Gateway, CloudFormation, CloudWatch etc. | Amazon S3, DynamoDB |
Security | Security Groups | VPC Endpoint Policies |
Direct Connect vs Site to Site VPN
Direct Connect | Site to Site VPN | |
공통점 | AWS Direct Connect : 온프레미스의 네트워크와 AWS의 네트워크를 연결하기 위한 서비스 - Direct COnnect : Direct Connect Location을 거쳐 연결 - Site to Site VPN : 네트워크와 VPC/Transit Gateway의 암호화된 2개의 터널 생성(IPsec VPN 연결 지원) |
|
통신방식 | . 프라이빗 네트워크 연결을 사용해 Direct Connect Location을 경유하여 통신 . BGP만 제공 |
. IPsec을 사용해 암호화된 네트워크 형성 . 동적 / 정적 라우팅 지원 |
대역폭 | . VPN보다 더 다양한 대역폭 선택 가능 . 전용선만 사용하여 전용 연결들을 하나의 단일 연결로 처리하는 LAG 사용 |
게이트웨이 터널을 중첩하여 대역폭을 확보하는 방식(엣지 로케이션으로 트래픽 라우팅) |
요금 | 포트 시간 요금(연결 유형에 따라 상이) & 데이터 전송 요금 | 저렴 (연결 시간 당 요금 & 데이터 전송 요금) |
Private subnet Internet connection
public subnet
인터넷 게이트웨이(IGW)를 가지고 있으며, public subnet의 인스턴스는 인터넷에 접속하려면 public 주소 필요
private subnet
NAT Gateway나 NAT Instance를 가지고 있으며, 각 인스턴스는 public IP 주소 없어도됨
To access the Internet from a private subnet?
1. subnet을 하나 만듬
2. NAT Gateway를 만들고 subnet에 할당
3. private subnet으로 옮길 인스턴스의 AMI를 만들고 인스턴스 종료
4. 만든 AMI로부터 EC2 인스턴스 생성
5. 3에서 종료한 원래 인스턴스 삭제
Route53
Route53은 가용성과 확장성이 뛰어난 클라우드 Domain Name System(DNS) Service
- DNS는 도메인 이름을 IP 주소로 변환
- 도메인 이름을 구입하여 관리하고 DNS 설정을 자동으로 구성할 수 있음
- AWS에서 유연한 고성능, 고가용성 아키텍처를 위한 도구 제공
- 멀티플 라우팅 옵션
Latency Routing vs Geolocation routing policy vs Geoproximity routing policy
Latency Routing | Geoproximity Routing | Geolocation Routing | |
정의 | Route53이 가장 낮은 지연시간을 가진 리전에서 오는 요청을 가져다줌 | 지역적 위치에 따라 Route53 트래픽 이동 | DNS 요청 위치에 따라 트래픽 이동 |
하는 일 | 요청 출발지와 같은 리전에 있는 사용자에게 요청됨을 보장 | bias로 특정 값을 지정하여 리전에서의 트래픽의 양 제어 가능 | IP 주소와 위치를 매핑시킴 |
특징 | 여러 리전에 있는 자원들의 latency record를 기준으로 함 | Route53 traffic flow를 사용해야함 | default record를 만들지 않으면 IP 주소로부터 오는 요청을 수행하지 않음 (no answer) |
Use Case | 여러 aws 리전의 자원을 가장 나은 지연시간으로 제공하고자 할 때 | 자원의 위치에 따른 트래픽 제공 | 사용자의 위치에 따른 트래픽 제공 |
Elastic Load Balancing (ELB)
단일 또는 여러 가용 영역에서 다양한 애플리케이션의 부하를 처리할 수 있는 네가지의 로드 밸런서는 모두 애플리케이션의 내결함성에 필요한 고가용성, 자동조정, 강력한 보안을 갖추고 있음
ALB (Application Load Balancer)
layer7 - HTTP / HTTPS 유연함
- network layer에서 application layer로 가는 변수 기반해 트래픽 분배
- HTTP, HTTPS 라우팅 제공
- HTTP 상태 코드로 health check 가능
- 최소 2개 이상의 Availability Zone을 사용할 수 있게 해야 됨
NLB(Network Load Balancer)
layer 4 - TLS/TCP/UDP, 고정 IP
- network 변수(IP주소, 목적지 port)로 트래픽 분배
- context-less하여 오직 network 관련된 정보만 봄
- EIPs를 사용해 고정 endpoint 유지. port는 변경 가능
- ELB는 사용가능하게 한 각 Availability Zone의 network interface를 구성
공통점 | - 동적 포트 제공 |
차이점 | - network layer (ALB: 7, NLB: 4) - NLB는 forwarding만 가능 / ALB는 HTTP 요청 내용 검사 가능 - NLB는 app의 가용 여부 모름 / ABL는 HTTP 코드로 체크 가능 - 같은 host에 여러 application 배포할 떄 NLB는 구분할 수 없으나 ALB는 구분 가능 (ALB는 application layer data를 사용할 수 있기 때문 |
AWS 메시징 서비스 (SQS vs SNS vs Kinesis)
SQS
서버간 통신 중 장애 시 요청을 잃어 버릴 수 있는 사태 대비 가능
SNS
구독 중인 엔드포인트 혹은 사용자에게 메시지를 보내는 서비스
Kinesis
Kafka의 AWS 버전으로 대규모 데이터의 실시간 처리를 위한 스트리밍 데이터 수집 서비스
구분 | SQS (Simple Queue Service) | SNS (Simple Notification Service) | Kinesis |
특징 | - Queue 서비스 - 메시지를 PULL 방식으로 처리 - Standard 방식 / FIFO 방식 |
- Fan-out architecture - 메시지를 PUSH 방식으로 처리 - 여러 Subscriber에게 메시지 전송 |
- 스트림 생성 후 데이터 수집 가능 - 스케일 인/아웃 자유로움 - 인증을 통한 네트워킹 |
메시지 내구성 | 보관기간 또는 삭제시 까지 유지 | Destination type별 전달 Retry policy 동안 유지 | 보관기간 까지 유지(삭제 불가) |
메시지 보관기간 | 60초 ~ 최대 14일 | Retry Limit에 따름 | 24시간 ~ 최대 7일 |
메시지 전달 | Queue당 여러 Consumer | Topic 당 여러 subscriber | Shard당 Application 별 consumer |
Scaling | 자동 | 자동 | Shard별 throughput / 리샤딩 필요 |
전달 목적지/ 방식 | SQS Consumers / pull | http(s), Mobile Push, SMS, Email, SQS, Lambda / push | Kinesis Consumers / pull |
AWS Snow Family
엣지 컴퓨팅 및 데이터 전송 서비스
Snowcone
- 휴대용 제품으로 엣지 로케이션에서 데이터를 안전하게 저장
- 데이터를 수집, 처리하고 디바이스로 데이터를 운반하거나, AWS DataSync를 통해 온라인으로 데이터 전송 가능
Snowball
- 데이터 마이그레이션 및 엣지 컴퓨팅 디바이스로, 인터넷에 연결되지 않은 환경에서 고급 작업 수행
- Compute Optimized와 Storage Optimized 옵션 제공
- Compute Optimized는 인터넷에 연결되지 않은 환경에서 ML 수행
- Stored Optimized는 인터넷이 없을 때 수집한 데이터를 보관했다가 온라인이 되면 데이터를 AWS에 보냄
Snowmobile
- 대규모 디지털 미디어 마이그레이션 및 데이터 센터 종료할 떄 사용하는 네트워크 연결 데이터 스토어
- 물리적으로 Snowmobile을 AWS에 리전으로 가져가서 S3에 데이터를 로드함
IAM (Identity and Access Management)
- AWS 리소스에 대한 엑세스를 안전하게 제어할 수 있는 웹 서비스
- IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여된 대상을 제거
AWS IAM 루트 계정 (root account)
- 전체 AWS 서비스 및 계정 리소스에 대해 완전한 액세스 권한
- 이메일 주소 및 암호로 로그인
AWS IAM 사용자 (User)
- AWS에서 생성하는 엔터티로서 AWS와 상호 작용하기 위한 사람 또는 애플리케이션
- 최소 권한의 원칙 적용 : 사용자에게 필요한 것만 액세스 부여
-> 기본적으로 AWS에서 새 IAM 사용자를 생성하면 해당 사용자와 연결된 권한이 없는 상태로 생성
-> AWS에서 EC2인스턴스 시작, S3 버킷 생성 등 특정 작업을 수행할 수 있도록 허용하려면 IAM 사용자에게 필요한 권 한을 부여해야함.
- 동일한 수준의 액세스가 필요한 직원이 여러 명이더라도 각 직원 별 개별 IAM 사용자 생성 권장
AWS IAM 정책 (Policy)
- AWS 서비스 및 리소스에 대한 권한을 허용하거나 거부하는 문서
- IAM 정책을 사용하여 사용자가 리소스에 액세스
AWS IAM 그룹 (Group)
- IAM 사용자의 모음
- 그룹에 IAM 정책을 할당하면 해당 그룹의 모든 사용자에게 정책에 지정된 권한 부여
AWS Elastic Beanstalk
- AWS Elastic Beanstalk는 Java, .NET, PHP, Node.js, Python, Ruby, Go, Docker를 사용하여 Apache, Nginx, Passenger,
IIS와 같은 친숙한 서버에서 개발된 웹 애플리케이션 및 서비스를 간편하게 배포하고 조정할 수 있는 서비스.
- Elastic Beanstalk를 사용하면 코드를 업로드해서 용량 프로비저닝, 로드 밸런싱, 오토 스케일링, 애플리케이션 태 모니 터링, 배포를 자동으로 처리하도록 구성
- 배포 완료 후 애플리케이션을 실행하는 데 필요한 AWS 리소스를 쉽게 제어할 수 있으며 언제든지 기본 리소스에 액세 스 가능
- Elastic Beanstalk는 추가 비용 없이 애플리케이션을 저장 및 실행하는 데 필요한 AWS 리소스에 대해서만 요금을 지불하면 됨
- Elastic Beanstalk를 사용해서 배포를 진행하면 CloudFromation을 이용해서 리소스 생성이 진행됨
특징
- 빠르고 간단하게 서버 구성 : 배포 과정을 Elastic Beanstalk에서 처리
- 생산성 : 인프라를 구성, 운영하고, 애플리케이션 스택을 관리
- 적절한 규모 유지 : 자동으로 애플리케이션을 확장하거나 축소
- 간단한 리소스 제어 : Amazon EC2 인스턴스 유형과 같은 AWS 리소스를 자유롭게 선택
Redshift
Redshift 구성
Redshift vs RDS
'Cloud > AWS SAA' 카테고리의 다른 글
AWS SAA_C02 Dump #2 (하단 오답정리) (0) | 2022.06.30 |
---|---|
AWS SAA_C02 Dump #1 (하단 오답정리) (0) | 2022.06.30 |
SAA_C02 시험 출제 유형 정리 #1 (0) | 2022.06.22 |
SAA_C02 Amazon VPC (0) | 2022.06.21 |
SAA_C02 Amazon DB (0) | 2022.06.21 |