교차 리전 복제 (Cross-Region Replication, CRR)
ECS Fargate
AWS WAF
AWS Shield
Amazon Inspector, GuardDuty
CloudFormation 템플릿
PowerUsers IAM 정책
Amazon Elastic File System (Amazon EFS)
Amazon S3 Glacier
- 용도
- 적합
- 규제 준수를 위한 장기 데이터 보관에 이상적
- 데이터의 이전(전송) 자체를 관리하는 서비스는 아님.
AWS Storage Gateway
- 용도
- 온프레미스 환경과 AWS 스토리지를 연결하는 하이브리드 클라우드 스토리지 서비스
- 적합
- 온프레미스는 AWS 로 안전하고 효율적으로 전송할 수 있는 관리형 서비스
- 대량의 데이터를 장기간 보관하는 경우 적합함.
서브넷?
- 서브 네트워크의 줄임말
- 하나의 큰 네트워크를 더 작은 여러 개의 네트워크로 분할한 것을 말함.
- 서브넷팅(Subnetting) 은 네트워크 관리를 효율적으로 하며, 보안을 강화
서브넷 주요 개념
IP 주소
192.168.1.1
과 같은 형식
- 네트워크 상에서 장치를 식별하기 위한 고유한 주소
서브넷 마스크
- IP 주소를 네트워크 부분 + 호스트(장치) 부분으로 나누기 위한 비트 패턴
255.255.255.0
은 서브넷 마스크로 사용될 수 있음.
네트워크와 호스트 구분
- 서브넷 마스크를 사용하면 IP 주소
- IP 주소 →
192.168.1.10
라면
- 서브넷 마스크
255.255.255.0
을 사용시
- 192.168.1 → 이 네트워크 부분
- 10 → 호스트 부분
예를 들어..
- 192.168.1.0/24 네트워크를 가지고 있는 경우
- /24 는 서브넷 마스크가
255.255.255.0
이라는 의미
- 해당 네트워크는 총
256개
의 IP 주소 ( 192.168.1.0 ~ 192.168.1.255 ) 를 가진다.
192.168.1.0
는 네트워크 주소, 192.168.1.255
는 브로드캐스트 주소
- 실제로 사용할 수 있는 호스트는
254개
( 192.168.1.1
~ 192.168.1.254
) 이다.
서브넷 마스크 CIDR 표기법
- CIDR 표기법은 IP 주소와 서브넷 마스크를 간단하게 표현하는 방법임.
- 192.168.1.0/24
- 24는
- 255.255.255.0
- 255를 이진수로 변환
- 11111111.11111111.11111111.0 1의 개수 24개개 라서 그럼
- 255.255.255.128의 경우
- 11111111.11111111.111111111.10000000의 개수 25개임.
AWS EMR(Elastic MapReduce)
- 대규모 데이터 처리 작업에 최적화된 서비스이다.
- S3 와 같은 데이터 저장소에 저장된 데이터를 효율적으로 처리할 수 있음.
- 해당 문제에서 요구하는 고성능 컴퓨팅을 짧은 시간 동안 사용함.
- 고성능 컴퓨팅을 짧은 시간 동안 사용하고, 분석 작업이 끝난 후 자원을 종료하고 싶은 경우 EMR 를 사용할 수 있음.
Amazon Rekognition
- AWS 의 이미지 및 비디오 분석 서비스이다.
- 특히 부적절한 콘텐츠를 감지하는 기능을 가지고 있따.
- Rekognition 의
Moderation
API 사용시 자동으로 이미지
분석이 으로 콘텐츠 분석이 가능함
- 개발 작업을 최소화가 가능하다.
Amazon Comprehend
Amazon SageMaker
- 맞춤형 머신러닝 모델 만들 수 있음.
- 부적절한 콘텐츠를 감지시 모델 훈련 및 배포 과정이 필요
AWS Fargate
- 컨테이너를 실행할 수 있는 서버리스 컴퓨팅 엔진임.
- ECS 나 EKS 와 함께 사용이 가능하고, 이를 통해 서버 또는 클러스터 관리치 않고 컨테이너 실행이 가능하도록 함.
AWS SQS 가시성 시간 초과 문제
- SQS 에서 메시지를 가져오는 경우
- 해당 메시지는
가시성 시간 초과
동안 다른 소비자(다른 EC2 인스턴스) 에게는 보이지 않게 된다.
- 해당
가시성 시간 초과
의 경우 메시지를 처리할 시간을 보장하기 위하여 설정된 시간이다.
- 해당 시간은 메시지가 수신된 경우 아직 삭제되는 않은 상태에서
- 다른 소비자(다른 인스턴스) 가 볼 수 있게 숨기는 시간이다.
- 해당 시간 내에 메시지가 처리되고 삭제되지 않는 경우, SQS 는
메시지를 다시 다른 소비자에게 제공
하고 다시 처리하도록 한다
- 만약 1번 APP 이 메시지를 처리하고 RDS 에 쓰는 시간이
가시성 시간 초과
보다 길어진다면, 다른 인스턴스에 해당 메시지가 전달되어 중복처리 될
위험이 있다.
AWS SQS 가시성 시간 초과 문제 해결
changeMessageVisibility
API 를 사용하여 가시성 시간 초과를 늘리는 것이 문제 해결에 적합함.
changeMessageVisibility
조정으로 메시지 중복 가능성을 낮추고, 메시지가 한번만 처리될 수 있도록 가능.
Amazon Athena
- S3 에 저장된 데이터를 직접 SQL 쿼리로 분석할 수 있는 서비스
- S3 에 저장된 JSON 형식의 데이터에 바로 쿼리를 실행할 수 있음.
- 특징
- 즉시 실행 가능
- 운영 오버헤드가 적다
- 기존 아키텍처 통합 용이
Amazon CloudWatch Logs
- 실시간 애플리케이션 로그를 수집 및 모니터링하는 용도로 적합하다
- SQL 쿼리를 통해 대량의 JSON 파일을 분석하는 데 적합하지 않음.
AWS Glue
- ETL(Extract, Transform, Load) 작업을 자동화하는 서버리스 데이터 통합 서비스임.
- Glue 를 사용하는 경우 데이터를 수집하고 변환 → 분석에 필요한 형태로 저장하여 다른 앱에서 사용 가능
- S3, RDS 등의 다양한 데이터 원본에 메타데이터를 자동으로 검색 → Glue 데이터 카탈로그에 저장함.
- 해당 메타데이터는 Athena, RedShift EMR 등에서 재사용 가능
Amazon EMR
- 대규모 데이터를 분산 처리하기 위한 서비스
- Apache Spark, Hadoop 등의 오픈소스 빅데이터 도구를 클라우드에서 사용가능
- 콜드 데이터
- 저렴한 비용으로 읽기 및 업데이트를 위해 빠르게 엑세스할 수 있는 참조용으로 보관
Amazon FSx for Lustre
- 고성능 파일 시스템을 제공
-
고속 데이터 처리
-
병렬 컴퓨팅
이 필요한 워크로드에 최적화
- lustre (광택, 연마)
- HPC 커뮤니티에서 널리 사용되는 오픈 소스 병렬 파일 시스템.
- EDA(전자 설계 자동화) 같은 대용량 데이터 처리 어플리케이션에서 데이터를 바르게 읽고 쓰고 처리할 수 있도록 설계된 고성능 파일 스토리지임.
- AWS S3 는 한번 버전 관리를 활성화하면 일시 중단은 가능하지만, 비활성화할 수 있음.
- 다중 파트 업로드
- 파일을 여러 부분으로 나누어 동시 업로드 가능
- 업로드 속도를 개선할 수 있다.
- 대용량 파일 전송을 효율적으로 만든다.
비용 없이 사용할 수 있는 기능
이다.
Amazon S3 전송 가속 ( Amazon S3 Transfer Acceleration )
Amazon CloudFront
의 엣지 로케이션을 사용하여
- 전세계 어디서나 S3 버킷으로 전송 속도를 증대
- 해외 지사에서 S3 버킷에 대용량 파일 빠르게 업로드 가능
- 비용이 발생하긴하나
- AWS 글로벌 엑셀러레이터, Direct Connect 같은 전용 회선이 구축되어야 하는 옵션보다 경제적임
AWS 글로벌 액셀러레이터
- 비용이 높음
- 어플리케이션 성능 개선용으로 사용
- S3 업로드 속도 개선에는 비효율적
Amazon Gateway Endpoint
- VPC(Virtual Private Cloud) 내에서 AWS 서비스로 안전하게 연결하기 위한 가상 엔드포인트
- VPC 내의 리소스가
인터넷을 거치지 않고
AWS 서비스(S3, Dynamo DB) 등과 통신 가능
- EX
- VPC 내의 EC2 인스턴스가 S3 에 접근하는 경우 Gateway Endpoint 를 사용하는 경우 NAT 게이트웨어나 인터넷을 거치지 않고 직접 접근이 가능하다.
Amazon API Gateway
- API 를 생성, 배포 및 관리 할 수 있도록 도와주는 서비스
- RESTful API, WebSocket API, HTTP API 등을 쉽게 생성 가능.
- 스로틀링 기능
AWS 자동 확장 그룹(오토 스케일링 그룹)
스케일링 정책
을 통하여
- 인스턴스를 동적으로 확장하거나 축소가 가능하다.
1. 목표 추적 스케일링(Target Tracking Scaling)
- 특정 메트릭의 목표 값을 설정
- 설정한 값에 맞추어 인스턴스 수를 자동으로 조정
- CPU 사용률을 50 으로 설정시, 시스템이 해당 값에 도달할 수 있도록 자동으로 인스턴스를 추가하거나 제거함
2. 단계적 스케일링 정책(Step Scaling)
다양한 임계값에 따라 다른 단계의 조치 설정가능
- CPU 사용률이 70% 가 넘는 경우 2개의 인스턴스를 추가함.
- 90% 를 넘는 경우 3개의 인스턴스를 추가하는 식으로 여러 단계 설정 가능
3. 간단한 스케일링 정책(Simple Scaling)
- 특정 임계값에 도달하는 경우
단일 조치를 실행
- CPU 사용률 75퍼 초과하는 인스턴스 1개 추가, 25퍼 이하 떨어지는 경우 인스턴스를 1개 제거하도록 설정
4. 예측적 스케일링(Predictive Scaling)
- 머신러닝을 사용해 트래픽의 패턴 분석
- 향후 수요를 예측하여 미리 스케일링할 수 있도록 도와주는 정책임.
- 주로 일정한 패턴이 있는 트래픽에서 효과적임.
Aws S3 스토리지 클래스 전환 관련
- 비용 절감을 위해
- 엑세스 빈도가 낮아질수록 더 저렴한 스토리지 클래스로 전환하기 위해 사용
- 주의
- 모든 스토리지 클래스 간 전환이 가능한 것은 아님
- 더 저렴한 스토리지 클래스로 전환된 객체를 → 더 비싼 스토리지 클래스로 옮기는 것은 일반적으로 비효율적
- 특정 스토리지 클래스 간 전환이 제한됨.
- 잘못된 전환
- Amazon S3 표준- IA → Amazon S3 원존-IA
- 표준은 높은 가용성, 내구성
- 원존은 단일 가용 영역에만 데이터 저장 → 내구성 낮음
- 고가용성 → 원존 IA 는 부적절함.
- Amazon S3 인텔리전트 계층화 → Amazon S3 표준
- 인텔리전트 계층화는 객체의 액세스 빈도가 따라 스토리지 계층을 자동 전환하여 비용 절감
- 인텔리전트 계층화 >> 표준 전환은 인텔리전트 계층화 자동 관리 기능을 포기하게됨.
아마존 머신 이미지(AMI)
- EC2 인스턴스를 생성하는 데 필요한 소프트웨어 설정, OS, 어플리케이션 서버, 어플리케이션 자체를 포함하는 템플릿
- 리전 간에서는 EC2 인스턴스를 직접 복사가 불가능하기에
- 인스턴스 구성 등을 AMI 라는 이미지 형태로 저장하고, 원하는 리전으로 복사해야 한다.
- 다른 리전에서도 원본 인스턴스와 동일한 설정으로 새로운 인스턴스를 프로비저닝할 수 있음.
프로비저닝?
- 리소스나 서비스를 설정하고 준비하는 과정
- 필요한 컴퓨팅 리소스를 생성하고, 구성하여 사용 가능하게 만드는 과정임
AWS CloudTrail
- API 활동 로깅 서비스
- AWS 계정에서 수행된 모든 API 호출 내역을 기록해 누가, 언제, 어떤 작업을 수행했는지 추적할 수 있음.
- 모든 관리형 AWS 서비스에 대해 관리 이벤트(생성, 삭제 등) 뿐만 아니라 데이터 이벤트(S3 객체 접근) 도 기록 가능.
Amazon CloudWatch
- 모니터링 및 관리 서비스
- AWS 리소스 및 사용자 어플리케이션의 운영 상태를 모니터링할 수 있음.
- 대시보드 생성, 알람 설정 문제 발생시 자동 조치 등이 가능함.
CloudWatch 메트릭 필터
- 로그 그룹에서 특정 패턴을 필터링해 메트릭 생성 가능
- 로그에서 특정 오류 패턴의 감지 → 바탕으로 CloudWatch 메트릭을 생성함
- 해당 메트릭 필터는 CloudTrail 로그와 연동
- API 호출의 오류 코드 등 특정 이벤트를 필터링하고, 해당 이벤트를 기반으로 알람을 트리거
AWS Trusted Advisor
- AWS 계정 상태를 모니터링하고 권장 사항을 제공하는 서비스
- 암호화 되지 않은 S3 버킷, 비용 절감 제안 등을 제공
Amazon RDS Multi-AZ 배포를 위한 복제 기능과 Amazon RDS 읽기 복제 기능에 대해 이해
- 다중 AZ 의 경우
- 동기식 복제
- 데이터를 주 인스턴스에서 보조(standby) 인스턴스로 복제하여
고가용성
제공
- 다중 AZ 는 리전 내에서만 가능
- 장애 발생 시 신속하게 장애 조치(failover) 를 위해 사용
- 읽기 복제본의 경우
한 대형 은행은 관리 복잡성과 오버헤드를 간소화하면서 고가용성과 비용 효율성을 보장하기 위해 여러 핵심 뱅킹 애플리케이션을 클라우드로 마이그레이션하는 데 Amazon Simple Queue Service(Amazon SQS)를 사용하고 있습니다.
은행의 개발팀은 SQS를 통해 초당 약 1,000개의 메시지가 처리될 것으로 예상하고 있습니다. 메시지가 순서대로 처리되는 것이 중요합니다.
다음 중 이 시스템을 구현하는 데 사용할 수 있는 옵션은 무엇인가요?
- 작업 당 2개의 메시지를 일괄 처리 모드 + AWS SQS FIFO 큐 사용
- 작업 당 4개의 메시지를 일괄처리 모드로 설정하게 된다면
- 같은 그룹 내에서 처리 지연이 발생해서 순서 위반이 생길 위험이 있다고 함.
- 일반적으로 2개의 메시지를 일괄처리하는 경우가 최대 성능이라고함.
간단한 추적 정책(simple scaling policy)
- 특정 임계값에 도달하는 경우에만 스케일링을 수행
- 지정된 시간에 정확히 동작 X
대상 추적 정책(target tracking)
- CPU 사용률과 같은 메트릭을 기준으로 스케일링을 조정
- 특정 시간에 자동으로 조정하는 기능은 없음
한 회사의 급여 부서에서는 매월 마지막 날 지정된 시간에 Amazon EC2 인스턴스에서 여러 가지 계산 집약적인 워크로드를 시작합니다. 급여 부서는 이 시간 동안 심각한 성능 지연이 발생하는 경향을 발견했습니다. 엔지니어링 팀은 이러한 Amazon EC2 인스턴스에 자동 확장 그룹을 사용하여 이 피크 사용 시간 동안 10개의 Amazon EC2 인스턴스를 사용할 수 있도록 하는 해결책을 찾았습니다. 정상적인 작업의 경우 Amazon EC2 인스턴스 2개만 있으면 워크로드를 처리하기에 충분합니다.
솔루션 설계자로서 솔루션을 구현하기 위해 다음 중 어떤 단계를 권장하시겠습니까?
- 해당 방식은 매월 마지막 날 지정된 시간에 예약 작업을 만들어 자동 확장 그룹의 인스턴스 용량을 10으로 설정하는 것이 정답임
- 예씨에 자동 스케일링 그룹의 최소 최대 인스턴스를 10으로 두는 것도 하나의 보기로 나왔는데
- 해당 방식으 적절하지 않은 이유는
- 만약 해당 트래픽이 인스턴스 10의 요구까지는 필요없는 상황인 경우에도 강제로 10으로 인스턴스 수를 설정하고
지속적인 비용 절감의 기회를 놓치는 문제가 발생함
인스턴스의 종류
온디멘트 인스턴스
- 필요한 시간 동안만 유연하게 사용할 수 있음.
- 특징
- 비용
- 장기 약정이나 선결제 없이 자유롭게 사용 가능
- 사용 예시
- 짧은 시간 동안 인스턴스를 사용하는 경우 적합하다.
예약 인스턴스
- 1년 ~ 3년 동안 특정 인스턴스를 예약하고 장기사용
- 특징
- 비용
- 사용 예시
- 24 / 7 로 지속적으로 운영해야 하는 서버
스팟 인스턴스( Spot Instance )
- AWS 에서 남는 컴퓨팅 자원을 활용
- 특징
- 비용이 매우 저렴하다.
- AWS 에서 리소스가 필요한 경우 언제든지 인스턴스가 중단될 수 있음.
- 사용 예시
- 비용
- 중단되어도 상관없는 작업
- 일시적으로 대규모 컴퓨팅이 필요한 작업에 적합함.
전용 호스트
- 특정 사용자를 위해 AWS 물리적 서버를 완전히 할당
- 특징
- 독립적인 물리적 하드웨어에서 운영
- 데이터 격리성이 매우 높음
- 비용
- 겁나 비쌈
- 보안성 및 규정 준수가 핑요한 경우 사용 IDC 개념인듯
- 사용 예시
- 금융업이나 의료업같읕 높은 보안성이 필요한 경우
AWS 스토리지 비용 관련
S3 Standard
- 가장 저렴한 객체 스토리지
- 정적 파일, 백업 등의 주기적으로 접근하는 데이터를 저장하기에 적합
- 낮은 GB당 비용
Amazon EBS(Elastic Block Store)
- 블록 스토리지, 주로 EC2 인스턴스와 연결하여 사용가능
- 비용이 S3 보다 비쌈, 프로비저닝 된 용량만큼 요금 발생
- DB나 고성능 어플에 적합
Amazon EFS(Elastic File System)
- 파일 스토리지 서비스
- 여러 인스턴스가 공유하여 사용함
- POSIX 준수, 고가용성과 확장성 제공
- 다른 스토리지 유형에 비해 GB 당 비용이 높음
- 여러 서버가 동일한 파일 시스템에 접근해야 하는 경우 적합
S3 Object Lock
- 객체를 삭제하지 못하도록 일정 기간 동안 보호하는 데 사용
- 객체에 대한
보존 정책(Retention Policy)
를 설정
- 보존 기간이 끝나는 전까지는 해당 객체가 삭제되지 않도록 보장가능
- 해당 기능을 통해 규정 요구 사항을 충족
- S3 Glacier 로 데이터 이동 설정하여
비용 절감
도 가능
S3 수명 주기 정책(S3 Lifecycle Policy)
- S3 버킷 내의 객체의
스토리지 클래스를 자동으로 전환
- 특정 시간 후에
객체를 자동으로 삭제
하는 규칙을 설정
- 예시
- 데이터를
STANDARD
→ GLACIER
로 이동
- 객체가 특정 보존 기간 초과시 자동 삭제 처리 가능
S3 Intelligent-Tiering
저장 빈도에 따라 객체를 자동으로 다른 스토리지 클래스로 이동
- 데이터 접근 패턴이 불규칙한 경우 적합함
S3 Glacier Vault Lock
- S3 Glacier Vault 에 있는 아카이브 데이터를
불변 상태로 보관
할 수 있음.
Amazon GuardDuty
- AWS 환경 내에서 잠재적인 보안 위협을 탐지하는
위협 탐지 서비스
- 머신 러닝과 비정상 행위 탐지 기법을 활용
- AWS 계정과 인프라에서 발생하는 의심스러운 활동 자동 모니터링
- 경고 생성
- 역할
- 지속적 위협 탐지
- VPC 플로우 로그
- DNS 로그
- AWS CloudTrail 이벤트 등의 데이터를 실시간으로 분석
AWS KMS
- AWS KMS(키 매니저 서비스)
- 삭제되면 복구 불가능
- KMS 키를 삭제하는 경우 최소 7일 ~ 최대 30일간 보류 기간임.
- 만약 삭제한 경우 7 ~ 30 일 까지는 복구 → 30일 넘으면 불가능함.
AWS Snowmobile
- 100페타바이트 이상의 대용량 데이터 마이그레이션에 적합한 서비스
- 네트워크 전송이 비현실적이거나 지나치게 비용이 높은 경우
- 즉, 물리적 전송이 더 비용 효율적인 경우에 Snowmobile 이 유리함.
Snowball Edge Storage Optimized 디바이스
- 1개 당 약 80TB 의 스토리지 제공
- 그냥 데이터 마이그레이션 서비스임.
AWS Shield Advanced
- AWS 에서 제공하는 DDos(Distributed Denial of Service) 공격 방어 서비스
- 저축 플랜 적용 X
- 저축 플랜은 EC2, Fargate, Lambda 등에 적용된다.
- 통합 청구
- AWS Organizations 의 기능 중 하나
- 여러 AWS 계정을 하나의 마스터 계정 아래 두고 비용을 통합하여 청구
- 여러 계정에서 Shield Advanced 를 사용하는 경우 통합 청구를 통해 비용 절감 가능
AWS 람다는초당 요청 제한이 있다.
- 람다는 초당 요청이 5000건 까지 급증하는 경우 동시성 제한이 있음.
- 동시성 한도는 계정 단위로 설정되며,
- 해당 문제 해결을 위해 AWS 지원팀에 문의해서 동시성 할당량을 늘려야 한다.
부팅볼륨으로 사용할 수 없는 스토리지 볼륨 유형
- 콜드 하드 디스크 드라이브(sc1)
- 저비용의 대용량 스토리지가 필요한 경우 사용됨
- 처리량 최적화 하드 디스크 드라이브(st1)
- 처리량 집약적인 작업에 적합한 HDD,
- 로그 처리와 같은 대용량 데이터 처리 위해 사용
- 인스턴스 스토어
- EC2 인스턴스에 임시 스토리지 제공
- 인스턴스가 중단되거나 중료될떄 데이터 유지 X
- 부팅 볼륨으로 적합하지 않음 → 안되는건 아님.
Amazon S3 표준-빈번한 액세스(S3 Standard-IA)
- 드물게 접근하지만 즉시 접근이 필요한 데이터에 적합
- 밀리초의 지연 시간 접근
- S3 표준보다는 낮은 비용
Amazon S3 인텔리전트 계층화(S3 Intelligent-Tiering)
- 접근 빈도가 예측하기 어려운 데이터에 적합
- 데이터를 여러 계층에 자동으로 배치함
- 사용량이 예상되는 경우에는 관리 비용이 추가됨.
AWS 글로벌 엑셀러레이터
- UDP(사용자 데이터그램 프로토콜) 지원, 글로벌 애플리케이션의 가용성과 성능을 향상시킬 수 있는 서비스
- 여러 리전에 배포된 어플에 대해
빠른 장애 조치
를 제공
- 트래픽을 최적의 AWS 리전으로 라우팅함.
- AWS 리전에 문제 발생시, 다른 리전으로 빠르게 전환
- 어플의 연속성 보장
고유의 글로벌 고정 IP 주소
사용
- 어플의 IP 변경 X → 자체 맞춤형 DNS 서비스와 함께 사용이 가능함.
CloudFront
Route53
- 고가용성, 확장성 있는 DNS
- 다중 리전 간 장애 조치 지원
- UDP 트래픽의 지연 시간 최적화, 고정 IP 주소 제공 지원 X
AWS DataSync
- 파일 기반 스토리지의 데이터 복제, 전송하는 데 적합
- 데이터베이스 실시간 동기화에는 적합 X
AWS Step Functions
- 서버리스 오케이스트레이션 서비스
- Step Functions → 개별 작업을
단계
구성
- 각 작업의 실행 상태를 추적하고 오류를 자동으로 처리할 수 있음.
AWS DynamoDB Streams
- 테이블 변경 사항을 실시간으로 기록
- AWS 람다 와 연동해서 스트림에 새 항목 추가시 마다 특정 작업을 트리거할 수 있음.
DynamoDB Time to Live(TTL)
- DynamoDB 테이블에서 데이터를 자동으로 삭제해주는 기능.
- 타임스탬프 기간을 넘으면
Application Load Balancer (ALB)
- HTTP 와 HTTPS 기본 지원
- AWS WAF(Web application firewall)
다중값 라우팅 정책
- Amazon Route 53 에서 여러 IP 주소를 반환할 수 있는 라우팅 방식
- 여러 인스턴스 로드 밸런싱 가능
단순 라우팅 정책
대기 시간 라우팅 정책
- 사용자 위치와 리전 간 지연 시간 기준으로 가장 빠른 리전 라우팅
지리적 위치 라우팅 정책
Amazon RDS Custom for Oracle
- 오라클 데이터베이스 환경에 대한 고가용성 설정을 지원하면서도 기본 OS 수준의 사용자 정의가 필요한 경우에 적합함.
- 일반 Amazon RDS는 OS 접근을 허용하지 않음.
- RDS Custom 은 해당 특별한 요구 사항을 총족하도록 설계되어 있음.
콘텐츠 기반 라우팅 ( Content-Based Routing )
- 요청의 콘텐츠
요청 헤더
나 URL 경로
와 같은 특정 기준을 기준으로 트래픽을 분산하는 기능이다.
- 주로
HTTP(S) 트래픽을 처리하는 로드 밸린서
에서 사용됨.
- 이를 통하여 다음과 같은 방식으로 트래픽을 관리할 수 있음
- URL 경로 기반 라우팅
- 요청 URL 의 경로를 분석해 트래픽을 지정된 서버로 라우팅
- 예
/images
경로로 오는 요청을 이미지 서버로 보냄
/videos
경로는 비디오 서버로 라우팅
- 호스트 헤더 기반 라우팅
- 요청의 호스트 헤더를 검사
- 특정 도메인 또는 하위 도메인으로 오는 요청을 각기 다른 서버로 그룹으로 보냄
- 예
- 쿠키 기반 라우팅
- 쿠키 값에 따라 사용자를 특정 인스턴스나 서버로 고정해 보낼 수 있음.
- 이를 통해 사용자 세션을 유지
- 특정 서버에 트래픽을 집중할 수 있음.
ALB(Application Load Balancer, ALB)
- 여러 AZ 에 분산된 EC2 인스턴스에 트래픽 분산
- 콘텐츠 기반 라우팅도 가능
- 자동 확장 그룹 구성해 인스턴스 장애 마스킹 가능
AWS Direct Connect
- 온프레미스 데이터 센터나 사무실 네트워크를 AWS 클라우드와 직결하는 서비스
- 전용 네트워크 경로를 사용하여 데이터 전송이 가능함
Direct Connct + VPN
- VPN 을 백업 경로로 설정하는 건 고가용성에서 유용함
- 운영 오버헤드가 발생가능하고
- 암호화가 필수적이라면 VPN 을 백업으로 추가하는 것도 방법임.
AWS Transit Gateway
- 여러 네트워크를 연결하고 관리하는 데 유용함
- 직접적인 전용 연결을 제공하지 않음.
- 데이터 센터와 연결이 필요한 경우 Direct Connect 나 VPN 이 적합함.
권한 경계 ( Permissions Boundary )
- AWS IAM 에서 사용자가 가질 수 있는
최대 권한의 한계를 설정하는 정책
- 특정 사용자가 할 수 있는 일의
최대 범위
를 정해두는 일종의 안전 울타리
역할
- 사용자가 특정 역할에 대해 권한이 있는 경우
- 권한 경계가 허용하지 않는다면 해당 작업을 수행할 수 없음.
Amazon FSx for Windows File Server
- MS 분산 파일시스템(DFS) 를 완벽히 지원하는 관리형 서비스임.
- 온프레미스에서 사용 중인 MS DFS 환경을 AWS 로 손쉽게 확장 가능
- DFS 를 사용하는 데이터 집약적 워크로드를 하이브리드 클라우드 환경에서 원활히 운영 가능
MS 분산 파일시스템(DFS)
- 여러 서버에 분산되어 있는 폴더와 파링르 하나의 통합된 파일 시스템 구조로 보여주는 기술
- 한 회사의 본사와 지사에 있는 파일 서버들이 각각 다른 위치에 있어도 사용자는
\\회사공유폴더\
같은 하나의 경로로 모든 파일에 접근이 가능하다.
AWS 관리형 MS AD
- 디렉터리 서비스
- 주로 액세스 관리와 인증에 사용됨
- 분산 파일 시스템(DFS) 를 직접적으로 지원하지 않는다.
AWS S3 단일 버킷 트래픽 집중시 문제
- 단일 버킷에 너무 많은 요청이 집중되는 경우 확장성 문제 발생
- S3 는 버킷 내
접두사(prefix)
별로 트래픽을 분산 처리하고
- 각 고객별로 고유한 접두사 생성
- 파일 업로드 시 요청이 여러 접두사로 분산되어 확장성을 높일 수 있음.
- 리소스 효율적으로 활용이 가능하고
- 추가적 비용 X
AWS 스토리지 게이트웨이
- 파일 게이트웨어
- 온프레미스 어플리케이션이 NFS(Network File System) 프로토콜을 통해
- AWS S3 와 통합이 가능함.
- 특히 NFS 인터페이스를 통해 AWS 클라우드와 온프레미스 시스템을 쉽게 연결가능
- 볼륨 게이트웨이
- 주로 블록 스토리지용 설꼐
- NFS 지원하지 않음
- 테이프 게이트웨이
- 기존 백업 테이프 시스템을 AWS로 이전할 때 사용하는 방식
- 사이트 간 VPN
- 네트워크 연결을 위한 것
- 파일 스토리지 요구 충족하지 않음.
Kinesis Data Firehose vs Kinesis Data Streams
- kinesis data streams
- 고성능, 실시간 데이터 스트리밍에 최적화됨.
- 데이터를 빠르게 수집하고 처리할 수 있음.
- Kinesis Data Firehose 처럼 데이터 변환을 자동으로 지원하지 않음.
- kinesis data firehose
- 간단한 데이터 수집과 배포에 초점
- 데이터를 S3 로 보내기 전에 람다로 데이터 필터링 가능
- 파이어호스는 완전 관리형
- 인프라 유지 관리가 거의 필요 없음
- 실시간 수집과 저장이 간편
- 데이터 처리 워크플로우를 효율적으로 관리 가능
인메모리 데이터베이스 등
- Amazon DynamoDB Accelerator(DAX)
- DAX 는 DynamoDB의 인메모리 캐싱 레이어로 동작함
- 지연 시간 줄이고
- 더 빠른 데이터 엑세스를 가능하게 함.
- 고가용성, 짧은 지연 시간 요구 사항 충족
- Amazon ElastiCache for Redis
Amazon Neptune
- 그래프 데이터 베이스
- 그래프 관계형 데이터 분석에 적합
Amazon Aurora
AWS Key Management Service (KMS)
- 서버 측 암호화(SSE-KMS) 는 AWS 가 관리하는 암호화 키를 사용
- 다음과 같은 이점 제공
- 암호화 키 관리
- 감사 추적
- 키의 사용기록을 CloudTrail 에 자동으로 기록
- 누가 언제 키를 사용했는지에 대한 감사 추적을 유지 가능
- 데이터 보호
SSE-S3
- S3 관리 키
- 서버 측 암호화를 제공함, 감사 추적 기능이 없음
SSE-C
- 고객이 직접 암호화 키를 제공하고 관리
- 스타트업의 요구사항이 맞지 않음.
인스턴스 스토어 기반 Amazon EC2 인스턴스
- 인스턴스 스토어
- EC2 인스턴스에 직접 연결된 임시 스토리지
- 높은 I/O 성능과 짧은 지연 시간
- 비용 효율적
- 랜덤 IO 성능이 중요한 경우 최적화됨
- 인스턴스가 중단 되면 데이터가 사라짐
amazon aurora 장애 조치 매커니즘
우선 순위 계층(티어)
와 인스턴스 크기
- 장애가 발생하는 경우
가장 높은 우선순위 계층에 속한 읽기 복제본
- 동일한 계층에 여러 복제본이 있는 경우,
인스턴스 크기가 더 큰 복제본을 우선적으로 승격
AWS cloudtrail & cloudwatch
- AWS cloudtrail
- 모든 API 호출을 기록함
- 비정상적인 API 사용을 추적가능
- cloudWatch
- 메트릭 필터를 통해 cloudtrail 로그에서 특정 오류 코드나 비정상적인 API 호출 패턴을 필터링 + 모니터링 가능
- 필터를 통해 알람 설정가능
- 아마존 SNS 를 통해 알림을 전송 가능하다
Kinesis vs SQS
- 키네시스
- 데이터 순서와 처리량 스트리밍에 적합
- 게임 점수와 같은 연속적인 데이터 업데이트에 가장 적합하다
- SQS
- 주로 비동기 이벤트 처리나 단일 요청 응답 패턴에 적합하다
Cognito
- 사용자 인증, 권한 부여 및 사용자 관리 기능을 추가할 수 있는 서비스
- 소셜 로그인 지원
- 소셜 ID 공급자를 통합해서 사용자 인증을 간소화 처리함
- Oauth 2.0 지원
- 데이터 보호
- Cognito 사용자 풀에 저장된 사용자 데이터 AWS 보안 프레임워크에 의해 보호됨.
- 강력한 암호화 및 권한 관리를 제공함.
RedShift
- 데이터 웨어하우스 솔루션
- 구조화된 데이터 분석에 적합함.
- RedShift 의 경우 대량의 구조화된 데이터를 고속으로 처리하는 데 유리함
S3 + Amazon Athena
- S3 에 저장된 비정형의 데이터를 SQL 쿼리를 사용해 분석할 수 있는 서버리스 쿼리 서비스 → Athena
- 데이터 분석을 쉽게 할 수 있음.
VPC(Virtual Private Cloud)
- 가상 사설 클라우드
- AWS 자원 사용시 각 사용자는
자신만의 네트워크 환경 (VPC
를 가지게 된다.
안전한 네트워크 공간
이다.
- EC2 인스턴스나 RDS 등 배치 가능
서브넷 ( Subnet ) → 네트워크를 나누는 작은 단위
- VPC 안에서 더 작은 네트워크 영역을 나누는 구획
- 종류
- 퍼블릭 서브넷
- 인터넷과 연결된 네트워크 영역
- 프라이빗 서브넷
- 내부에서만 사용할 수 있는 네트워크
- 중요한 데이터나 보안을 강화해야 하는 자원(DB) 는 프라이빗 서브넷이 두는 것이 좋다.
CIDR (Classless Inter-Domain Routing) - IP 주소 범위
- CIDR 네트워크의 IP 주소 범위를 나타내는 방식
- 10.0.1.0/24 → 10.0.1.0 ~ 10.0.1.255
- 24는 255의 이진법에 대한 1의개수임.
단일 테넌트
- 하나의 고객만이 전용 자원에서 애플리케이션을 실행하는 환경
- 전용 인스턴스 설정의 경우
- 물리적 하드웨어 공유없이 한 고객의 인스턴스만 존재하도록 격리
- 해당 인스턴스가 단일 테넌트(입주민) 이다.
Amazon Route 53 장애 조치 레코드
- 온프레미스 서버 장애가 발생한 경우 AWS 로 트래픽을 자동 전환
SSE-C ( 고객 제공 키를 사용한 서버 측 암호화 )
- 고객이 직접 암호화 키를 제공해 S3에서 데이터를 암호화처리한다.
- 온프레미스 → 클라우드 전환간에 암호화 키를 유지할 수 있는 장점이 있다.
시작 구성, 시작 템플릿
- 시작 구성
- 시작 템플릿
- 최신 구성 옵션
- 온디맨드와 스팟 인스턴스를 모두 사용
Amazon EFS 성능 모드
- 버스팅 처리량 (Bursting Throughput)
- 기본 성능 모드
- 파일 시스템 크기에 따라 버스트 성능을 제공
- 일반 목적
- 프로비저닝된 처리량
- 항상 일정하고 높은 처리량 유지가능
- 빅 데이터 처리 워크로드에 적합하다
- 최대 I/O
- 높은 처리량과 확장성
- 지연 시간(latency) 증가될 가능성이 있다.
키네시스 vs SQS
- 순서 보장 차이
- 키네시스
- 샤드 단위로 데이터 처리
- 특정 파티션 키 기반으로 데이터 전송의 경우 해당 파티션에 대해 순서 보장
- 동시에 여러 시스템에서 독립적으로 데이터 처리하긴 어려움.
- 확장성
- 키네시스
- 소비자 수가 제한된다.
- 기본적으로 1개 파티션(샤드) 당 5개 까지 읽기 동시 처리가 가능하다
- SQS
- 데스크톱 시스템 수에 맞춰 쉽제 소비자 수를 늘릴 수 있음.
AWS 시크릿 매니저
- db 비밀번호와 같은 중요한 시크릿을 안전하게 저장
- 비밀번호 자동 교체 기능
- 주기적으로 비밀번호 교체를 자동화하는 기능 제공
VPC 엔드포인트
- VPC(가상 사설 클라우드) 안에 있는 리소스가
퍼블릭 인터넷을
거치지 않고 AWS 서비스(S3, DynamoDB 등) 에 직접적으로 안전하게 연결할 수 있도록 만들어주는 네트워크 설정임.
- 특징
- 퍼블릭 인터넷을 우회한다
- vpc 내부의 EC2 인스턴스나 기타 리소스가 S3 접근하는 경우, 인터넷 게이트웨어나 NAT 게이트웨이를 통하지 않고
- AWS 네트워크를 통해 직접 접근함.
- 데이터가 인터넷에 노출되지 않음
- 비용 절갑
- NAT 게이트웨이 또는 인터넷 게이트웨이를 통한 비용만큼 절감가능
- AWS 네트워크 안에서 처리되기에 추가적인 인터넷 비용이 없음
AWS Transit Gateway
- 여러개의 AWS VPC 와 온프레미스 네트워크를 중앙에서 손쉽게 연결하고 관리할 수 있도록 도와주는 서비스이다.
- 허브 앤 스포크 모델을 구현함.
- 여러 VPC 온프레미스 네트워크를 중앙의 Transit GateWay 에 연결함.
- VPC 간의 직접 p2p 없이도 상호 통신이 가
AWS Auto Scaling 기본 종료 정책
- 인스턴스 종료 순서
- 가용 영역(AZ) 선택
- 가장 많은 인스턴스가 있는 AZ 선택
- 다음 청구 시간과 근접성
- 다음 청구 시간에 가장 근접한 인스턴스 종료
- 비용 효율성 최대화를 위함.
- 청구 시간에 가까울 수록 인스턴스를 종료해도 사용한 시간에 대한 비용만 청구받음.
- 런치 설정 또는 런치 템플릿의 연령
- 가장 오래된 런치 설정/템플릿이 있는 경우
RDS RBAC(Role based access control)
- 역할 기반 액세스 제어
-
무엇을 할 수 있고
-
볼 수 있고
-
접근할 수 있는지
를 역할에 따라 정하는 시스템
- 예시
- DB
- 관리자(Admin)
- 읽기 전용 사용자(Viewer)
Amazon S3 관리형 키(SSE-S3)
- AES-256 암호화처리, S3 가 암호화 및 키 관리를 자동으로 처리함
S3 버킷 정책을 통한 암호화
- x-amz-server-side-encryption
- 데이터가 s3에 업로드되는 경우 암호화되지 않으면 자동으로 업로드가 거부되도록 설정..
- 해당 헤더를 요구할 수 있다.
- S3 에 업로드 되는 모든 데이터가 서버 측에서 암호화되도록 강제함.
- 데이터가 암호화되지 않은 채로 저장될 위협을 방지 가능
클러스터 배치 그룹 (Cluster Placement Group)
- 인스턴스 간 지연 시간이 매우 낮음.
- 대역폭이 높은 네트워크를 필요로 하는 고성능 컴퓨팅(HPC) 워크로드에 적합
- 동일한 랙 내의 물리적 호스트에 인스턴스를 배치 + 네트워크 지연을 최소화한다.
Elastic Fabric Adapter(EFA)
- HPC 어플리케이션에서
지연시간이 낮고 고대역폭 통신
을 지원하는 네트워크 인터페이스
- EC2 인스턴스 간에 대규모 데이터 전송하는 경우 성능 극대화
분산 배치 그룹 (Spread Placement Group)
- 인스턴스를 물리적으로 분리된 호스트에 배치
- 내결함성이 필요한 워크로드에 적합
파티션 배치 그룹
분산성
이 중요한 경우
- 데이터를 파티션으로 나누어 배치, 동일한 파티션 내 인스턴스는 서로 다른 랙에 배치
다운스트림 처리?
- 시스템이나 어플에서 생성된 데이터를 다음 단계로 전달하여 추가로 처리하거나 소비하는 작업
- aws 환경에서의 다운스트림?
- 한 어플(생산자) 에서 SQS 대기열에 메시지 추가
- 다른 어플(소비자) 가 이를 읽고 처리하는 과정이
다운스트림 처리
스팟 블록
- 시간이 제한된 작업을 비용효율적으로 실행시 이상적인 옵션
- 스팟인스턴스의 경우 AWS 가 필요한 경우 회수 가능성이 있지만,
- 스팟 블록의 경우
예약된 기간 동안 종료되지 않음
AWS Storage Gateway - Tape Gateway
- 온프레미스의 테이프 백업 워크플로를 변경치 않고
- 데이터를 AWS로 마이그레이션하는 솔루션
- Tape Gateway
- AWS 스토리지 게이트웨이의 하나의 유형
- 기존 백업 어플리케이션에서
가상 테이프 라이브러리
를 사용하는 것 처럼
- 데이터를 클라우드로 전송가능
- 데이터를 S3 로 전송한 뒤, 장기 보관을 위해 S3 Glacier 나 Glacier Deep Archive 로 아카이빙
Tape WorkFlow?
- 데이터 저장, 백업, 아카이빙을 위해 물리적 테이프 드라이브와 테이프 라이브러리를 사용하는 프로세스
- 전통적인 데이터 백업 및 아카이빙 방식임.
오프로드
- 컴퓨팅에서 어떤 작업이나 처리를 원래 수행하던 장치나 시스템에서
다른 장치나 시스템으로 넘겨주는 것을 의미한다.
TLS 종료
- TLS(전송 계층 보안)
- 인터넷에서 데이터를 암호화하여 전송하는 프로토콜
- TLS 종료 → 데이터 암호화/복호화 작업을 수행하는 과정을 말함.
- 오프로드 작업
- TLS 암호화 복호화는 기본적으로 서버가 처리함(EC2)
- 이러한 작업 자체는 컴퓨팅 리소스를 많이 차지해서
- NLB(network load balance) 같은 별도의 장치나 서비스로 해당 작업을 넘기는 경우, ec2 인스턴스는 실제 어플리케이션 처리에 집중이 가능하다.
RAID
- Redundant Array of Independent Disks
- 여러 디스크를 조합해 성능, 내결함성, 또는 2가지 모두 향상시키는 기술임
RAID 0 (스트라이핑)
- 개념
- 데이터를 여러 디스크에 나눠 저장함
- 한 파일 데이터를 여러 디스크에 동시 기록하고 읽음.
- 장점
- 최대 I/O 성능
- 디스크 용량을 전체 사용가능
- 단점
- 내결함성이 없다
- 디스크 중 하나라도 고장나면 모든 데이터 손실
- 장애 발생시 복구가 안된다
- 데이터 성능 중점
RAID 1 ( 미러링 )
- 개념
- 동일한 데이터를 여러 디스크에 복제(미러링) 함
- 하나의 디스크에 문제가 생겨도 다른 디스크에 복제된 데이터를 사용함
- 장점
- 높은 내결함성
- 한 디스크가 고장 나도 데이터는 복구가 가능
- 읽기 성능이 약간 향상
- 단점
- 저장 용량의 절반만 사용이 가능하다
- RAID 0 에 비해 쓰기 성능은 좀 느림
- 데이터의 보호 중점
S3 Glacier와 볼트 잠금 정책
- Amazon S3 Glacier
- 데이터를 안전하게 보호
- 장기 아카이브
- 높은 내구성
- 볼트 잠금
- Glacier 에서 제공하는 규정 준수 기능
- 특정 정책 설정 후
- 이를 잠기면 → 수정할 수 없음.
- 데이터를 규정에 맞게 관리 가능.
- 한 번 쓰기, 여러 번 읽기(WORM) 모델 지원
DB 스냅샷 암호화 관련
- 기존 DB 의 인스턴스 암호화는 불가능하다
- RDS 인스턴스의 경우 초기에 생성시에 암호화관련 설정을 하지 않는 경우 암호화 처리가 되지 않기에
- 새로운 암호화된 DB 인스턴스가 필요하다
- 기존 DB 인스턴스를 교체하는 과정이 필수적이다.
- 기존 DB 인스턴스의 스냅샷을 뜰때 - 암호화를 설정한다.
- 해당 암호화된 DB 인스턴스를 기존 DB 인스턴스로 교체하는 작업이 필요하다.
대상 추적 정책(Target Tracking Policy)
- AWS 오토 스케일링 기능 중의 하나이다.
- 자동으로 EC2 인스턴스의 수를 조정하는 정책
- 온도 조절기 같은 역할이다.
- 특정 지표 목표 범위를 벗어나는 경우
- 오토 스케일링 그룹이 자동으로 인스턴스를 추가하거나 제거하여 목표 지표를 유지한다.
- 목표로는
-
CPU 사용률
-
메모리 사용률
-
네트워크 트래픽 등
이 존재한다.
S3 원본 액세스 ID( OAI )
- S3 와 CloudFront 간 액세스 제어를 위해 사용되는 특수한 IAM 역할
- OAI 를 통해 CloudFront 가 S3 버킷의 콘텐츠에 안전하게 액세스할 수 있도록 설정함
- 직접적인 퍼블릭 액세스 차단, 클라우드 프론트로만 콘텐츠 제공이 가능하다.
- 구성요소
-
고유한 ID
-
Canonical ID
를 가지고 있음
- S3 버킷 정책에서 OAI 인증을 한다고 함.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"CanonicalUser": "OAI의 Canonical ID"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example-bucket/*"
}
]
}
- 서버리스 솔루션 → 기존 데이터 + 새 데이터 분석
- 데이터 S3 버킷에 저장
- 데이터 암호화 필요
- 다른 aws 리전으로 복제
- s3 교차 리전 복제
AWS Amplify
- 프론트엔드 애플리케이션 개발 및 배포용
- 정적 웹 어플리케이션에 적합함
Amazon CloudWatch 복합 경보
- 여러 클라우드 와치 경보의 상태를 조합해 하나의 경보로 관리 가능
- 거짓 경보를 줄이는 데 이상적임, 두 조건이 모두 충족되는 경우에만 트리거됨.
Amazon CloudWatch Synthetics 카나리아
- Synthetics 카나리아는 어플리케이션의 UX 모니터링을 위한 서비스
- 애플리케이션 상태 확인에는 유용함
AWS Organizations SCP(Service Control Policies)
- 조직 전체 관리
- 모든 계정에 대해 중앙에서 정책을 적용할 수 있음.
- 조직 단위(OU) 별로 정책을 적용 가능함
- 특정 계정에만 적용할 수 있음.
- 확장 가능성
- 여러 계정을 포함하는 대규모 조직에서도 중앙 정책으로 만들수있음.
- IAM 보다 우선임
- IAM 정책이 허용해도 SCP 가 제한하면 해당 작업을 실행할 수 없다.