공부하는 스누피
[AWS] AWS Cloud Practitioner 강의 정리 본문
1. 클라우드 컴퓨팅 모델
- IaaS (Infra as a Service)
: 가상 or 분산 HW, 데이터 스토리지 제공
- PaaS (Platform as a Service)
: infra 관리를 대신해주고 사용자가 배포와 app 관리까지만 신경써도 되게끔 함
- SaaS (Software as a Service)
: End-User App을 의미. 이메일 프로그램이 대표적인 예.
2. 클라우드 컴퓨팅 배포 모델
- 클라우드 기반
: app의 모든 부분을 클라우드에서 실행
=> 기존 app -> 클라우드 마이그레이션 많이 함
- 온프레미스
: 가상화 및 리소스 관리 도구를 사용하여 리소스 배포
=> 프라이빗 클라우드 배포, 별도 IDC 인프라 사용
- 하이브리드
: 클라우드 기반 리소스를 온프레미스 인프라에 연결
3. Amazon Elastic Compute Cloud(EC2)
: 가상 서버를 사용한 컴퓨팅 환경 제공
a. 유형
- 범용 인스턴스
: 컴퓨팅, 메모리, 네트워킹 리소스를 균형 있게 제공함
=> 애플리케이션 서버
=> 엔터프라이즈 애플리케이션용 백엔드 서버
=> 중소 규모 데이터베이스
- 컴퓨팅 최적화 인스턴스
: 고성능 프로세서 활용.
=> 단일 그룹에서 많은 트랜잭션을 처리해야 하는 일괄 처리 워크로드에 사용
=> 게임 서버, 웹 서버
- 메모리 최적화 인스턴스
: 메모리에서 대규모 데이터 세트를 처리하는 빠른 성능 제공
=> app이 스토리지에서 메모리로 로드된 후 실행됨 (사전 로드 프로세스)
=> 고성능 데이터베이스, 빅데이터 실시간 처리
- 액셀러레이티드 컴퓨팅 인스턴스
: 하드웨어 액셀러레이터, 코프로세서 사용하여 CPU 대신 연산
=> 데이터 처리 가속화
=> 그래픽 app, 게임 스트리밍, 스트리밍 워크로드
- 스토리지 최적화 인스턴스
: 로컬 스토리지의 대규모 데이터 세트에 대한 액세스가 많이 일어나는 워크로드
=> 분산 파일 시스템, 데이터 웨어하우징, 고빈도 온라인 트랜잭션 처리 시스템(OLTP)
=> 지연 시간이 짧은 임의 IOPS를 제공
=> 요구되는 IOPS가 높을수록 적합
IOPS(초당 입출력 작업 수)
: 디바이스가 1초 내에 수행할 수 있는 입출력 작업의 수
4. Amazon EC2 요금
- 온디맨드
=> 불규칙한 단기 워크로드
- Amazon EC2 Saving Plans
=> 컴퓨팅 사용량 약정제
- 예약 인스턴스
=> 온디맨드 쓰는 약정
- 스팟 인스턴스
=> 잠깐 쓸 때. 경매 형식으로 인스턴스를 저렴하게 사용할 수 있다.
5. EC2 auto scaling
: auto scaling 그룹을 설정하고 수요에 따라 최소 용량만 돌릴 수도 있고, 수요가 늘어나면 최대 용량까지 확장시킬 수도 있음
- 동적 조정
- 예측 조정
6. Elastic Load Balancing
: 들어오는 애플리케이션 트래픽을 여러 리소스에 자동으로 분산하는 서비스
=> Auto Scaling 그룹으로 들어오는 모든 웹 트래픽의 단일 접점 역할
=> 수요가 적으면 최소 용량에만 트래픽을 분산시키고, 많아지면 예약된 나머지 그룹 리소스들에게도 분산시킨다.
7. 메시징 및 대기열
- 모놀리식 애플리케이션: 구성 요소가 밀결합된 애플리케이션
=> 단일 구성 요소에 장애가 발생했을 때 애플리케이션 가용성을 유지할 수 없음
- 마이크로서비스 접근 방식: 애플리케이션 구성 요소가 소결합됨
- Amazon Simple Notification Service(SNS)
: 게시/구독 서비스
=> 구독자(웹 서버, email, lambda)가 이벤트가 일어났을 때 데이터를 받을 수 있게 한다.
- Amazon Simple Queue Service(Amazon SQS)
: 메시지 대기열 서비스. 소프트웨어 구성 요소 간 메시지를 주고 받을 수 있다.
=> 메시지 받는 구성 요소가 당장 메시지를 받을 수 잇는 상황이 아니더라도 메시징 큐에 즉시 집어 넣을 수 있어 메시지를 보내는 쪽에서 대기할 필요가 없어진다.
8. 서버리스 컴퓨팅
- Serverless: 코드가 서버에서 실행되지만 이러한 서버를 프로비저닝하거나 관리할 필요가 없다는 뜻
=> 유연성이 높다
- AWS Lambda
: 코드를 실행하는 동안에만 요금 부과
=> 백엔드 서비스 코드 실행 필요 x
작동 과정
1) 코드를 업로드함
2) 이벤트 소스에서 트리거되도록 설정
3) 코드는 트리거될 때만 실행됨
4) 사용한 컴퓨팅 시간에 대한 요금만 지불
- 컨테이너
: 애플리케이션의 코드와 종속성을 하나의 객체로 패키징할 수 있음
=> 보안성, 안정성, 확장성 요구사항이 중요할 때 사용
- Amazon ECS(Elastic Container Service)
: 컨테이너식 애플리케이션을 실행하고 확장할 수 있는 컨테이너 관리 시스템
=> Docker 지원
- Amazon Elastic Kubernetes Service(EKS)
: 컨테이너식 애플리케이션을 대규모로 배포하고 관리하는 데 사용할 수 있는 Kubernetes를 실행하고 관리하는 서비스
- AWS Fargate
: 컨테이너용 서버리스 컴퓨팅 엔진
=> 서버 관리 필요 x
9. AWS 리전
- 고려해야 할 요소
=> 데이터 거버넌스, 요금, 리전 내에서 사용 가능한 서비스, 고객과의 근접성
- 리전: AWS 리소스가 있는 지리적 영역
- 엣지 로케이션: AWS 서비스가 서비스별 작업을 수행하는 데 사용하는 데이터 센터
=> CloudFront가 CDN 서비스를 위해 고객과 가까운 위치에 콘텐츠 사본 캐시
10. AWS 리소스를 프로비저닝 하는 방법
- 상호작용 방법
=> management console
=> CLI
=> 소프트웨어 개발 키트(SDK)
- AWS Elastic Beanstalk
: 사용자가 코드 및 구성 설정을 제공하면 리소스를 배포함
- AWS CloudFormation
: 인프라를 코드로 취급하여 코드로 환경을 구축할 수 있음
=> 반복 가능한 방식
- AWS Outposts
=> aws 인프라 및 서비스를 온프레미스 데이터 센터로 확장함
11. 네트워킹
- VPC (Virtual Private Cloud)
: 사용자 고유 프라이빗 네트워크. 프라이빗 IP 범위를 정의하고 리소스 요소를 배치할 수 있음.
=> 리소스의 경계를 설정할 수 있음
- 서브넷
: VPC 내의 IP 주소 모음으로 리소스를 그룹화할 수 있게 함
- IGW (인터넷 게이트웨이)
: 공개된 출입구. 공개 인터넷의 트래픽이 VCP를 출입하도록 허용하려면 IGW를 연결해야 함.
- 가상 프라이빗 게이트웨이
: 승인된 네트워크에서 오는 사람만 허용.
=> 가상 프라이빗 게이트웨이를 VPC에 연결해야 함
- AWS Direct Connect
: 데이터 센터와 VPC 간에 비공개 전용 연결을 설정하는 서비스
=> 퍼블릭 인터넷을 이용하지 않고도 프라이빗한 리소스에 접근할 수 있음
- 네트워크 ACL(액세스 제어 목록)
: 서브넷 수준에서 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽
=> 상태를 저장하지 않고 패킷만 확인해서 필터링할 수 있다.
=> 모든 인바운드 및 아웃바운드 트래픽을 허용함
=> EC2 인스턴스에서는 보안 그룹을 사용(상태 저장함)
- 보안 그룹
: EC2 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽
=> 보안 그룹은 상태 저장 패킷 필터링 사용
=> 기본적으로 모든 인바운드 트래픽을 거부함
=> EC2는 퍼블릭 서브넷 안에 위치
구조
client - IGW - ACL - Public subnet - 보안 그룹 - EC2
- DNS(Domain Name System)
1) 브라우저에 도메인 이름을 입력하면 DNS서버로 요청이 전송됨
2) DNS 서버는 웹 서버에 웹 사이트에 해당하는 IP 주소 요청
3) 웹 서버는 IP주소를 제공하여 응답
- Amazon Route 53
: DNS 웹 서비스
=> CloudFront랑 같이 쓸 수 있음
1) 고객이 데이터 요청
2) Route 53이 도메인 네임에 맞는 IP 주소를 식별하여 고객에게 전송
3) 고객 요청은 CloudFront로 가장 가까운 엣지 로케이션으로 전송됨
4) CloudFront는 수신 패킷을 Load Balancer에 연결시킴
12. 스토리지
- 인스턴스 스토어
: EC2 인스턴스에 임시 블록 수준 스토리지 제공
=> 물리적으로 EC2 인스턴스의 호스트 컴퓨터에 연결되어 있음
=> 인스턴스와 수명이 동일
=> 장기간 보관하지 않을 임시 데이터에 적합
- Amazon Elastic Block Store(EBS)
: 블록 수준 스토리지 볼륨 제공
=> EBS 스냅샷을 생성해 볼륨을 백업할 수 있음(증분 백업: 최근 변경된 백업만 저장)
=> 단일 가용 영역에 데이터 저장
=> 인스턴스를 중지해도 데이터를 계속 사용할 수 있음
- 객체 스토리지 구조
=> 데이터: 이미지, 동영상, txt 등 파일
=> 메타데이터: 데이터의 내용, 사용 방법, 객체 크기
=> 키: 고유한 식별자
* 블록 스토리지에서 파일을 수정하면 변경된 부분만 업데이트되지만, 객체 스토리지에서 파일을 수정하면 전체 개체가 업데이트됨
- Amazon Simple Storage Service (S3)
: 객체 수준 스토리지를 제공하는 서비스. 데이터를 버킷에 객체로 저장함.
=> 저장 공간 무제한 제공
=> S3 스토리지 클래스 종류
1) S3 Standard
: 자주 액세스하는 데이터용 (고가용성 제공)
=> 웹 사이트, CDN, 데이터 분석 (비쌈)
=> 최소 3개 가용 영역에 데이터 저장
2) S3 Standard-infrequent Access(Standard-IA)
: 자주 액세스하지 않는 데이터 (필요에 따라 고가용성 요구됨)
=> Standard보다는 스토리지 가격이 싸지만 검색 가격이 높음
=> 최소 3개 가용 영역에 데이터 저장
3) S3 One zone-Infrequent Access(One Zone-IA)
: 단일 가용 영역에 데이터 저장
=> 스토리지 비용 절감
=> 가용 영역 장애가 발생해도 데이터 복구가 가능할 경우
4) S3 intelligent-Tiering
: 자주 변화하는 데이터용. 객체당 모니터링 요금 부과
=> 객체 액세스를 모니터링해서 Standard-IA나 Standard로 객체를 이동시킨다.
5) S3 Glacier
: 데이터 보관용 저비용 스토리지
=> 검색 속도가 많이 느림
6) S3 Glacier Deep Archive
: 가장 저렴한 데이터 보관용 스토리지
=> 12시간 이내에 검색 가능
S3 | EBS | |
리전 분산 여부 | 리전 분산 가능 | 분산 x |
스토리지 | 객체 스토리지 | 블럭 스토리지 |
증분 업데이트 | 불가능 | 가능 |
사용처 | 완성된 객체를 사용할 때 | 읽기 쓰기 변경 작업을 자주 수행할 때 |
- Amazon Elastic File System(EFS)
: 파일 스토리지
=> 온 디맨드 규모 확장 가능
=> 리전별 서비스 (여러 가용 영역에 걸쳐 데이터 저장)
=> 온프레미스 서버는 Direct Connect를 사용하여 EFS에 액세스 가능
13. 데이터베이스
- 관계형 데이터베이스 Relational Database
=> 정형 쿼리 언어(SQL)를 사용해 데이터를 저장하고 쿼리
=> 일관성, 확장 가능성 있음
- Amazon Relational Database Service(RDS)
: 클라우드에서 관계형 데이터베이스 실행
=> db 관리 작업 수행 시간 단축
=> Lambda와 함께 쓰면 서버리스 애플리케이션에서 db 쿼리 가능
=> 데이터 저장 시 암호화, 데이터 전송 중 암호화 제공
=> 지원 엔진 : Aurora, PostgreSQL, MySQL, MariaDB, Oracle, MSSQL
- Amazon Aurora
: 엔터프라이즈급 관계형 데이터베이스
=> 관계형 데이터베이스에 호환
=> 워크로드에 고가용성이 필요한 경우
=> S3에 데이터 백업
- NoSQL DB
: 구조를 사용하여 데이터 구성
=> key-value 페어
- Amazon DynamoDB
: key-value DB 서버
=> Serverless: DB 유지 운영 필요 x
=> Auto-scaling: 용량 변화에 맞춰 auto scaling (일관된 성능 유지)
- Amazon Redshift
: 빅 데이터 분석 데이터 웨어하우징 서비스
- AWS Database Migration Service(DMS)
: 데이터 저장소 마이그레이션 서비스
=> 원본 데이터베이스와 대상 데이터베이스는 유형이 동일할 필요 없음
=> 마이그레이션 동안 원본 데이터베이스가 계속 작동함
=> 개발 및 테스트 데이터베이스 마이그레이션
=> 데이터베이스 통합
=> 연속 복제
- Amazon DocumentDB
: MongoDB 워크로드를 지원하는 document DB 서비스
- Amazon Neptune
: 그래프 데이터베이스 서비스. 추천 엔진, 사기 탐지 등
- Amazon Quantum Ledger Database(QLDB)
: 원자 데이터베이스 서비스
- Amazon Managed Blockchain
: 오픈 소스 프레임워크를 사용하여 블록체인 네트워크를 생성하고 관리하는 데 사용할 수 있는 서비스
- Amazon ElastiCache
: 데이터베이스 위에 캐싱 계층 추가하는 서비스
=> Redis, Memcached 지원
- Amazon DynamoDB Accelerator
: DynamoDB용 인 메모리 캐시
=> 응답 시간 향상 가능
14. 보안
- 공동 책임 모델
고객: 클라우드 내부의 보안
=> 클라우드 안에서 생성하고 배치하는 모든 것의 보안을 책임
AWS: 클라우드 자체의 보안
=> 데이터 센터의 물리적 보안
=> 물리적 인프라 관리
- AWS identity and Access Management(IAM)
: AWS 서비스와 리소스에 대한 액세스 관리
=> IAM 사용자, 그룹 및 역할
=> IAM 정책
=> Multi-Factor Authentication
- AWS 계정 루트 사용자
: 모든 AWS 서비스 및 리소스에 대한 전체 액세스 권한을 가짐
=> 일상 작업에서 사용하지 말것
=> IAM 관리도 사용자 생성하고 권한을 IAM 관리로 지정하기
- IAM 사용자
=> 각 사용자마다 개별 IAM 사용자를 생성하는 것이 좋음
- IAM 정책
: AWS 서비스 및 리소스에 대한 권한을 허용하거나 거부하는 문서
- IAM 그룹
: IAM 사용자 모음. 그룹에 IAM 정책을 할당하면 해당 그룹의 모든 사용자에게 정책에 지정된 권한이 부여됨.
=> 직무 변경 시 권한을 간편이 바꿀 수 있음
- IAM 역할
: 임시로 권한에 액세스하기 위해 수임할 수 있는 자격 증명
=> 이전 역할에 지정된 모든 권한을 포기해야 함
- AWS Organizations
: 서비스 제어 정책(SCP)을 사용해서 조직의 계정에 대한 권한을 중앙에서 제어할 수 있음.
=> 계정을 조직 단위(OU)로 그룹화
=> 개별 멤버 계정 관리
- AWS Artifact
=> 보안 및 규정 준수 보고서 및 온라인 계약에 대한 온디맨드 액세스를 제공하는 서비스
=> Agreements 서비스: 개별 계정에 대한 계약 검토 및 수락 관리
=> Reports 서비스: 특정 규제 표준을 준수하기 위한 책임에 대한 추가 정보에 액세
- DoS 공격
: 공격이 단일 소스로부터 발생
- DDoS 공격
: 여러 소스를 사용하여 app을 사용할 수 없게 만드는 공격 (과도한 트래픽 전송)
- AWS Shield
: DDoS 공격으로부터 애플리케이션을 보호하는 서비스
=> Standard: 모든 AWS 고객을 자동으로 보호하는 서비스(무료)
=> Advanced: 상세한 공격 진단 및 정교한 공격 탐지 (WAF와 통합 가능. 유료)
- AWS Key Management Service (KMS)
: 암호화 키를 사용해 암호화 작업 수행 가능.
- AWS WAF
: 웹 애플리케이션으로 들어오는 네트워크 요청을 모니터링할 수 있는 웹 애플리케이션 방화벽
=> CloudFront, Load Balancer와 함께 작동
=> 트래픽을 차단하거나 허용
=> 웹 ACL을 참고해 리소스 보호
- Amazon Inspector
: 자동 보안 평가 실행
=> 오픈 액세스, 취약한 버전 검사
- Amazon GuardDuty
: AWS 인프라 및 리소스에 대한 지능형 위협 탐지 기능 제공
- Amazon CloudWatch
: 지표를 모니터링 및 관리하고 해당 지표의 데이터를 기반으로 경보 작업을 구성할 수 있는 웹 서비스
- AWS CloudTrail
: 계정에 대한 API 호출을 기록하여 추적할 수 있도록 함
=> CloudTrail Insights를 활성화해 비정상적인 API활동을 자동으로 감지할 수 있음
=> 운영 분석 및 문제 해결을 지원하기 위한 로그 필터링
- AWS Trusted Advisor
: AWS 환경을 검사하고 AWS 모범 사례에 따라 실시간 권장 사항을 제시하는 웹 서비스
15. 마이그레이션
- AWS Cloud Adoption Framework (CAF)
=> 비즈니스 기능 중점: 비즈니스, 인력, 거버넌스 관점
=> 기술 역량 중점: 플랫폼, 보안, 운영 관점
- 6R 마이그레이션 전략
=> Rehosting (lift-and-shift) : 변경 없이 이전
=> Replatforming : app 핵심 아키텍처 변경 없이 일부 클라우드 최적화 수행
=> Refactoring/Re-architecting : app 개발 방식 재구성
=> Repurchasing : 기존 라이선스를 SaaS 모델로 전환
=> Retaining
=> Retiring
- AWS snowcone
: 엣지 컴퓨팅 및 데이터 전송 디바이스
- AWS Snowball
=> Snowball Edge Storage Optimized (80TB)
: 대규모 데이터 마이그레이션용 리소스 제공 (스토리지 중심)
=> Snowball Edge Compute Optimized (40TB)
: 머신 러닝, 분석 같은 강력한 컴퓨팅 리소스 제공 (컴퓨팅 중심)
- AWS Snowmobile (80PB)
: 대용량 데이터를 AWS로 이동하는 데 사용하는 XB규모의 데이터 전송 서비스
16. 인공 지능
- Transcribe: 음성 -> 텍스트
- Comprehend: 텍스트에서 패턴 검색
- Fraud Detector: 잠재적인 온라인 사기 행위 식별
- Lex: 음성 및 텍스트 챗봇 빌드
17. 기계 학습
- SageMaker: ML 모델 빌드, 훈련, 배포
18. Well-Architected Framework
- 핵심 요소
1) 운영 우수성
: 시스템을 실행 및 모니터링하여 비즈니스 가치를 제공하고 지속적으로 개선하는 능력
2) 보안성
: 위험 평가 및 완화 전략을 통해 비즈니스 가치를 제공하는 동시에 정보, 시스템, 자산을 보호하는 능력
3) 안정성
: 복구, 동적 리소스 확보, 중단 완화
4) 성능 효율성
: 컴퓨팅 리소스를 효율적으로 사용하여 시스템 요구 사항을 충족하고, 효율성을 유지하는 능력
=> 서버리스 아키텍처 사용
5) 비용 최적화
=> 낮은 가격으로 비즈니스 가치를 제공
=> 소비 모델 채택, 비용 분석 및 귀속 ...
19. 클라우드 컴퓨팅의 이점
- 선행 비용을 가변 비용으로 대체
- 거대한 규모의 경제로 얻는 이점
- 용량 추정 불필요
- 속도 및 민첩성 향상
- 데이터 센터 운영 및 유지 관리에 비용 투자 불필요
- 몇 분 만에 전 세계에 배포
'Cloud Computing' 카테고리의 다른 글
[AWS] EC2 서버 초기 세팅 커맨드 모음 (0) | 2022.11.05 |
---|---|
[AWS] SAA-C02 시험에 많이 나오는 유형 정리 (0) | 2021.10.07 |
[GCP] Firebase에 Flask 앱 배포하기 (0) | 2021.07.01 |
[AWS] 알아두어야 할 CS 개념 (0) | 2021.06.25 |