https://www.youtube.com/watch?v=zBwikdaBqGA
(24.10.07)
Domain 1. Dedsign Secure Architectures (30%)
Domain 2. Design Resilient Architectures (26%)
Domain 3. Design High-Performing Architectures (245)
Domain 4. Degisn Cost-Optimized Architectures (20%)
위의 토픽을 기반으로 문제에 해당하지 않는 선지를 제거, 데이터를 기반으로 대용량과 저용량판단 후 선지를 제거
가상화로 모든 CPU, 메모리, 저장소를 나누어 사용하여 클라우드 최적화
Infrastructure(DB) | Platform(lambda) | Software as a Service(Gmail)
AWS, Azure 등의 여러 클라우드를 사용. Multi-Cloud은 독립적으로 작동, Inter-Cloud는 두 클라우드를 통합
AWS Shared Reponsibility Model: 하드웨어의 책임을 AWS가 짐으로써 사용자는 관리해야할 책임이 줄어듬
Region & Availability Zone(AZ): Region에 여러 AZ를 두며 이상 시 다른 AZ로 전환
Pay-as-you-go Pricing: Cost Efficiency, Scalable and Reponsive, Focus on Innovation
Design for Failure: 여러 AZ를 두어 실패에 대비
AWS Well-Architected Framework: 가이드라인
(24.10.09)
AWS EC2(Elastic Compute Cloud)는 IaaS이다. AWS Host OS위에서 사용자는 VM으로 사용. AMI(Amazon Machine Image)와 인스턴스 타입(M5.large), 배포 네트워크, 저장소, 보안그룹으로 생성.
Pricing Plan: On demand(수요에따라), Reserved(인스턴스 지정, 1년이상 예약), Saving plan(1~3년 선지불), Spot(종종 중단될수도 있음), Dedicated(보안중시 고립 region fee가 추가발생)
Auto Scaling: Scale out은 서버 추가, Scale in은 서버 제거를 의미.
AWS Batch: 필요한 시점에 자원을 동적으로 제공하여 유한 컴퓨팅 가능. 관리 부담을 줄여줌
AWS Elastic Beanstalk: 모니터링 자동화 Paas. 인프라 담당인력이 부족한 경우 사용
AWS Outposts: 온프레미스에서 AWS를 private하여 제공. 데이터 센터내에서 보안을 위해 사용
WMware cloud: 온프레미스를 AWS로 migration할 경우 사용. 다른 구조로 변경도 가능ㅇ
AWS Wavelength: 5G 엣지 컴퓨팅 인프라로 게임, AR, IOT 등의 초저지연 어플에 사용
Container는 가상서버이미지에 OS가 들어간다는 단점과 달리 필요한 의존성 패키지만 포함하기에 가벼워 빠르다. 다만 컨테이너 종료 시 데이터가 사라지기에 저장작업이 필요.
AWS ECS & EKS & ECR: 도커 컨테이너 오케스트레이션 서비스(MSA 각 기능을 컨테이너로 분리되는 것을 잘 연결, AWS에서 관리), 쿠버네티스에서 관리, 도커 컨테이너 저장소()
Serverless는 AWS에서 서버를 관리하기에 사용자는 로직에만 집중 ex. Lambda_이벤트에 의해 자동실행되는 서비스
AWS Fargate를 노드(서버)로 활용하면 ECS와 EKS사용에 있어 간편하지만 비용은 높다.
AWS Appsync는 클라이언트와 서버간의 데이터 전송을 간단. GraphQL API를 이용하여 클라는 필요한 모든 데이터를 한번에 요청한다.
예제 1
정답: B
풀이: Production으론 24시간 돌아가야하는 인스턴스로 Reserved와 Spot을 사용해도 된다. Development로는 사용하지 않으면 끌 수 있어야 하기에 on-demand를 사용해도 된다.
예제 2
정답: D
풀이: lambda는 serverless이고 이를 Aurora에 적재하고 싶음. configuration effort가 최소화되어야하기에 serverless를 유지해야한다. EC2는 무겁고, Postgre와 Dynamo는 다르고, 람다 quota(용량)을 늘려야하기에 순차적으로 처리가능한 SQS를 사용
예제 3
정답: A, B, E (B 설명에 오류가 있음)
풀이: Outposts는 on premise와 연계하는 기능이기에 on premise의 하드웨어 기능을 담당해야하기에 A, 하이퍼 바이저와 저장은 Outpost가 아닌 AWS에서 하기에 패스, 물리적인 보안과 접근 권한은 고객사에서 하기에 패스, 전원 공급과 서버와 네트워크 장비는 AWS에서 하기에 패스, 물리 적인 유지와 outpost 컨포넌트는 outpost에서 하기에 E, 추가 용량과 ECS 클러스터는 AWS에서 하기에 패스.
ㄴ 물리적인건 고객이 한다.
예제 4
정답: B
풀이: 람다는 서버리스기에 OS가 없어 패스, Elastic Cache는 DB기에 패스, 복잡한 자바 어플리케이션의 오버헤드를 줄이려면 최대한 많은 부분을 위임해야하기에 IaaS인 EC2보다 PaaS인 Elastic Beanstalk이 적합하다.
(24.10.10)
스토리지 유형: 파일 스토리지대규모에 비효율, 블록 스토리지고성능에 적합 & 관리가 복잡, 객체 스토리지_확장성 & 지연 단점
Amazon S3는 Object Storage이나 파일 스토리지처럼 사용. key, object, bucket으로 구성. Storage Class는 Standard잦은 접근, Standard-IA낮은 접근, One Zone-IA낮은 접근과 1AZ에만 저장, Intelligent-Tiering자동으로 변환, Glacier Instant Retrieval즉각 조회, Glacier Flexible Retrieval약간 지연, Glacier Deep Archive_아카이브 타임 5시간
S3 lifecycle: 수명을 설정하여 주기별로 storage class를 바꾸는건데, 저비용->고비용은 되지만 고비용->저비용은 불가능
S3 Versioning: 객체 변경 내용을 bucket단위로 버전관리하여 백업 가능
S3 Replication: 같은 리전 복제는 SRR, 다른 리전 복제는 CRR.
S3 Access Control: IAM정책_사용자나 그룹에 권한, Bucket정책: JSON문서, Block Public Access: 보안을 위해 특정은 private, Pre-Signed URLs: 파일공유
S3 Data Encryption: 서버측_SSE-S3 & SSE-KMS, 클라이언트측_SSE-C. 혹은 클라이언트에서 키관리하며 모두 암호화해서 보냄
S3 Hosting Static Website: S3 버킷에 웹 어플리케이션이 있으면 가능
Amazon EBS: 블록 스토리지 서비스(HDD, SSD)로 EC2가 중지되도 데이터 저장. 여러개가 EC2에 연결 가능하며 snapshot과 백업을 제공
Amazon EFS: 파일 스토리지로 NFSv4 프로토콜 사용
Amazon FSx: 파일 스토리지로 SMB 프로토콜 사용, Lustre file system으로 빠른 속도
AWS Backup: 지정한 규칙기반 모든 스토리지나 DB를 백업. AWS Organizations로 중앙제어가능
AWS Storage Gateway: 온프레미스에서 클라우드에 접근하게하는거로 캐시와 최적화
예제1
정답: B
풀이: 파일 접근성이 바뀌므로 S3 Lifecycle이고 접근안하니까 저렴한게 Glacier Deep Archive
예제2
정답: C
풀이: 위 상황은 EC2와 EBS에 복제된 어플리케이션을 한쪽에서 수정했을 때 다른쪽이 안바뀌는 문제이다. 복제된 EC2가 하나의 EBS를 사용하고 있는지에 대한 문제. 이를 위해 EFS(파일공유)를 사용해야한다.
예제3
정답: C
풀이: 윈도우 공유시스템은 FSx for window이다. 또한 Multi-AZ는 고가용성이 맞다
Amazon RDS: RDB로 EC2를 사용. MySQL, PostgreSQL, MSSQL, Oracle, Aurora를 포함. 고가용성을 위해 Multi AZs 배포가능. Fail Over는 primary DB에 에러나면 자동으로 Standby에 연결하는 기술. Multi Azs Cluster 배포는 여러 Standby를 제공. 최대 5개의 Read Replica는 읽고 쓰는건 분리.
Amazon RDS-Backup: 7일마다 백업. 비용절감위해 S3에 저장하며, 긴 백업은 AWS Backup을 권장
Amazon Aurora: RDB로 MySQL, PostgreSQL을 바로 사용가능. DB Cluster사용. 3AZ에 6개 백업본 가짐. 여러 Primary를 가질 수 있음. 15개의 Read Replica 가능
Amazon Aurora-Backup: 자동복구, 5분전까지 바로 복구가능
Amazon Aurora-Serverless: 인스턴스 사이즈 미정일 때
Redshift: DW로 데이터 분석에 사용 S3와 RDS에 저장된 데이터를 사용.
예제 1
정답: C
풀이: 데이터 과학자가 읽을 수 있은 RDS(PostgreSQL) 권한을 주기위한 고가용성 비용을 골라야한다. Multi AZ로 가야 고가용성, 읽기를 위한거니 cluster이다. 인스턴스는 standy 에서 읽기 쓰기를 지원하지 않기에.
예제 2
정답: C
풀이: MySQL은 RDS나 Aurora(고가용성)가 가능
예제3
정답: B
풀이: 관계는 Neptune. 오버헤드를 줄이기 위해 Neptune만 사용하자.
예제4
정답: D
풀이: 데이터를 분석하고싶은거니 DW인 Redshift이고, Kinesis는 실시간 데이터에 사용된다(AI)
CIDR은 ip/16처럼 표기하여 네트워크 접두사의 길이로 .기준 앞 2개가 네트워크고 그 뒤가 호스트라는 표기법
로드밸런서는 메인 서버 장애 시 다른 서버로 옮겨주는 기능도 수행가능
Region>VPC>AZ>Subnet(priv, publi)>Instance | NAT gateway
Region & Availability Zone: 33 리전, 위치가 다른 여러 AZ
Virtual Private Cloud는 리전에서 생성된 가상의 개인 네트워크로 최대 5개의 VPCs가 존재
Subnet은 AZ에서 생성된 분리된 네트워크로 각 서브넷에 5개의 IP가 예약되어 사용됨.
ㄴ...0: Network Address / ...1: Reserved for the router / ...2: Reserved for DNS / ...3: Reserved for future use / ...255: Reserved as the broadcast address
Internet Gateway는 VPC에 연결되어 public subnet은 IGW(Internet gateway)에 연결되어 인터넷 사용가능
NAT Gateway는 내부에서 인터넷 연결이 필요할 때 간접적으로 통신. 인스턴스의 private ip는 공개되지 않기에 안전히 외부 통신가능
Security Group: 인바운드때의 정보를 기록했다가 아웃바운드에 사용하는 stateful한 방화벽. 허용만 가능
NACL은 Network Access ControL로 네트워크레벨 stateful 방화벽으로 세밀한 보안설정 가능. 허용과 거부가 모두 가능. 규칙의 순서가 매우 중요
EIP(Elastic IP)는 고정 public ip, ENI(Elastic Network Interface)는 가상네트워크 인터페이스 카드로 하나의 EC2에 여러개 연결 가능하며 Endpoint로 사용 가능. 여러 IP관리
AWS WAF(Web Application Firewall): SQL 인젝션과 XSS 방어.
AWS Shield: 네트워크 모니터링으로 DDos를 방어
ELB: 고가용성 ALB(앱)는 HTTP와 HTTPS, NLB(네트워크)는 TCP, UDP, TLS를 관리
VPC Peering: VPC간 1:1 통신. 새로운 통신시 연결되어있는 주소랑 CIDR이 겹치지 않도록 해야함. 많은 VPC에는 부적합함.
AWS Direct Connect: AWS와 온프레미스를 연결(전용선_DX Location). VIF(Virtual InterFace)는 AWS 리소스들간의 통신.
AWS Transit Gateway: 온프에미스나 VPCs에서 AWS 리소스와 연결. 많은 양의 연결이 가능
VPC Endpoint: Gateway는 S3, DynamoDB가 Interface는 개인 IP를 가지는 virtual network interface(ENI)로 S3, CloudWatch, SNS, System Managers, Kinesis, KMS, ELB
Gateway Endpoint: 다른 VPC의 S3에 전달할 때 전송자의 VPC에서 Gateway Endpoint까지 접근. 이는 다른 VPC에 연결시켜줌.
Interface Endpoint: private subnet안에 ENI를 사용해서 AWS private Link를 이용해 다른 VPC의 Load Balancer에 접근
VPN: 온프레미스와 AWS를 연결. 속도는 보장x 저비용. Site-to-Site는 지속적 연결, Client는 임시연결
Route53: Simple(하나의 ip), Weighted(가중치에 따라 트래픽 분산), Geolocation(유저 근처의 location을 사용), Latency-Based(짧은 응답 우선가장 빠른), Failover(Primary와 Standby), Multi-Value Answer(ELB처럼 작동랜덤하게 여러 ip 반환)
CloudFront: 정적 리소스 빠른 전달. AWS Sheild와 WAF 제공하고 지역적 영향을 좀 받음. Origin서버와 달리 전세계로 분리된 CloudFront의 캐시를 이용해 edge location으로 빠른 응답 가능. 서버비용 절감
AWS Global Accelerator: AWS의 네트워크를 사용해 빠르게 원본 서버에 접근하며 고정 IP사용
예제1
정답: D
풀이: VPC 피어링은 겹치면 안됨. B는 겹치니 안됨. 그리고 A와 C는 32라는 뜻은 고정ip를 의미하는데 VPC는 public이나 private이 있어야 하기에 소거
예제 2
정답: C
풀이: RDS와 EC2사이 간의 방화벽이 필요하기에 Security group이 필요하다. 그런데 보안 그룹은 ip 차단이 아닌 허용만 가능하다(white list) 고로 C
예제 3
정답: B
풀이: 온프레미스 연결에는 Directo connect나 VPN인데 VPN은 느림