RDS
- OLTP → 규모가 작은 데이터를 사용시 유용
- OLAP → 매우 큰 데이터를 불러올 떄 사
RDS 백업 기능
- AB →자동 백업 그날 생성된 스냅샷을 참고하여 생성 (약간의 지연 존재 가능)
- DB 스낵샷 → 원본 인스턴스를 삭제해도 스냅샷이 존재 (AB와는 다름)
- 원본 백업 엔드포인트 → original , 백업 엔드포인트는 → restored가 있다.
[ ] Multi AZ - 원래 있는 DB에 변화가 생길때 복제본이 만들어지며 자동으로 관리가 이루어짐
- DB가 문제가 생기면 자동으로 다른 복제본을 사용
- 성능개선을 위해서 사용하는것은 아님
[ ] Read Replica - 읽기 전용 복제본이 생성
- 읽는 작업시 효율성을 극대화 할 수 있음
- 최대 5개까지 생성 가능하다
- Read Replica 의 Read Replica를 생성 가능 (지연 발생 가능)
[ ] ElasticCache - 클라우드 내에 in-memory 캐시 만들어줌
- 무거운 작업에서 지연 감소 효과 누릴수 있음
- Memcached 타입 → 디폴트 프로토콜, 크기가 유동적으로 변환가능, 오픈소스
- → object 캐싱, 단순한 캐싱모델, 캐시 크기를 마음대로 스케일링 하고 싶을때 사용
- Redis → key-value, set, list 형태를 in-memory에 저장 가능, 오픈 소스, Multi AZ
- → (list, set)형식, 데이터셋의 랭킹을 정렬할때 사용, Multi A가 사용되어야 하면 사용
[ ] S3
- 스토리지 서비스(저장곤간 무제한)
- 파일크기는 0KB~ 5TB 까지 지원
- 일반 S3 → 가장 보편적 사용, 높은 내구성 및 가용성
- S3 IA → 자주 접근 필요 없으나 빠른 접근이 요구되는 파일이 필요할때 사용 비용은 저렴 BUT 접근시 추가 비용 발생
- S3 One Zone IA → 단일 AZ를 통한 데이터 저장 (조금 낮은 가용성)
IA보다 20% 정도 저렴
- Glacier → 접근이 필요없는 데이터 저장시 유용 (매우 저렴함)
데이터 접근시 대략 4~5시간 소요
- Intelligent Tiering → 데이터 접근 주기를 자동으로 분석
Frequent Tier → 자주 접근시 (약간 비용이 비쌈)
Infrequent Tier → 자주 접근 안할 시
최고의 비용 절감 효율을 누릴 수 있음
[ ] S3 object 구성요소
- Key, Value, Version ID, Metadata, CORS
[ ] S3 Data Consistency Model
- Read after Write Consistency(PUT)
- Eventual Consistency(UPDATE, DELETE)
[ ] S3 암호화- 파일 업로드/다운로드시 → SSL/TLS
- SSE-S3 → 마스터키를 가지고 있고, 주기별로 키 값이 변경되어짐
- SSE-KMS → 누가 어떻게 암호를 풀었는지 알 수 있는 방법
- SSE-C → 암호키를 직접 다룰수 있다(키값을 직접 변경 시켜줌)
- x-amz-server-side-encryption-parameter→ 헤더에 존재하면 암호화된 파일
[ ] CloudWatch
- 리소스 사용 실시간 모니터링 기능 지원
- 다양한 이벤트를 로그파일로 저장
- 모니터링 종류
→ basic: 무료 but 5분간격 메트릭
→ Detailed : 유로 1분간격 메트릭 제공
[ ] CloudWatch Alarm
- 임의로 저장한 값 도착시 Alarm울림,
- Alarm 울림 시 특정 이벤트 작동 가능
- Billing Alarm → 지출 임계값을 초과할 경우 SNS을 통해 경고도 가능
[ ] Lambda
- Evnets를 통하여 Lambda 실행시킴
- Lambda 함수가 실행될 때에만 돈 지불
- 매달 1.0000.000함수 호출 시 무료
- 최대 5분 런타임 시간 허용
- 512MB의 일시적 디스크 공간 제공 (/tmp/)
[ ] CloudFront
- 정적,동적, 실시간 웹사이트 컨텐츠를 유저에게 전달
- Edge Location 사용, 분산 네트워크
- 컨텐츠들이 캐시에 보관되어진다.
- 먼 거리의 Region을 둔 경우 사용하면 유용
[ ] DynamoDB
- NoSQL 데이터 베이스, 모바일, 웹, IOT 데이터 사용 시 추천
- AUto-Scaling 기능 탑재
- 테이블 생성시 스키마 생성 필요 없음
- Key-Value 데이터 모델 지원 가능
- PK → 고유키 종류
파티션 키 → 데이터를 나누고 분리시키는 키, 실제 데이터가 들어가는 장소를 결정
복합키 → (파티션키 + 정렬키)
- 데이터 접근 관리 → IAM으로 관리 가능
[ ] DynamoDB index- 특정 컬럼만을 사용해 쿼리를 함(성능 향샹)
Local Secondary Index → 테이블 생성시만 정의 가능(같은 파티션 키 사용, 다른 정렬키 사용)
global Secondary Index → 테이블 생성 후에도 추가 변경 삭제 가능(다른 파티션키, 정렬키 사용)
[ ] Dynamo DB Scan vs Query
- Query → PK를 이용해서 데이터 검색
- Scan → 모든 데이터를 불러옴 그 후 필터링을 거쳐서 데이터를 보여줌
- Query가 훨씬 효율적이다.
- 참고용으로 사용되는 (규모가 작은)테이블은 Scan을 사용해도 된다
[ ] DynamoDB Accelerator
- 클러스터 In-memory 캐시, 10배이상 속도 향상
- 읽기 요청에만 해당사항이 있음
- 쓰기 요청이 많은 어플리케이션에는 부적절, 읽기요청이 많지 않으면 부적절
- 아직 모든 지역에서 제공 x
[ ] DynamoDB Stream
- 이벤트가 발생할때 시간 순서대로 저장되는 곳
- log는 암호화되어 24시간동안만 보관되어짐
[ ] Code Commit & Code Deploy- Code Commit → github와 매우 유사한 기능
- Code Deploy
Rolling 배포 방식 → 분산된 서버를 하나씩 업데이트하는 방식으로 서비스를 배포 (ROLLBACK이 어려움)
하지만 가장 처음 배포할때는 Rolling 배포방식이 적합
- Blue/Green 배포 방식 → 기존 서버와 동일된 서버들을 만든 후 업데이트 그후 기존 배포 shutdown
(ROLLBACK이 쉬움)
'프로그래밍 > aws' 카테고리의 다른 글
AWS Glue VS AWS Step Function (0) | 2024.11.07 |
---|---|
[AWS] Lambda vpc Nat gateway 설정 with Terraform (0) | 2024.06.10 |
[AWS] S3 Event -> SQS 사용방법 (0) | 2023.11.02 |