Solution Architect Associate
IAM (Identity and Access Management)
- IAM : IP대역 문제에서, 예를들어 10.100.100.0/24 라면 처음 4개와 마지막 IP는 AWS에서 사용하므로 사용할 수 없다.
- 0,1,2,3,255 는 AWS에서 예약해두었다.
- DB 플러그인을 통한 데이터베이스 인증(단기토큰)을 사용하여 DB 엑세스 보안을 만들기도 한다.
RAM (Resource Access Manager) : AWS 조직 내에서 AWS 리소스를 쉽고 안전하게 공유할 수 있는 서비스
- AWS Config : AWS 리소스의
구성
을 평가, 감사 할 수 있는 서비스.- AWS 리소스 구성을 지속적으로 모니터링 및 기록하고, 원하는 구성에 대해 기록된 구성을 자동으로 식별
Storage
- instance store
- 최대 I/O 성능
- ebs (elastic block storage) : ec2 에 연결하여 사용하는 인스턴스 독립적인 block storage
- AMI가 설치되는 EBS 루트 볼륨이 생성됨
단일 가용영역(AZ)
에 있어야 연결 가능- snap-shot 기능을 통해 ebs 볼륨 백업 가능
- 수명주기관리자 정책을 통해 스냅샷 생성 일정을 자동화 가능
- KMS (AWS Key Management Service) 를 통해 EBS 볼륨 암호화 가능
- 여러 EC2에 동시 연결(Multi-Attach) 가능 (단,프로비저닝된 IOPS SSD만 가능)
- 인스턴스 수명과 독립적이며 서비스 중단 없이 볼륨 유형, 크기, IOPS 용량을 수정할 수 있다.
- efs (elastic file system) : 리눅스 환경의 ec2 인스턴스에서 연결하기 위한 NFS
- NFS 프로토콜을 지원하며
여러 가용영역
에 있는 수십~수백대의 EC2 연결 가능
- NFS 프로토콜을 지원하며
- S3 (Amazon Simple Storage Service)
- 내구성 99.999999999%
- 멀티파트업로드 : 대용량의 파일을 분할하여 병렬로 S3에 업로드. 완료 전까지 계속 남아있으므로 수명주기정책으로 관리 필요함
- Amazone S3 Transfer Acceleration 을 통해 장거리 파일을 빠르고 쉽게 전송가능 (Gloal Accelerator의 경우 TCP,UDP 트래픽을 빠르게 전송함)
- S3 Storage Class
- S3 Standard
- S3 Intelligent - Tiering
- S3 Standard - IA
- S3 One Zone - IA
- Glacier Instant Retrieval
- S3 Glacier / Glacier Flexible Retrieval : 신속검색을 통해 15분 이내로 데이터 접근이 가능함
- S3 Glacier Deep Archive
- Storage Gateway :
데이터 복제 후 통합
솔루션!- on-premise <-> aws cloud storage 간 연결. local cache 기능 통해 aws storage와 짧은 지연시간 엑세스를 유지 (실시간 전송 및 저장 가능)
- S3 File Gateway : NFS, SMB protocol 을 이용해서 S3에서 객체를 저장하고 검색(NFS!)
- FSx File Gateway : SMB protocol 을 이용해서 Windows File Server 내의 파일을 저장하고 검색 < Luster는 고성능
- Volume Gateway : ISCSI 연결을 이용해 볼륨을 EBS 스냅샷으로 저장 및 백업 가능 -> on-premise block storage 대체 가능함
- Tape Gateway : S3 Glacier 또는 Deep Archive 로 백업하여 저장비용 최소화
- Hardware Appliance : on-premise 에 서버 등 인프라가 부족한 데이터 센터의 경우, Storage Gateway Software 가 미리 설치된 기기를 구해하여 운용가능
- Cached Volume : 데이터를 S3에 저장하고, on-premise 네크워크에서 로컬로 자주 엑세스하는 데이터 하위 세트 사본을 보유
- AWS DataSync :
마이그레이션
솔루션!- on-premise <-> aws cloud storage 간 데이터 전송 및 복제(데이터 마이그레이션)를 자동화.
- NFS, SMB protocol 지원하며, on-premise 데이터를 s3, efs, fsx 등으로 마이그레이션 하거나 S3 Glacier로 아카이빙
- Snow Family
- snowball 사용 시, S3 Glacier 볼트를 대상으로 바로 선택 불가하며, S3 수명주기 정책을 생성하여 S3 Glacier로 전환해야 한다.
DataBase
- RDS (Relational Database Service) : 여러 RDBMS의 엔진을 AWS에서 제공함, 백업 S3에 저장
- DB 다운타임 없이 스토리지 용량 만큼 자동으로 확장 가능 (Storage Auto Scaling)
- FailOver 동작하는 경우 : 기본스토리지오류, 가용성 문제
- Too many Connection 시 RDS Proxy 사용
- 3가지 스토리지 유형 -> 범용(일반), 프로비저닝 IOPS(빠른 I/O), 마그네틱(가장 낮은 엑세스 빈도)
- RDS Replica의 경우, 읽기성능향상에 도움
- 자동백업 (Automated backup)
- 5분마다 백업하므로 5분전까지 복구가능 / 35일 보관가능
- 스냅샷 (DB Snapshots) / 보존기간 없음
- 복구하면 새로운 엔드포인트 가지는 신규 DB인스턴스 생성됨
- SSL,TLS 사용함, KMS (AWS Key Management Service) 통해 모든 DB엔진에 대한 암호화 가능
- RDS Audit Logs 통해 보안 감사에 활용가능
- 향상된 모니터링 지표는 OS프로세스, RDS자식프로세스
- ElastiCache : DB응답성능 개선을 위한 인메모리 데이터스토어 (1ms 미만의 응답시간)
- Memcached -> 멀티쓰레드 지원
- Redis -> 싱글쓰레드만 지원, 스냅샷 백업, 복제, 고가용성 가능
- DynamoDB : key-value 기반 NoSQL DB서비스 이며, 서버리스. 짧은 지연시간, 수백만개 요청에 빠른 응답
- 용량에 맞게 자동으로 Auto-Scaling 가능
- DAX (DynamoDB Accelerator) 를 통해 인메모리 캐싱 가능 : 밀리초 단위로 줄어듬
- TTL 설정해서 일정 시간 지나면 삭제가능
- DynamoDB Streams : 변경 항목에 대해 캡쳐 가능하고, Kinesis DataStream으로 보낼 수 있음
- 1) 트래픽 발생 시 : 예측 가능한 경우에는 Auto-Scaling 을 사용
- 2) 트래픽 발생 시 : 예측 불가능한 경우에는 On-Demand 를 사용
- Amazon Athena : 표준 SQL 을 사용해 Amazon S3에 저장된 데이터를 분석할 수 있는 쿼리 서비스. 데이터 로드 없이 S3 원본에 저장된 데이터에 대해 SQL 쿼리 수행
- JSON -> Apache Parque로 변환 시 월등한 속도를 보임
- Amazone Aurora : RDS 호환형 관계형 데이터베이스
- 1초 RPO(복구시점목표), 1분 RTO(복구시간목표)
- RDS에서 제공하는 읽기 전용 복제본, KMS 암호화, 스냅샷 백업, Auto-Scaling 등 제공
- AWS 에서 만든 서비스로, 다른 RDS 보다 저렴한 비용에 성능이 더 뛰어남
- 클러스터 기반 구성이며 따라서 연결을 추상화하기 위한 내장 리더 엔드포인트를 사용함
- Aurora Replicas 의 경우, 마스터 DB 장에 발생 시 최대 30초 이내에 복제본 중 하나가 기본 인스턴스로 Failover 가능
- Amazone Aurora Serverless : 에측할 수 없는 워크로드에 자동 스케일링하는 솔루션
Amazone QLDB (Quantum Ledger DataBase) : 암호적으로 검증 가능한 트랜젝션 로그를 제공하는 완전관리형 레더 데이터베이스
- Amazone RedShift : 빅데이터 분석용. RedShift Spectrum의 경우, Amazone S3의 구조화되지 않은 데이터에 대해 SQL쿼리를 직접 실행할 수 있다.
Network
- Route53 : AWS에서 제공하는 DNS서비스이며 라우팅 정책 생성, VPC 생성 등 가능
- 단순라우팅, 가중치기반, 지리적위치, 지연시간 등
- 레코드 유형
- A : 도메인 to IPv4
- AAAA : 도메인 to IPv6
- CNAME : 도메인 to 도메인
- ALIAS : 도메인 to AWS리소스
- 기타 : MX(메일) NS(DNS식별) SOA(도메인정보및권한)
- lambda + api gateway 주로 사용
Application - 통합
- SQS (Simple Queue Service) : poll 방식으로 메세지를 전송
- 일정 횟수 이상 시도 후 처리되지 못한 메세지는 DLQ로 이동하여 보관한다
- 중복이 발생할 수 있다. 이런 경우 Amazone Simple Workflow 사용 or SQS FIFO Queue 사용
- API GateWay : 개발자가 API를 생성, 게시, 모니터링, 보안 유지를 할 수 있게 해주는 서비스
- RESTful API, WebSocket API를 지원
- Kinesis : 실시간 데이터를 손쉽게 수집, 처리 분석하는 서비스
- Kinesis Data Streams : 데이터 스트림을 다른 AWS 서비스로 전송
- 실시간 (Realtime)이며 추가된 시점부터 최대 24시간동안 접근할 수 있고, 한도는 7일까지이다.
- 최대 1년 보관의 데이터 스토리지가 있음
- 중복되지 않음
- Kinesis Data Firehose : 데이터 스트림을 AWS 데이터 스토어 로 ETL
- 준실시간 (Near Realtime), DynamoDB로는 못보냄
- 데이터 스토리지 없음
- Kinesis Data Analytics : SQL, Apache Flink로 데이터 스트림 분석
- Kinesis Video Strams : 비디오 스트림을 수집, 저장 및 처리
- Kinesis Data Streams : 데이터 스트림을 다른 AWS 서비스로 전송
ELB (Elastic Load Balancer)
- NLB (Network Loab Balancer) : TCP,UDP,TLS 요청을 로드 밸런싱해야 하는 경우 사용
Static IP
는 NLB 에서만 할당 가능하다. (예를들어, 고정 IP를 허용하는 방화벽 IP 해제의 경우, NLB를 사용해야 한다.)
- ALB (Application Load Balancer) : Http, Https, gRPC등 요청을 로드 밸런싱 해야 하는 경우 사용
- 리스너 규칙, 경로 기반으로 라우팅 설정이 가능함
- 도메인이 SSL 트래픽을 제공하도록 허용하는 것은 SNI(서버 이름 표시)를 사용해서 클라이언트에 대한 최적의 TLS 인증서를 자동으로 선택하게 한다.
- Gateway LB : 경로기반 라우팅을 지원하지 않음
CloudFront
- CDN (Contents Delivery Network)
- edge location의 contents caching을 통해 콘텐츠를 사용자에게 더 빨리 배포하도록 지원함
- origin -> cloudfront 간의 전송비용은 부과되지 않음
- OAI (Origin Access Identiy) 를 통해 S3 Bucket의 엑세스를 CloudFront를 통해서만 할 수 있게 강제함!
- Http 프로토콜 처리에 적합함 (<-> tcp의 경우 global accelator)
- Origin Group : CloudFront 에 대한 고가용성
- origin 장애조치를 사용해 CloudFront를 설정 -> 기존의 origin을 사용할 수 없게되면 자동으로 보조 origin으로 전환해줌
보안 및 자격증명
- AWS Cognito
- application에 대한 로그인 및 인증을 제공 (계정과 통합 가능)
- AWS Secret Manager : 데이터베이스 자격증명, 암호 등 중앙에서 제어 가능
- 코드의 하드코딩된 내용을 프로그래밍(API) 방식으로 가져올 수 있음
- GuardDuty
- AWS 계정 및 워크로드에서 악의적 활동을 모니터링, 위협 참지
- Macie
- 머신러닝을 통해 AWS에서 민감 데이터를 보호
- Inspector
- 컨테이너, EC2에서 SW 취약성 검증
- WAF (Web Application Firewall)
- Http 에서 동작하며, ALB, API Gateway, CloudFront 에 적용가능.
- WAF - ACL (Access Control List) 를 통해 악성 IP, 국가 차단, SQL injection 방어, DDos 방어 등이 가능함 < 더 안전한건 AWS sheild
- CloudTrail : AWS 계정이 수행하는 작업에 대해 로그를 기록함
- 관리 콘솔 및 API 호출 기록
- 로그는 CloudWatch logs 또는 s3 버킷에 저장 가능
- KMS 사용해서 암호화 가능 -> AWS Config 규칙을 통해 리소스 구성이 규정준스를 하고 있는지 규칙 생성 가능
- CloudTrail Insight를 사용해서 비정상적인 활동을 감지 가능
- S3로 올긴 이후에도 CloudTrail 로그파일에 대한 CRUD 확인 가능하므로 AWS 계정의 거버넌스, 규정, 감사 등에 이용한다.
- AWS STS(Security Token Service) : 임시 토큰 서비스(단기 자격증명)
- LDAP(Lightweight Directory Access Protocol) 디렉토리 통합시, ID 스토어가 SAML과 호환되지 않은 경우 등 사용
관리 및 거버넌스
- CloudWatch : AWS Cloud 리소스와 AWS에서 실행되는 application 모니터링 서비스. 지표를 수집, 추적, 사용율 확인가능
- EC2 인스턴스에 대한 중지, 종료, 재부팅 등의 알람을 생성해 동작하게 할 수 있다.
- CloudWatch Agent를 통해 CloudWatch Logs insight로 로그 데이터를 분석한다.
- 기본적으로는 메모리 사용량을 모니터링하지 않으므로 EC2 인스턴스에 CloudWatch agent를 설치해야 한다.
Computing - Container
- ECS : 도커
- 서비스의 평균 메모리 사용률이 너무 높을 때 클러스터 확장 가능
- 클러스터의 CPU 사용률이 너무 높을 떄 클러스터 확장 가능
EKS
- AWS Fargate : 서버리스 컨테이너 서비스
- 서버 프로비저닝, 패치 적용, 클러스터 용량 관리 & 인프라 관리를 AWS에서 자동으로 수행
- ECS 및 EKS 와 연동
- Amazon ECS가 컴퓨팅에 Fargate를 사용하면 애플리케이션이 유휴 상태일 때 비용이 발생하지 않음.
ETC
- AWS Glue : 클릭스트림 ETL 서비스
- Amazone Workspaces : 가상 테스크탑
- AWS X-Ray : Amazon API GW 분석 모니터링
- AWS CloudFormation 종속성 확인 : CloudFormation 템플릿의 CreationPolicy
- OpenID Connect : WebId Fed
- HPC (고성능컴퓨팅) : EC2에 EFA (Elastic Fabric Adapter) 연결
- EC2 휴지기간은 300초
- AWS Step Functions : 서버리스 워크플로우
- ACL : Local -> EC2 인스턴스로 SSH 연결을 하려면?
- Security Group에서 인바운드 규칙 허용 (stateful 하므로)
- NACL 에서 in,out 트래픽 허용 (stateless 하므로)
- RDP, SSH 연결을 하지 않고도 RUN(명령실행)으로 EC2 구성 가능
- AutoScaling 축소정책
- 가장 많은 가용영역 인스턴스
- 가장 오래된 구성
- 다음 청구시간에 가장 가까운
- AutoScaling Group에 EC2 추가하려면?
- 인스턴스를 시작하는 AMI가 여전히 유요한가?
- AutoScaling Group에서 정의된 가용영역 중 하나에서 시작되었는가?
- EC2 중지할 필요는 없다.
- Lamda@Edge는 CloudFront 기능이며, 지리적으로 더 가까운 코드를 실행하게함
- 인도북부 등 지역전체는 지리근접라우팅
- Site To Site VPN 구성요소는?
- 고객 게이트웨이, 가상 프라이빗 게이트웨이
- 메타데이터 검색하는 Curl > localhost는 사용불가함. 169.254.169.254 가 맞음.
- DR 파일럿 라이트 전략은 미리 리소스를 세팅해 중시해두고, 상황 발생시 가동한다.
- Amazon ECS가 컴퓨팅에 Fargate를 사용하면 애플리케이션이 유휴 상태일 때 비용이 발생하지 않음.
- Active Directory를 사용중이라면, AWS Directory Service Ad Connector를 사용하는것이 좋다.
- S3 업로드 문제없는지 여부는 HTTP200 결과코드 및 MD5 체크섬으로 확인한다.
- 서브넷이 인터넷과 붙는데는 NAT gateway or NAT instance가 필요
- cognito app인증
- 다중 AZ RDS 실패하면 기본 인스턴스 -> 대기 인스턴스로 CNAME 변경됨
- storage gateway - Cached Volume : 데이터를 S3에 저장하고, on-premise 네크워크에서 로컬로 자주 엑세스하는 데이터 하위 세트 사본을 보유
- Anycast 고정IP면 CloudFront 아니고 Global Accelerator