2025/06 30

DynamoDB 처리량 모드 - Provisioned, On-Demand, Auto Scaling

AWS의 NoSQL 서비스인 DynamoDB는 기본적으로 무제한으로 확장되는 서버리스 데이터베이스처럼 보이지만, 실제로는 트래픽 처리량(throughput)에 따라 성능이 제한될 수 있다. 이번에 DynamoDB의 두 가지 주요 처리량 모드인 Provisioned Mode와 On-Demand Mode, 그리고 Auto Scaling 기능에 대해 정리하고, 어떤 상황에서 어떤 방식이 적절한지 정리해보겠다. 1. Provisioned Mode: 직접 처리량을 설정하는 방식Provisioned 모드는 개발자가 읽기(RCU)와 쓰기(WCU) 처리량을 직접 지정하는 방식이다. 기본 설정만으로는 고정된 처리량만 허용되며, 그 이상 요청이 들어오면 Throttling(요청 제한)이 발생할 수 있다. ✅ 장점예측 가..

AWS 2025.06.10

DynamoDB 키 설계 개념 정리 및 성능 최적화 전략

DynamoDB 성능은 키 설계에 의해 좌우될 수 있다. 파티션 키는 높은 카디널리티, 정렬키는 조회 패턴에 맞춤 설계해야 Hot partition을 방지하고 액세스 패턴 기반 설계로 처리량을 고르게 유지하고 성능을 극대화할 수 있다. 해당 내용들을 정리해보겠다. 1. 기본 개념 정리1.1 파티션 키 (Partition Key)DynamoDB에서 데이터를 물리적으로 분산 저장하기 위한 기준동일한 파티션 키 값을 가진 항목은 같은 파티션에 저장됨파티션 키는 고유하고, 다양한 값(높은 카디널리티) 을 갖는 것이 이상적임1.2 정렬 키 (Sort Key)파티션 키와 함께 사용되는 두 번째 키같은 파티션 키를 가진 항목들을 정렬된 순서로 저장함쿼리 시 정렬 키를 통해 범위 조회(range query)도 가능하..

AWS 2025.06.09

샤드, 반복자, 체크포인트: Kinesis 스트림 안정성의 핵심

Kinesis의 데이터 단위: 샤드(Shard)Kinesis 스트림은 데이터를 샤드 단위로 분산 저장한다. 샤드는 시간 순서대로 데이터를 저장하며, 각 샤드는 독립적으로 읽기/쓰기가 가능하다. 스트림 내에는 여러 개의 샤드를 구성할 수 있으며, 이를 통해 병렬성과 확장성을 확보할 수 있다. 샤드에서 데이터를 읽는 법: 샤드 반복자(Shard Iterator)샤드에서 데이터를 읽기 위해서는 샤드 반복자(shard iterator)를 요청해야 한다. 반복자는 커서(cursor)와 같은 역할을 하며, 이 반복자를 통해 특정 위치부터 데이터를 읽을 수 있다. 반복자의 특징GetShardIterator API를 통해 요청한다.반복자는 5분간 유효하며, 만료 후에는 새로 요청해야 한다.반복자의 유형:TRIM_HO..

AWS 2025.06.08

AWS Lake Formation 개념 정리

AWS에서는 데이터를 Amazon S3에 저장한 뒤, Athena, Redshift Spectrum, EMR 등을 통해 분석하는 구조가 흔히 사용된다. 그러나 이 구조에서 데이터 접근 제어를 구현하려면 IAM, S3 버킷 정책, Glue 카탈로그 등을 복잡하게 설정해야 하는 등 여러 AWS 계정 간 데이터 공유를 안전하게 구현하는 데에는 많은 수고가 필요하다. 이러한 복잡성을 줄이기 위해 AWS는 Lake Formation이라는 서비스를 제공한다. Lake Formation이란?Lake Formation은 Amazon S3를 기반으로 하는 데이터 레이크를 쉽고 안전하게 구축할 수 있도록 지원하는 서비스이다. 기존에 AWS Glue, IAM, S3 정책 등을 조합해서 처리해야 했던 작업들을 하나의 중앙 제..

AWS 2025.06.07

Auto Scaling 그룹의 휴지 기간(Cooldown)

Auto Scaling 그룹은 트래픽 변화에 따라 EC2 인스턴스를 자동으로 추가하거나 축소하여 애플리케이션의 가용성과 성능을 유지하도록 설계된 서비스이다. 이때, 인스턴스를 추가하거나 제거한 직후에는 시스템 상태가 안정화되는 데 시간이 필요하기 때문에, 과도한 조정을 방지하고 조정이 시스템에 미치는 영향을 평가할 수 있도록 대기 시간을 두는 장치가 휴지 기간(Cooldown period)이다. 휴지 기간은 Auto Scaling 그룹이 인스턴스를 조정한 이후, 일정 시간 동안 다음 조정을 하지 않도록 제한하는 시간을 의미한다. 이 기능의 목적은 다음과 같다. 불필요한 중복 조정 방지: 인스턴스를 추가한 직후에는 아직 시스템에 반영되지 않은 상태이므로, 지표(CPU 사용률 등)를 보고 또다시 잘못된 판단..

AWS 2025.06.06

AWS DataSync: 온프레미스 데이터를 클라우드로 이전

