섹션
1. AWS 서비스를 사용한 개발
2. 보안
3. 배포
4. 문제해결 및 최적화
AWS 서비스를 사용한 개발
1. API 관리 및 클라이언트-서버 통신
API Gateway(HTTP API, REST API, WebSocket API)
- 백엔드와 클라이언트 중개자 역할
- API 호출을 수신하고, 백엔드 서비스를 라우팅하는 중개자 역할
웹훅 (역방향API)
- 웹 페이지 or 웹훅에서 발생하는 특정 행동(이벤트)들을 커스텀 callback으로 변환해 주는 방법
Event Brige
- 리소스 상태 변화나 스케줄링(특정 시간)에 따라 작업을 실행할 수 있는 서비스
Event Bus
- 다양한 Event Sour에 생긴 이벤트를 수집하고 Target에게 전달
2. 백엔드 처리 및 오케스트레이션
Lambda Layer
- Lamdba 재사용 - 추가 코드 또는 데이터를 포함하는 .zip 파일 아카이브이다. 계층에는 일반적으로 라이브러리 종속 항목, 사용자 지정 런타임 등의 구성 파일을 포함할 수 있다.
Lambda@Edge
- Amazon CloudFront의 기능 중 하나로 애플리케이션 사용자에서 더 가까운 위치에서 코드를 실행하여 성능을 개선하고 지연시간 단축
AWS Lambda invoke
- Lambda 함수를 호출하는 것을 의미(SQS에 의존하지 않고도 SQS에서 발생한느 이벤트와 동일한 JSON을 전달하여 함수 실행 가능
Step Function(오케스트레이션 서비스)
- 워크 플로우를 정의하고 실행 및 관리할 수 있는 관리형 서비스
Batch (배치작업을 자동으로 계획, 예약 및 실행)
- GetItem: 하나의 항목
- BatchGetItem: 여러 항목
3. 데이터 처리 및 저장
SDK
- 개발 도구
Athena 쿼리 서비스
- 표준 SQL을 사용해 S3에 저장된 데이터 분석
DynamoDB Stream
- 테이블 변경사항(INSERT, UPDATE, DELETE) 실시간 기록
Kinesis
- Kinesis는 실시간으로 데이터 스트림을 수집, 처리, 분석해주는 서비스
Kinesis Data Firehose
- 데이터를 배치 처리하여 S3, RedShift 등에 저장
- 실시간 스트리밍 데이터를 안정적으로 받은 후 필요한 경우 변환하여 다른 AWS의 서비스로 전달하는 서비스
클러스터
- 비슷한 특성을 가진 개체들을 그룹으로 묶음
Cognito - 사용자풀(User Pool),자격증명 풀(Identity Pool)
- 사용자풀(User Pool): 사용자 인증(자격 증명 확인), 회원가입과 로그인/ 사용자 가입, 로그인, 비밀번호 재설정
- 자격증명풀(Identity Pool): 허가 인증된 사용자나 익명 사용자가 AWS 리소스에 엑세스할 권한 부여
Glue
- ETL(추출, 변환 및 로드)
CodeTrail
- 사용자 활동을 자동으로 수집
- 사용자 로그인, 리소스 생성, 변경, 삭제 등 사용자 활동
- 감사 및 보안 목적으로만 사용자 API 활동을 캡처, 저장, 엑세스 및 분석
개발 및 배포 파이프라인
CodeCommit
- aws 소스 코드 저장소
CodeBuild
- Build 서비스
CodeArtifact
- 개발팀이 애플리케이션에 필요한 패키지(예: Maven, npm, Python, NuGet)를 저장, 관리, 공유
CodePipline
- 코드가 변경될 때마다 릴리스 프로세스의 빌드, 테스트 및 배포 단계를 자동화
CodeGure
- 개발자가 작성한 코드를 자동으로 기뷰, 코드의 품질 및 성능 문제를 찾아 추천 사항을 제공
ECS (Elastic Container Service)
- 컨테이너 생성과 종료, 자동 배치 및 복제, 로드 밸런싱, 클러스터링, 장애복구, 스케줄링 역할
모니터링 및 성능 추적
X-ray 애플리케이션 추적
- X-ray SDK: 애플리케이션 안에서 세그먼트 데이터를 작성하고 X-ray Daemon에 전송
- X-ray Daemon: X-ray API에 정기적으로 전송하는 역할
- X-ray API: 수집한 세그먼트 데이터로 추적
PutTraceSegment
- 세그먼트 문서를 X-ray로 보내는 기능
PutTelemetryRecord
- 세그먼트 받는 횟수, 거절횟수, 백엔드와 연결 에러
GetSamplingRules
- 샘플링 규칙을 얻어서 규칙에 맞게 세그먼트 만들기 위해 호출
GetSamplingTargets, GetSamplingStatisticSUmmaries
- 샘플링 규칙
보안 및 접근 제어
IAM 인스턴스 프로필
- EC2 인스턴스가 다양한 AWS 리소스에 엑세스하기 위해 사용하는 사용자 정보
보안
1. 보안 관련 서비스
IAM
- 사용자(User), 그룹(Groups), 역할(Roles), 정책(Policies)
ID(OAI- Origin Access Identity)
- CloudFront와 S3버킷에 대한 접근을 프라이빗하게 연결하는 기능
Secrets Manager
- 자격증명 및 교체, 비밀번호, API키, 엑세스 토큰 같은 중요 정보 저장 및 관리
KMS
- 데이터 암호화/복호화를 위한 키 생성/관리
AWS Certificate Manager(ACM)
- SSL/TLS 인증서 관리 서비스
SSL/TLS인증서는 us-east-1(버지니아 북부리전)에서 관리
Parameter Store (환경 변수)
- 암호, 데이터베이스 문자열, 라이선스 코드와 같은 데이터 파라미터 값 저장
2. 데이터 보호 및 암호화
CNAME 레코드
- 실제 또는 정식 도메인 이름에 별칭 이름을 매핑하는 DNS레코드 유형
SecureString (매개변수 암호, 라이선스 키)
- 민감한 데이터를 안전하게 저장하고 참조하기 위한 매개변수
X-Amz Signatiure
- 요청을 인증하기 위한 서명
클라이언트 측 암호화(Client-Side Encrypion with S3 Encrytion Client)
- 클라이언트 측에서 직접 암호화한 후 S3에 업로드하는 방식
3. S3 암호화 방식
SSE-S3(Server-Side Encryion with S3 Manager Keys)
- AWS S3가 자동으로 키를 생성하고 관리하는 서버 측 암호화 방식
SSE-KMS(Server-Side Encryion with S3 Manager Keys)
- AwS KMS(Key Management Service)를 활용하여 서버 측에서 암호화
DSSE-KMS(Dual-Layer Server-Side Encrytion with AWS KMS)
- AWS KMS를 활용한 이중계층 암호화 방식
4. 인증 및 인증 연동
SAML
- 인증 정보 제공자와 서비스 제공자간의 인증 및 데이터를 교환하기 위한 XML 기반의 개방형 표준 데이터 포맷
- SSO(Single Sign-On)를 지원
ID 페더레이션
- 사용자를 인증하고 리소스에 대한 엑세스 권한을 부여하는데 필요한 정보를 전달하기 위한 두 당사자 간의 신뢰 시스템
5. Lambda 역할 및 VPC 관련 보안
AWS LamdbaBasicExecutiveRole (기본기능)
- CloudWatch Logs에 대한 쓰기 권한을 획득
LambdaVPCAccessExecutionRole
- VPC 내외 리소스에 엑세스하는 동안 Lambda 함수를 실행할 수 있는 최소권한 (네트워크 인터페이스 생성, 설명,삭제) 및 CloudWathch Log에 대한 쓰기 권한을 제공
VPC(Virtual Private Cloud)
- 가상 사설 클라우드
VPN(Virtual Private Network)
- 가설 사설명
6. 보안 관련 네트워크 설정
VPC 인터페이스
- 외부 접근
인스턴스 메타 데이터 서비스(IMDS)
- 인스턴스 관련 데이터
X-Forwarded-For(XFF) 헤더
- HTTP 요청 헤더, 클라이언트 IP주소 식별
메타데이터
- 데이터의 데이터, 다른 데이터를 설명하는 데이터
7. 보안 솔루션
WAF(Web Application Firewall)
- WAF는 웹 애플리케이션을 보호하기 위해 악성 트래픽을 차단하는 보안 솔루션
Global Accelerator
- 사용자와 가장 가까운 위치 의 사용 가능한 정상 엔드포인트로 트래픽을 자동으로 재라우팅하여 엔드포인트 장애를 완화
TTL(Time to Live)
- 만료시간
배포
1. 배포 전략
Blue/Green
- Blue 구버전, Green 새 버전 기존의 버전인 Blue와 동일한 환경의 Green 구성하고 로드밸런서를 통해 모든 트래픽을 한번에 신버전 쪽으로 전황(시스템 자원 2배)
추가 배치 롤링
- 배포 중 전체 용량을 유지하려면 인스턴스를 서비스에서 제거하기 전에 인스턴스의 새로운 배치(batch)를 시작하도록 환경 구성
- 배치 단위로 새 버전을 배포하면서 추가로 인스턴스르 임시 생성해서 배포하는 방법
롤링
- 사용 중인 인스턴스 내에서 새 버전을 점진적으로 교체하는 것으로 무중단 배포의 가장 기본적인 방식
카나리아 배포
- 트래픽을 확 바꾸는 것이 아니라 단계적으로 전환
- 변경 사항을 천천히 릴리즈함으로써 프로덕션 환경에 새로운 소프트웨어 버전을 도입하는 위험을 줄이는 기술
변경 불가능한 배포
- 새로운 버전을 배포할때 새로운 EC2 인스턴스를 생성한 두 트래픽을 전환
2. 배포 관련 서비스
BeanStalk
- 개발자가 애플리케이션을 쉽게 배포하고 확장할 수 잇도록 해주는 PaaS 서비스
Amplify
- 풀스택 애플리케이션 개발 지원
3. 스토리지 및 트리거
S3 객체 스토리지
S3트리거
- S3에 파일이 업로드, 수정, 이동, 삭제되거나 특정 접두사, 접미사에 이벤트가 발생하였을때 Lambda함수를 실행시키는 비동기 트리거
S3 standard
- S3 스토리지 클래스(기본)
S3 Glacier Deep Archive - S3 스토리지 클래스, 장기간 데이터 보존
- 자주엑세스하지 않으면서 밀리초 단위의 검색이 필요한 장기 데이터에 대해 가장 저렴한 비용의 스토리지를 제공하는 아카이브 스토리지 클래스
EBS(Elastic Bolck Storage)
- 영구 블록 스토리지 볼륨
- EC2 인스턴스가 영구적으로 사용할 수 있는 블록 스토리지 볼륨을 제공하는 서비스
4. Lambda 관련 서비스
Lambda 계층
- 라이브러리와 기타 종속 요소를 패키징하여 배포 아카이브의 크기를 줄이고 코드를 더 빠르게 배포
프로저닝된 동시성
- Lamdba가 항상 일정한 수의 인스턴스를 미리 준비해 두는 기능
예약된 동시성
- Lambda 동시 실행(제한->한 번에 하나의 인스턴스 실행)
5. 로드밸런서
ALB (Application Load Balancer)
- L7단의 로드밸런스
NLB(Network Load Balancer)
- L4단의 로드밸런스
6. 기타 배포 관련 서비스
AWS CLI create-stack-set
- 스택을 생성하는 명령어
- 여례 계정과 리전에 대해 스택을 생성, 업데이터, 삭제
CloudFormation
- Amazon Web Services(AWS) 리소스를 자동으로 생성해 주는 서비스
- VPC, EC2, Lambda 등과 같은 리소스
Cloud Formation
- 리소스 자동으로 생성
AWS CloudFormation StackSets
- 여러 AWS 계정 및 리전에 걸쳐 동일한 클라우드 인프라를 배포하고 관리하기 위한 서비스
Image Builder
- 이미지 생성 및 관리 자동화 파이프라인 제공
AWS Fargate
- 서버나 클러스터를 관리할 필요 없이 컨테이너를 실행할 수 있게 해주는 서버리스 컴퓨팅 엔진입니다 Fargate는 단독으로 사용할 수 없으며, ECS나 EKS와 같은 컨테이너 오케스트레이션 서비스와 결합하여 사용됩니다.
문제해결 및 최적화
1. 캐시 및 데이터베이스 서비스
Memcached
- 분산 메모리 캐시 시스템 (인 메모리 캐시)
데이터 타입
Redsis: String, Set, Sorted Set, Hash, List 지원
Memcached: String
Elastic Cache
- 클라우드 캐싱 서비스
2. 모니터링 및 분석
CloudWatch Agent
- EC2 인스턴스 내부의 시스템 수준 지표를 수집할 수 있도록 해주는 도구
CloudWatch 에이전트
- 리소스 모니터링, 관찰 서비스인 클라우드 워치에 리소스에 나온 지표, 데이터를 수집
- AWS EC2 인스턴스 내부의 시스템 수준 지표를 수집할 수 있도록해주는 도구
CloudWatch 대시보드
- 애플리케이션을 모니터링하고 운영 데이터를 수집하여 통찰력을 제공하기 위해 만든 대시보드
Open Search
- 로그분석, 실시간 애플리케이션 모니터링, 클릭스트림 분석
- 오픈 소스 검색 및 분석 엔진
Guard Duty
- 악의적인 활동 및 이동 동작을 모니터링하여 AWS 게청, 워크로드 및 데이터를 보호하는 위협 탐지 서비스
Macie
- 민감한 개인정보 보호 서비스
3. 메시징 및 이벤트 처리
SNS(Simple Notification Service)
- 발생/구독(Pub/Sub)
- 게시자에서 구독자(생산자 및 소비자라고도 함)로 메세지를 전송하는 관리형 서비스
SQS(Simple Quque Service)
- 메시지 큐 패턴
- 고객이 대기 열을 사용
EventBrige Scheduler
- 호출 당 요금을 지불하는 태스트 및 이벤트 스케줄러로, 사용자가 정의한 파라미터를 기반으로 트리거
4. 보안 및 인증
STS(Security Token Service)
- 임시 보안 자격 증명을 위한 서비스
AssumeRole
- AWS에서 하나의 사용자 또는 서비스가 다른 역할(Role)을 임시로 수략하고, 그 역할에 설정된 권한을 임시로 사용할 수 있게하는 기능
5. 관리 및 자동화
Ops Work
- Chef 및 Puppet의 관리형 인스턴스 제공
AWS DataSync
- 온프레미스와 AWS 스토리지 서비스 사이에서 데이터 이동을 자동화 및 가속화하는 안전한 온라인 서비스
EFS(Elastic File System)
- 공유 파일 스토리지, 이미지 저장 및 서빙X
인스턴스 스토어
- 버터, 캐시, 스크랩치, 데이터, 기타 임시 콘텐츠와 같이 자주 변경되는 정보 임시 저장에 적합
- 휘발성 스토리지
보조 RDS 인스턴스
- RDS의 기본 인스턴스와 함께 사용되는 인스턴스
핫 스탠바이 시스템
- 두 대 이상의 컴퓨터를 갖추어 두고, 현재 사용 중인 컴퓨터에 고장이 발생하면 다른 대체 컴퓨터로 즉시 전환하여 중단 없이 일을 처맇나느 방식
6. 시스템 최적화 및 패치
학픽스
- 제품 사용 중에 발생하는 버그를 수정하거나 취약점을 보완, 성능을 향상시키기 위해 긴급히 배포되는 패치 프로그램
Syth
- 코드로 개발된 스택을 CloudFormation 템플릿으로 변환하는 기능
7. 서버리스 컴퓨팅 및 캐시
Elastic Catch
- 서버리스 캐싱 제공
Redis, 오픈소스를 사용하여 제공하는 IN-Memory DB
'자격증 > AWS DVA' 카테고리의 다른 글
AWS Certified Developer Associate 자격증 준비 - Route 53편 (0) | 2025.02.20 |
---|---|
AWS Certified Developer Associate 자격증 준비 - RDS, Aurora, & ElasticCache편 (0) | 2025.02.20 |
AWS Certified Developer Associate 자격증 준비 - ELB + ASG편 (0) | 2025.02.20 |
AWS Certified Developer Associate 자격증 준비 - EC2편 (0) | 2025.02.20 |
AWS Certified Developer Associate 자격증 준비 - IAM편 (0) | 2025.02.20 |