
클릭 스트림 데이터배치 분석 에 가장 적합함AWS Lake Formation은 Amazon S3에 구축된 데이터 레이크를 쉽게 설정, 보호 및 관리할 수 있도록 돕는 완전 관리형 서비스중앙 집중식 권한 관리: Lake Formation은 데이터 레이크에 대한 중앙 통제 지점 역할을 함. 사용자가 Athena, Redshift Spectrum, EMR 등 어떤 분석 도구를 사용하더라도 단일 정책을 통해 테이블, 열, 행 수준에서 접근 권한을 관리함.데이터 보안 및 거버넌스: 데이터 접근 권한을 IAM 사용자 또는 역할에 직접 적용할 수 있으며, 데이터에 대한 접근 이력을 추적(감사)할 수 있음."모든 데이터를 한 곳으로 통합한다 ~" 멘트가 나오면,
데이터 레이크문제일 확률이 높음!
Glue는 보통 Kinesis나 Firehose가 수집한 데이터를 S3에 저장한 후, 그 데이터를 분석 가능한 형태로 정제하고 변환하는 후속 배치(Batch) 작업에 많이 사용됩니다.
완전 관리형 클라우드 데이터 웨어하우스 서비스ex) EMR, Redshift, S3 등일회성/임시 쿼리 를 실행하는 데 가장 적합하며, 운영 오버헤드가 거의 없음.Apache Parquet 형식
대규모 데이터 처리 시스템, 특히 Apache Hadoop 에코시스템에서 사용하도록 설계된 오픈 소스 컬럼형(Columnar) 저장 파일 형식
Parquet의 열 단위 저장 (Columnar-Oriented): 데이터를 열별로 묶어서 저장.예를 들어, 데이터베이스 테이블에서 '사용자 ID' 열의 모든 값을 한 블록에, '이름' 열의 모든 값을 다른 블록에 저장하는 식.AWS에서는 데이터 레이크(Data Lake) 환경에서 데이터를 저장할 때 Parquet 형식을 표준으로 권장.
KPI 대시보드 를 생성함. ex) 모바일, 게임, 쇼핑몰 등.. 응답 속도 중요한 곳지속적 백업(Point-in-Time Recovery, PITR)
DynamoDB의 PITR은 최대 35일 동안 테이블 데이터를 자동으로 연속 백업합니다. 이 연속 백업 덕분에 5분 이내의 RPO를 제공하며 (장애 발생 시점으로부터 5분 전까지 복구 가능), 문제에서 요구하는 15분의 RPO를 충분히 만족시킵니다.
PITR로 복원된 새 테이블은 일반적으로 수십 분 이내에 복구가 완료되므로, 요구 사항인 1시간의 RTO도 만족시킬 수 있는 가장 간단하고 관리 오버헤드가 적은 솔루션입니다.
DynamoDB Streams
DynamoDB Streams는 DynamoDB 테이블의 데이터에 실시간으로 발생한 변경 사항을 캡처하는 기능입니다.
- 주요 역할: DynamoDB 테이블의 항목이 생성되거나, 수정되거나, 삭제될 때마다 해당 변경 이벤트의 순차적인 스트림(흐름)을 기록합니다.
- 사용 예) Lambda 연동: DynamoDB Streams를 AWS Lambda의 이벤트 소스로 사용하여, DB 데이터가 변경될 때마다 실시간으로 후속 작업을 수행하도록 트리거할 수 있습니다.
글로벌 보조 인덱스 (Global Secondary Index, GSI)
테이블의 기본 키(Primary Key)가 아닌 다른 속성을 기준으로 데이터를 쿼리할 수 있도록 만들어주는 별도의 데이터 구조체
DynamoDB Accelerator (DAX)
DAX는 DynamoDB에서 읽기 작업의 성능을 마이크로초 단위로 끌어올리는 역할. DynamoDB 테이블 앞에 위치하여, 애플리케이션이 데이터를 요청하면 DynamoDB 대신 DAX에서 먼저 데이터를 찾아 응답함(캐시)
즉, DAX는 "읽기 집약적인" 워크로드에서 DynamoDB의 성능을 극대화할 때 사용되는 도구
RDS Proxy
역할: RDS 및 Aurora 데이터베이스를 위한 완전 관리형 연결 풀링 서비스. Lambda 등 서버리스 환경에서 발생하는 연결 폭주(Connection Sprawl) 문제를 해결하고 가용성을 높임.비용: 추가 비용 발생 (프록시 인스턴스 클래스 기반 시간당 요금).고가용성: 프록시 자체가 고가용성으로 운영되며, DB 장애 조치 시간을 단축하여 최고의 가용성을 제공함.사용 사례: Lambda 함수, ECS/EKS 등 수명이 짧거나 대규모로 확장되는 컴퓨팅 환경에서 관계형 DB에 접근할 때.
Amazon Aurora
AWS가 MySQL과 PostgreSQL 엔진을 클라우드 환경에 맞춰 완전히 재설계하여 만든 클라우드 네이티브 데이터베이스 엔진.
표준 MySQL 대비 최대 5배, PostgreSQL 대비 최대 3배 빠름
Amazon RDS Custom for Oracle
OS 액세스 유지 관리 가능: Amazon RDS Custom for Oracle은 일반 RDS와 비슷한 자동화 기능을 제공하면서도, 애플리케이션이나 데이터베이스 관련 설정(예: 특정 OS 패키지 설치, DB 설정 파일 직접 수정)을 위해 기본 OS에 대한 액세스를 허용함.
Amazon RDS의 암호화 특성
기존 RDS 인스턴스의 암호화 제한: AWS RDS는 보안상의 이유로 이미 생성된 암호화되지 않은 DB 인스턴스를 인스턴스 상태에서 직접 암호화(In-Place Encryption)하는 것을 허용하지 않습니다.
RDS 암호화의 표준 절차: 암호화되지 않은 인스턴스를 암호화된 인스턴스로 전환하는 유일한 방법은, 해당 인스턴스의 스냅샷을 복사할 때 AWS KMS를 사용하여 암호화를 활성화하고, 이 암호화된 스냅샷으로 새로운 DB 인스턴스를 복원하는 것입니다.
-> 자주 변경되지 않는 소수의 쿼리 결과나 세션 데이터를 캐시하는 데 적합함. 만약 실시간으로 데이터가 추가된다면 부적합할 수 있음!
Redis
- 다양한 자료 구조를 지원하여(String, List, Hash 등) 복잡한 데이터를 저장하고 처리할 수 있습니다.
- Master-Replica 복제 및 스냅샷을 통한 데이터 영속성 기능을 제공하여 고가용성 환경 구축에 유리합니다.
- 주로 세션 저장소, 실시간 랭킹 보드, 메시징(Pub/Sub) 등 다목적의 고급 기능이 필요할 때 사용됩니다.
Memcached
- 단순한 String 타입의 데이터만 지원하며, 구조가 간단하여 개발 용이성이 높습니다.
- 멀티스레드 아키텍처를 지원하여 단일 노드의 CPU 코어를 효율적으로 사용하여 성능을 확장(Scale-up)하는 데 유리합니다.
- 주로 단순하고 휘발성이 강한 객체나 페이지 캐싱에 사용되며, 데이터 손실이 치명적이지 않을 때 선택됩니다.
세션 관리
Amazon ElastiCache를 사용하여 세션 데이터를 관리한다는 것은, 바로 Redis나 Memcached와 같은 중앙 집중식 인메모리 데이터베이스를 활용하여 세션 관리를 하는 것을 의미
ex) 게임, 광고, 통신 플랫폼 등 활용
UDP 트래픽이 나오면 → 무조건 NLB가 정답입니다.
HTTP/HTTPS 트래픽이 나오면 → ALB 또는 NLB 모두 가능하지만, L7 라우팅 (경로, 쿼리 기반 등)이 필요하면 ALB가 정답입니다.
순수 TCP 트래픽이 나오고 극도의 낮은 지연 시간/고정 IP가 필요하면 → NLB가 정답입니다.
ex) 방화벽, 침입 탐지 시스템, 심층 패킷 검사 등인바운드 : 걸려 오는 전화 (외부 -> 내부 접근)아웃바운드 : 내가 거는 전화 (내부 -> 외부 접근)
보안 규칙에는 한계가 존재함
- 가장 기본적인 방화벽 역할. 인스턴스 수준
- L7 정보를 사용해 트래픽 필터링 불가능
- 특정 IP의 접근을 하드 코딩하게 되면, 나중에 변경되면 업데이트 해야 함
->
도메인 목록 규칙 그룹으로 이를 해결 가능
지연 시간 최소화 및 성능 개선Origin Access Identity(OAI)란?
가상의 사용자 역할: OAI는 특정 CloudFront 배포(Distribution)를 대표하는 특별한 AWS 신분입니다. 사람이 아닌, CloudFront와 S3 사이의 통신을 위한 "가상의 사용자"라고 생각하면 쉽습니다.
S3 버킷 보호: OAI는 CloudFront가 Private S3 버킷의 콘텐츠에 접근할 수 있도록 허용하는 동시에, 다른 모든 직접적인 접근 (사용자가 S3 URL을 브라우저에 입력하는 행위 등)을 차단합니다.
CloudFront 서명 URL 🆚 CloudFront 필드 수준 암호화
CloudFront 서명 URL은 특정 콘텐츠나 파일에 대한 접근 자체를 통제하는 기능입니다. 예를 들어, 유료 회원에게만 일정 기간 동안 비디오 파일을 다운로드할 수 있는 권한을 부여할 때 사용됩니다. 이는 콘텐츠에 대한 접근 권한을 제한하지만, 데이터 자체를 암호화하여 보호하지는 않습니다.반면,
CloudFront 필드 수준 암호화는 사용자가 폼을 통해 제출하는 민감한 데이터 필드 (예: 신용카드 번호)를 엣지 로케이션에서 즉시 암호화하여 보호하는 기능입니다.
이 데이터는 암호화된 상태로 전체 애플리케이션 스택을 통과하며, 오직 개인 키를 가진 특정 오리진 애플리케이션만이 복호화할 수 있습니다.
- 주요 역할: 프라이빗 인스턴스가 소프트웨어 업데이트, 패치 등을 위해 안전하게 인터넷에 접근할 수 있도록 통로를 제공합니다.
- 작동 방식: 프라이빗 IP 주소를 NAT Gateway의 퍼블릭 IP 주소로 변환하여 트래픽을 보냅니다.
- 비용 발생: NAT Gateway는 시간당 요금과 Gateway를 통과하는 데이터 처리 요금이 발생하며, 이는 VPC 비용에서 상당한 부분을 차지할 수 있습니다.
-> 즉, 프라이빗 서브넷 내에 있는 EC2가 외부 API 호출 및 AWS 서비스(S3 등)에 접근하기 위해서 NAT Gateway를 통과해야 하며, 이는 데이터 처리 요금을 유발할 수 있음
하지만 여기서,
VPC 엔드포인트를 사용하여
EC2 -> VPC 엔드포인트 -> AWS 내부 네트워크로 연결해준다면 특정 AWS 서비스(S3, SQS, Dynamo DB 등)와 통신하는 경우 비용이 발생하지 않음But, 일반 인터넷과 통신하는 경우에는 NAT Gateway 통과가 필수임 ‼️
양방향 통신 을 가능하게 해주는 VPC 컴포넌트온프레미스 데이터 센터 네트워크 <-> AWS VPC 사이에 보안 터널을 생성하여 연결함IPsec VPN 프로토콜 사용, 일반적으로 두 개의 터널 을 구성하여 고가용성 확보암호화 를 통해서 데이터를 보호함ex) 10.0.0.0/16VPC Endpoint는 공급자의 특정 서비스에만 연결. 다른 VPC의 자산에는 접근할 수 없음전용 네트워크 연결 을 설정하는 서비스"온프레미스 <-> 클라우드/대기 시간에 민감/대용량" 등의 키워드가 나오면
-> DX를 고려 ‼️
역할: 하나의 IP 주소/Port에서 여러 도메인의 SSL/TLS 인증서 호스팅을 가능하게 하는 TLS 확장 기능.사용처: ALB/NLB 등에서 다수의 HTTPS 웹사이트 트래픽을 처리할 때 필수활성-수동 장애 조치(Active-Passive Failover) 정책
- 장애 조치(Failover)에 특화
- 이 정책은 주요(Primary) 엔드포인트와 보조(Secondary) 엔드포인트를 명확하게 지정하고, 상태 확인(Health Check)을 통해 주 엔드포인트가 비정상이 되면 자동으로 트래픽을 보조 엔드포인트로 전환하도록 설계됨
다중값 응답 라우팅 정책(Multivalue Answer Routing Policy)
- 가용성 증진과 클라이언트 측 부하 분산에 중점
- 이 정책은 여러 개의 정상 엔드포인트를 등록하고, DNS 쿼리당 그중 최대 8개를 무작위로 사용자에게 반환함
다중 리전 비밀 복제: 여러 리전에 걸쳐서 자격 증명을 안전하게 동기화할 수 있음Inspector: 인스턴스, 컨테이너 이미지, 람다 함수와 같은 워크로드 취약점과 보안 위반 여부 등을 자동으로 검사하고 평가Macie: 특히 S3에 저장된 데이터 중 민감 정보를 자동으로 검색/분류/보호하는 서비스Shield Advanced: 대규모의 디도스 공격으로부터 보호하는 유료 서비스(Shield Standard 보다 훨씬 강력)GuardDuty: 잠재적인 위협 행위를 지속적으로 모니터링하고 탐지하는 서비스AWS Network Firewall: VPC 경계에서 실제로 트래픽을 검사하고 필터링하는 방화벽 엔진 자체.AWS Firewall Manager: Network Firewall과 같은 다양한 AWS 보안 서비스의 정책을 중앙에서 관리하는 도구컨테이너에 직접 권한 부여: IAM 역할을 생성하고 이 역할을 ECS 작업 정의(Task Definition)의 taskRoleArn 파라미터에 지정하면, 해당 작업을 실행하는 개별 컨테이너에 액세스 권한이 부여됨Windows 기반 EC2 인스턴스 여러 대가 네이티브 SMB 프로토콜로 접근할 수 있는 공유 파일 시스템이 필요할 때는 Amazon FSx for Windows File Server를 사용해야 합니다.
Elastic?
엘라스틱은 "스스로 크기를 조절할 수 있는 유연한 특성" 그 자체를 의미합니다.
오토 스케일링은 그 엘라스틱한 특성을 구현하기 위해 AWS가 제공하는 대표적인 도구 중 하나입니다.따라서 "이 서비스는 엘라스틱합니다"라고 말하면, "이 서비스는 오토 스케일링을 비롯한 다양한 방식으로 수요에 맞춰 용량을 자동으로 조절할 수 있습니다"라는 의미를 내포하게 됩니다.
S3는 EBS, EFS에 비해서 비용 효율적이고, 확장성이 매우 높음 ‼️
접근 패턴이 불규칙할 때사용하기 적절함 -> 그렇지 않다면 수동으로 S3수명 주기 정책을 설정하는 것이 비용 효율적
법적 보존주요 목적: 원본 데이터가 저장된 S3 버킷과 사용자가 데이터를 업로드하거나 다운로드하는 지점(주로 사용자의 로컬 환경) 사이의 장거리 전송 속도를 최적화작동 방식: CloudFront의 엣지 로케이션을 활용하여 데이터를 S3로 전송할 때 발생하는 지연 시간을 줄임.볼륨 & 스냅샷 으로 구성 -> 하드 디스크 와 유사반면, S3는 고가용성 및 고내구성 스토리지 서비스임
예비 에너지Latency 를 급증 시킬 수 있음프로비저닝된 IOPS SSD
- 사용자가 원하는 IOPS를 명시적으로 지정하여 해당 성능을 일관되게 보장함
- 범용 SSD보다 비용이 많이 나감
- 잦고 높은 I/O가 지속적으로 필요한 환경에서 적절함
- 이는 액세스 패턴이 명확히 정의되어 있고 성능의 예측 가능성이 중요할 때 가장 적합
설정 조건
- 원본 및 대상 버킷 모두에 버전 관리 기능이 활성화
- 두 버킷이 서로 다른 리전에 위치
- IAM 역할 설정
복제 범위
- 설정 이후에 새롭게 생성되거나 업데이트 되는 객체에 대해서만 적용됨
- 설정 이전에 있던 객체들도 복제하려면 ->
S3 배치 복제작업을 수행해야 함
콜드 스타트 이슈 가 존재함 -> 이를 프로비저닝된 성능을 제공하여, 초기 액세스 지연 시간이 완전히 사라짐비용 효율적 & 낮은 운영 오버헤드 와는 거리가 멂 ‼️ECS (Elastic Container Service)는 AWS가 자체적으로 개발한 컨테이너 관리 서비스입니다. 이 서비스는 AWS 환경에 특화되어 통합이 쉽고, 운영 복잡도가 매우 낮습니다. 컨테이너 오케스트레이션에 대한 Kubernetes 지식 없이도 빠르고 쉽게 컨테이너를 배포하고자 할 때 최적의 선택지입니다.
EKS (Elastic Kubernetes Service)는 오픈 소스 표준인 Kubernetes를 AWS에서 관리해 주는 서비스입니다. EKS는 Kubernetes 생태계의 방대한 기능과 유연성을 활용하고자 할 때 선택하며, 멀티 클라우드 환경과의 호환성이 높습니다. 하지만 ECS에 비해 Kubernetes에 대한 지식이 필요하여 상대적으로 복잡합니다.
장점: 운영 오버헤드 최소화 - EC2 인스턴스의 OS 패치, 스케일링, 보안 관리를 AWS가 대신 처리해 줌단점: 비용 - 24시간 내내 일정한 트래픽을 처리하는 워크로드의 경우, EC2 스팟 인스턴스나 예약 인스턴스(RI)를 사용하는 것보다 비용이 더 비쌀 수 있음"운영 오버헤드 최소화/고가용성 아키텍처/컨테이너화(ECS, EKS 등)" 멘트가 나오면 고려 ‼️
언제 사용?: 가장 일반적이며, 특정 지표(예: CPU 40%)를 지속적으로 유지할 때 사용함.작동 방식: 사용자는 원하는 목표 값(Target Value)만 설정. AWS가 복잡한 확장/축소 규칙을 자동으로 계산하여 해당 목표 값을 유지하도록 인스턴스 수를 조절함언제 사용?: CloudWatch 알람이 발생했을 때 즉각적이고 고정된 조정이 필요할 때 사용.작동 방식: 알람이 울리면, 쿨다운(Cooldown) 기간을 기다린 후 인스턴스 N개를 추가하는 등 단순한 조치를 수행함언제 사용?: 트래픽 변동이 예측 가능할 때 사용함 (예: 매주 월요일 아침 9시).작동 방식: 날짜와 시간을 지정하여 미리 인스턴스 용량을 확장(Scale-out)하거나 축소(Scale-in)클러스터 배치 그룹(Cluster Placement Group)
- 최소한의 네트워크 지연 시간을 확보.
-> 이를 위해 인스턴스들을 단일 가용 영역(AZ) 내의 동일한 논리적 섹션(동일 랙)에 최대한 가깝게 모아서 배치함- 따라서 HPC(고성능 컴퓨팅)와 같이 노드 간 초고속 통신이 필수적인 워크로드에 가장 적합함.
- 하지만 단점은 동일한 하드웨어에 묶여 있기 때문에, 해당 랙에 장애가 발생하면 클러스터 전체가 영향을 받을 수 있다는 위험이 있음.
스프레드 배치 그룹(Spread Placement Group)
- 최대한의 장애 독립성을 확보하는 것. 이 전략은 인스턴스들을 서로 다른 하드웨어(서로 다른 랙)에 분산시켜 배치함.
- 이는 하나의 하드웨어 장애가 다른 인스턴스에 영향을 미치는 것을 막아주므로, 고가용성이 매우 중요하고 소규모 인스턴스 그룹(최대 7개 인스턴스)에 적합함.
- 다만, 인스턴스들이 물리적으로 떨어져 있기 때문에 클러스터 그룹보다는 네트워크 지연 시간이 더 길어질 수 있음.
패치 매니저 : OS 및 애플리케이션의 패치 관리를 자동화런 커맨드 : 대규모 인스턴스 집합에, 지정 스크립트나 명령을 즉시 동시에 실행하는 데 적합함Parameter Store 가 자격 증명 저장소로 사용될 수 있지만, 시크릿 매니저처럼 교체를 자동으로 수행해주지는 않음.최소한의 운영 오버헤드심층 분석 가능ex) S3 조회 및 삭제 등복합 경보
- 복합 경보는 두 개 이상의 다른 CloudWatch 경보()를 논리 연산자 () 로 결합하여 상태를 결정하는 경보.
여러 지표 임계값
- 하나의 경보에 여러 임계값을 설정하여 하나의 지표를 여러 수준에서 모니터링할 수 있음. (예: 는 , 는 )
- 이는 서로 다른 두 지표(와 ) 를 조합하는 것이 아니라, 하나의 지표에 대한 모니터링 수준을 나누는 기능
CloudWatch Logs 구독
로그 그룹에서 실시간으로 로그를 다른 서비스로 스트리밍할 수 있도록 AWS에서 내장해 둔 메커니즘으로, OpenSearch(Elastic Search) Service는 구독의 공식적인 대상 중 하나임.
운영 오버헤드가 매우 적음.
Config: 무엇이 어떻게 생겼고 어떻게 변경되었는가? ex) 리소스 구성 스냅샷 및 변경 내역CloudTrail: 누가 언제 어떤 API를 호출했는가? ex) 호출 이벤트 로그마스터 계정: 조직을 관리하는 주 계정으로, 결제와 정책 관리를 담당함서비스 제어 정책(SCP)
- IAM 정책과 유사하지만, 최대 권한을 정의함
- 여기서 허용되지 않은 작업은 절대 수행할 수 없음
비용 절감 & 성능 개선 & 보안 강화 등 권장 사항을 제공하는 컨설턴트 서비스Amazon S3 객체 잠금(Object Lock)은 데이터를 특정 기간 동안 또는 무기한으로 수정하거나 삭제할 수 없게 만드는 기능으로, 이 두 가지 모드를 제공합니다.
1. 거버넌스 모드 (Governance Mode)
- 거버넌스 모드는
보호 잠금이라고 생각할 수 있습니다.- 보호 수준: 높은 수준의 보호를 제공하지만, 특정 권한을 가진 사용자에게는 유연성을 남겨둡니다.
- 우회 가능성: s3:BypassGovernance 권한을 가진 IAM 사용자나 역할은 보존 기간이 설정된 객체라도 잠금을 우회하고 삭제하거나 설정 변경이 가능합니다.
2. 규정 준수 모드 (Compliance Mode)
- 규정 준수 모드는
영구적인 잠금이라고 생각할 수 있습니다.- 보호 수준: 최고 수준의 보안(불변성)을 제공합니다.
- 우회 가능성: 객체가 보존 기간 내에 있는 한, AWS 루트 계정 사용자조차도 잠금 설정을 변경하거나 객체를 삭제할 수 없습니다. 즉, 어떤 사용자나 프로세스도 데이터를 수정/삭제할 수 없도록 강제합니다.
캐싱 구조
- 로컬 캐시: 자주 액세스되는 데이터는 온프레미스 게이트웨이의 로컬 디스크에 캐시되어 짧은 대기 시간으로 제공됨
- 클라우드 스토리지: 모든 데이터는 S3 객체로 저장되어 무한한 확장성과 높은 내구성을 확보
DMS: 데이터베이스(DB)의 테이블을 옮기고, DB 마이그레이션 중에도 변경 사항을 실시간으로 복제하는 데 사용되는 서비스 (DB 엔진 변경 가능)DataSync: 파일 서버(NFS/SMB)나 S3와 같은 스토리지 간에 대용량 파일과 객체를 빠르고 안전하게 옮기는 데 사용되는 서비스입니다. (파일 전송 최적화)예시: 전자상거래 시스템 마이그레이션
- DMS 사용: 주문 정보, 재고 정보와 같은 정형 데이터가 있는 Oracle DB를 AWS RDS PostgreSQL로 실시간 복제(CDC)하며 이전합니다.
- DataSync 사용: 상품 카탈로그 이미지, 사용자 리뷰 파일, 로그 등 비정형 대용량 파일을 온프레미스 파일 서버에서 S3 또는 EFS로 병렬 전송하며 마이그레이션합니다.
고가용성RDS 다중 AZ 구성 사용
RDS 다중 AZ는 데이터베이스의 동기식 복제본을 다른 가용 영역(AZ)에 자동으로 생성하고 관리합니다.
주 DB 서버에 정전이나 장애가 발생하면, AWS가 자동으로 대기 복제본으로 장애 조치(Failover)를 수행합니다. 이 과정에서 데이터 손실을 최소화하고 서비스 중단을 줄여 가장 높은 가용성을 보장합니다. 이는 데이터 손실을 겪은 회사의 문제 해결에 가장 적합합니다.
RTO(Recovery Time Objective) : 장애 발생 후, 정상적으로 시스템을 복구하는 데 걸리는 최대 허용 시간 -> 다운 타임 최소화RPO(Recovery Point Objective) : 장애 발생 시 허용 가능한 최대 데이터 손실량 -> 데이터 손실 최소화RPO가 15분
"데이터는 최대 15분 전까지만 소실될 수 있다."
-> 즉, 최소 15분 주기로 백업 및 복제가 이루어져야 함
FIFO 타입: 메시지 순서 보장, 중복 없음, 순서가 절대적으로 중요한 경우Standard 타입: 순서 보장 X, 최소 1번 전달, 최대 처리량이 중요한 경우ReceiveMessage API
소비자가 "메시지 줄 때까지 X초 동안 기다릴게"라고 요청하는 것입니다. (장기 폴링)
이는 SQS에 메시지가 있을 때까지 기다림으로써 빈 응답(Empty Response)을 줄이고 네트워크 트래픽 및 비용을 절감하는 데 목적이 있습니다.
ChangeMessageVisibility API
소비자가 메시지를 가져오면 기본 가시성 제한 시간(Visibility Timeout)이 설정되어 다른 소비자가 보지 못하게 됩니다.
만약 메시지 처리 시간이 이 제한 시간보다 길어질 것 같으면, 이 API를 사용하여 "처리 시간을 더 줘, 아직 끝내지 못했어"라고 SQS에 알리는 것입니다.
이는 메시지 처리 중 오류가 발생하지 않았음에도 제한 시간이 지나 다른 소비자가 동일한 메시지를 다시 가져가 중복 처리하는 것을 방지합니다.
운영 오버헤드 최소화: 사용자가 메시지 브로커의 설치, 패치, 버전 업데이트, 장애 감지 및 복구 등의 복잡한 운영 업무를 신경 쓸 필요가 없음.고가용성 확보: Multi-AZ 배포를 지원하여 메시지 브로커의 가용성(High Availability)을 자동으로 확보
시험 2시간전 최고의 블로그 !