AWS DataSync는 온프레미스 스토리지와 AWS 클라우드 간에 데이터를 빠르고 안전하게 전송할 수 있도록 도와주는 완전관리형 데이터 이동 서비스이다. 단순히 파일을 복사하는 것이 아니라, 대규모 데이터 이동, 네트워크 최적화, 무결성 검증, 보안 전송, 스케줄 자동화까지 포함된 전문 전송 솔루션이다. DataSync는 다음과 같은 상황에서 매우 유용하다.사내 파일 서버(NAS 등)에 있는 데이터를 S3나 EFS로 이전하고자 할 때정기적으로 변경되는 파일을 스케줄에 따라 동기화하고자 할 때기존 데이터를 AWS로 백업하거나 마이그레이션할 때클라우드에서 분석 및 머신러닝을 위한 데이터 이동이 필요한 경우 DataSync는 아래 순서대로 동작한다.에이전트 설치온프레미스 VM(VMware, Hyper-V 등..

AWS 2025.06.05

Amazon Aurora 병렬 쿼리(Parallel Query)

Amazon Aurora는 AWS에서 설계한 고성능 관계형 데이터베이스로, 일반적인 MySQL/PostgreSQL보다 뛰어난 확장성과 성능을 제공한다. 이 중 병렬 쿼리(Parallel Query) 기능은 대용량 데이터를 더욱 빠르게 조회하기 위한 고급 기능으로 Aurora MySQL에서 사용할 수 있다. 기본적으로 RDBMS에서는 쿼리를 처리할 때 DB 인스턴스가 스토리지에서 데이터를 읽고 필터링한 후 결과를 반환한다. 하지만 수백만 건의 데이터를 스캔해야 하는 경우, 스토리지 I/O 병목이 발생하면서 쿼리 속도가 크게 저하될 수 있다는 문제가 있다. 병렬 쿼리는 이러한 병목을 해결하기 위해, 쿼리 처리를 DB 인스턴스만이 아니라 스토리지 계층에서도 병렬로 분산시켜 처리한다. 병렬 쿼리의 작동 방식 ..

AWS 2025.06.04

Amazon Aurora의 엔드포인트 및 리더 엔드포인트 기반 로드밸런싱

Amazon Aurora는 AWS에서 제공하는 고성능 관계형 데이터베이스 엔진으로, 뛰어난 확장성과 내결함성을 제공한다. 특히 Aurora는 기본적으로 복제본(Replica) 구조를 포함하고 있어 읽기 요청 분산에 매우 유리하다. 이를 위해 Aurora는 다양한 유형의 엔드포인트(Endpoint) 를 제공한다. Aurora의 엔드포인트 종류클러스터 엔드포인트 (Cluster Endpoint)쓰기 요청을 위한 엔드포인트로, 항상 Primary(Writer) 인스턴스로 라우팅된다.리더 엔드포인트 (Reader Endpoint)읽기 요청 전용 엔드포인트로, 클러스터에 있는 복제본 인스턴스들 중 하나로 자동 분산되며, 일반적으로 균등하게 로드밸런싱된다. 인스턴스 엔드포인트 (Instance Endpoint)특정..

AWS 2025.06.03

Amazon EBS 볼륨 타입 정리

Amazon EC2 인스턴스에 블록 스토리지를 제공하는 EBS(Elastic Block Store)는 다양한 유형의 볼륨 타입을 제공한다. 각각의 EBS 볼륨은 성능 특성과 가격이 다르기 때문에, 워크로드에 맞는 적절한 타입을 선택해야 한다. 1️⃣ 범용 SSD (gp2, gp3)SSD 기반으로 IOPS 중심의 워크로드에 적합하다.gp2: 스토리지 크기에 비례해 IOPS 성능이 증가한다. (최대 16,000 IOPS)gp3: IOPS와 처리량을 스토리지 크기와 무관하게 설정할 수 있다. (IOPS 최대 16,000, 처리량 최대 1,000 MB/s)적합한 용도:부트 볼륨소규모에서 중간 규모의 데이터베이스일상적인 범용 애플리케이션 2️⃣ 프로비저닝된 IOPS SSD (io1, io2)가장 높은 IOPS 성..

AWS 2025.06.02

DNS 레코드와 별칭(Alias)

웹 서비스를 배포하거나 도메인 연결을 구성할 때, DNS와 레코드의 개념은 필수적으로 이해해야 하는 요소이다. 특히 AWS Route 53을 사용할 경우, 일반적인 DNS 레코드 외에 "별칭(Alias)"이라는 특별한 기능이 추가되어 헷갈릴 수 있다. 이번에 DNS 레코드의 기본 개념부터, 각 레코드 유형, 그리고 별칭과 비별칭의 차이까지 정리해보려 한다. 1. DNS 레코드란?DNS 레코드는 "도메인 이름을 어디로 연결할지 정의하는 규칙"이다. 사용자가 브라우저에 도메인 이름을 입력하면, DNS는 해당 도메인을 어떤 IP 주소나 다른 리소스로 연결할지 결정한다. 예) example.com이라는 도메인을 192.0.2.1이라는 서버의 IP 주소에 연결하려면 ➡️ A 레코드 사용 2. 주요..

AWS 2025.06.01