"AWS Certified Cloud 전문가 시험 합격을 위한 모든 것" 강의 내용의 포함되어 있습니다.
* 🧚 : 시험 출제 포인트
☁️ 클라우드 컴퓨팅이란?
✔️ 클라우드 컴퓨팅 : 컴퓨터 성능과 데이터베이스 스토리지, 애플리케이션과 다른 IT 리소스를 on-demand로 제공하는 것이다.
즉, 필요할 때 해당 서비스를 이용할 수 있다.
또한 요청한 만큼만 비용을 지불하여 컴퓨터 리소스의 정확한 유형과 크기를 프로비저닝 할 수 있다.
[ 클라우드 배포 유형 ]
- Public Cloud
MS Azure, Google Cloud, AWS - Private Cloud (OpenStack)
클라우드를 사용하기 원하는 기업에서 자체적으로 전용망을 이용하여 구축하는 클라우드 - Multi Cloud
멀티 클라우드는 2곳 이상의 클라우드 벤더가 제공하는 2개 이상의 퍼블릭 또는 프라이빗 클라우드로 구성된 클라우드 접근 방식 - Hybrid Cloud
퍼블릭 또는 프라이빗 클라우드를 결합한 방식. 일부 서버를 on-premise로 유지하고 필요한 기능의 일부를 클라우드로 확장하는 방식
[ 클라우드 컴퓨팅 특징 ]
- On-demand self service
- Broad network access
- Multi-tenancy and resource pooling
- Rapid elasticity and scalability
- Measured service
[ 클라우드 컴퓨팅 유형 ]
자유도의 차이
- IaaS (Infrastructure as a Service, 서비스형 인프라)
- ex. Amazon EC2
- PaaS (Platform as a Service, 서비스형 플랫폼)
- ex. Amazon Elastic Beanstalk, Heroku
- SaaS (Software as a Service, 서비스형 소프트웨어)
- ex. Rekognition for Machine Learning, Gmail, Dropbox
[ 글로벌 인프라 ]
✔️ AWS Regions (리전): 물리적인 데이터센터 클러스터 단위
데이터 센터 클러스터이며 둘 이상의 가용 영역으로 구성된 지리적 구성
🤖 : 삐빅. Pop quiz~ How to choose an AWS Region?
🐰 : 상황에 따라 다르다!
🧚 리전 선택에 고려할 점
- 데이터 거버넌스 준수
- Compliance, 법률 준수 : 특정 국가에서는 대상 국가 내 데이터가 보관되기를 원할 수 있다!
- Proximity, 지연 시간(고객과의 근접성) : 대부분의 사용자가 한국에 있다면 사용자와 가까운 리전을 사용!
- Available service, 리전 내 사용가능한 서비스 및 기능: 모든 리전에서 모든 서비스를 제공하는건 아니다!
- Pricing, 요금 : 리전마다 요금이 다르다!
✔️ AWS Availability Zones: AZ (가용 영역): 지리적으로 분리된 1개 이상의 데이터센터
전원(power), 네트워킹 및 연결이 있는 하나 이상의 개별 데이터 센터로 구성되고 인프라 배포에 사용되는 글로벌 인프라 아이덴티티
AZ를 분리한 이유
- 내결함성과 고가용성을 유지하기에 적합한 구조
- 각각의 가용 영역들이 재난 발생에 대비해 서로 분리되어 있다.
🧚 AWS 리전은 최소 2개 이상의 가용 영역으로 구성되며, 각 가용 영역은 최소 1개 이상의 데이터 센터 (Internet Data Center)로 구성된다.
✔️ AWS Edge Locations (엣지 로케이션): 전 세계적으로 통신사와 협업하여 빠른 네트워크 서비스를 제공하기 위한 지역
해외 서비스 제공에서 유용하다.
[ AWS 클라우드의 3가지 기본 요금 ]
- AWS 클라우드 컴퓨팅
- 스토리지
- 데이터 전송
🧚 [ 공동 책임 모델 ]
🤖 : 무엇이 우리의 책임이고, 무엇이 AWS 책임인지 찾는 문제 출제!
👤 IAM - ID 및 엑세스 관리
IAM: Identity and Access Management, Global service
접근 권한을 가진 담당자. 즉, 개인이나 팀을 대상으로 권한을 부여하고 관리할 수 있는 서비스이다.
[ 접근 제어 서비스 ]
- Identity: 나는 A이다.
- Root 계정 : 사용자 계정 생성 (오직 계정 생성에만 사용!), 모든 서비스에 대한 권한을 가지고 있다. MFA로 보안 강화 필요
- Users, 사용자 : AWS 서비스를 실질적으로 사용하는 유저, 사용자는 필요한 최소한의 권한을 가져야 한다.
- Groups, 사용자 그룹 : 팀 단위로 동일한 접근 권한 정책을 가질 때 사용
- Permissions (권한 정책)
- Access Management: A는 무엇을 할 수 있다.
- Permission JSON Format
- AWS에서는 최소 권한의 원칙을 적용한다.
- Role: AWS 서비스를 대상으로 적용할 수 있는 Permission이다.
AWS 서비스에만 적용할 수 있다.
[ IAM Policies Structure ]
- Version: 정책 언어 버전
- Id: 식별자 (선택)
- Statement: 구성 요소
- SId: Statement 실벽자 (선택)
- 🧚 Effect: 특정 API를 Allow or Deny
- 🧚 Principal: 특정 정책이 적용될 사용자, 계정, 혹은 역할
- 🧚 Action: effect에 기반해 Allow or Deny API 호출 목록
- 🧚 Resource: 적용될 action의 리소스 목록
- Condition: Statement가 언제 적용될지를 결정 (선택)
[ 보안 강화 ]
✔️ password 정책
AWS에서는 다양한 옵션을 이용해 비밀번호 정책의 생성이 가능하다.
- 비밀번호 최소 길이 설정
- 특정 유형의 글자 사용을 요구
- IAM 사용자들이 비밀번호 변경을 허용 또는 금지할 수 있음
- 일정 기간이 지나면 비밀번호를 만료시켜 새 비밀번호 설정을 요구할 수 있음
- 사용자가 비밀번호 재사용을 막아 변경 시 동일한 비밀번호나 이전에 사용한 비밀번호를 사용하지 못하게 할 수 있음
✔️ 🧚 MFA(Multi Factor Authentication) 인증
루트는 어떤 일이 있어도 반드시 보호해야 한다!
MFA devices options in AWS
- virtual MFA device, 가상 MFA 장치
ex. Google Authenticator, Authy - Universal 2nd Factor (U2F) Security Key, 보안 키
ex. YubiKey - Hardware Key Fob MFA Device
ex. Provided by Gemalto - Hardware Key Fob MFA Device for AWS GovCloud (US)
[ AWS 엑세스 방법 ]
1. AWS Management Console
비밀번호 + MFA
2. 명령줄 인터페이스 (CLI)
access keys
CLI를 사용하면 AWS 서비스의 공용 API로 직접 엑세스가 가능합니다.
- install aws cli 검색해서 설치
- 터미널에 구성 정보 설정 (access key)
$ aws configure
3. 소프트웨어 개발 키트 (SDK)
access keys
개발자가 애플리케이션 코드에서 AWS 서비스에 액세스 할 수 있는 메커니즘
[ CloudShell ]
AWS 클라우드에서 무료로 사용 가능한 터미널 같은 개념이다.
CloudShell은 특정 리전에서만 사용 가능하다.
[ IAM 역할, Role ]
IAM 역할은 사용자와 같지만 실제 사람이 사용하도록 만들어진 것이 아니고 AWS 서비스에 의해 사용되도록 만들어졌다.
AWS 서비스를 대상으로 적용할 수 있는 Permission이다.
AWS 서비스에만 적용할 수 있다.
(* 일부 AWS 서비스는 사용자를 대신하여 작업을 수행해야 한다. 이렇게 하려면 IAM 역할을 사용하여 AWS 서비스에 권한을 할당한다.)
ex. EC2 인스턴스
EC2 인스턴스가 AWS에서 어떤 작업을 수행하려고 할 수 있다.
IAM 역할을 만들어 이들을 하나의 개체로 만든다. 그래서 EC2 인스턴스가 AWS 정보에 접근하려고 할 때 IAM 역할을 사용하게 된다.
EC2 인스턴스를 위한 Role을 만들 수 있다.
[ 보안 도구, Security Tools ]
- IAM Credentials Report (account-level) : 자격 증명 보고서
- 보고서는 계정에 있는 사용자와 다양한 자격 증명의 상태를 포함한다.
- IAM Access Advisor (user-level) : 엑세스 관리자
- 해당 도구를 사용하여 어떤 권한이 사용되지 않는지 볼 수 있다.
[ Guidelines & Best Practices ]
- 루트 계정은 AWS 계정을 설정할 때를 제외하고는 사용하지 않는다.
- AWS 사용자는 한 명의 실제 사용자를 의미한다. 따라서 여러 명의 개발자가 사용한다면 새로운 사용자를 만들자.
- 사용자를 그룹에 넣어 해당 그룹에 권한을 부여할 수 있다. -> 그룹 수준 보안 관리!
- 비밀번호 정책을 강력하게! MFA 굿!
- AWS 서비스에 권한을 부여할 때마다 역할을 만들고 사용해야 한다.
- CLI, SDK를 사용할 경우 반드시 엑세스 키를 만들어야 한다. 절대 엑세스 키 공유 X!!!
- 계정의 권한을 감사할 때는 IAM 자격 증명 보고서와 IAM 엑세스 분석기를 사용할 수 있다.
(마음의 소리: 강의에서 자꾸 IAM 마지막 이야기라면서 자꾸 나와;;;; ㅎㅅㅎ 좋다는 이야기 핳)
🧚 [ 공동 책임 모델, Shared Responsibility Model for IAM ] : 시험 자주 출제!
✔️ AWS
- 인프라 (global network security)
- 구성과 취약성 분석 서비스
- 책임 사항을 모두 준수하는 것
✔️ You
- 자체 사용자, 그룹, 역할, 정책을 생성하고 그 정책을 관리하고 모니터링하는 것
- 모든 계정에서 MFA를 활성화하고 시행하는 것
- 키를 자주 교체하는 것
- IAM 도구를 사용해서 적합한 권한을 적용했는지 확인하고 엑세스 패턴을 분석하고 계정 권한 검토하는 것
💻 EC2 - Elastic 컴퓨팅 클라우드 (Computing)
[ AWS 예산 설정 ]
Budgets 탭에서 예산 금액을 설정할 수 있다.
임계값을 설정해서 메일로 알림을 받을 수 있다.
[ EC2 기초 ]
AWS에서 제공하는 IaaS (Infrastructure as a Service, 서비스형 인프라)이다.
- EBS (Elastic Block Store) : EBS는 EC2와 연결하여 제공할 수 있는 블록 스토리지 볼륨
- EFS (Elastic File System)
- ELB (Elastic Load Balancer) : ELB는 들어오는 트래픽을 컴퓨팅 서비스에 분산하는 AWS의 관리형 로드 밸런서
- ASG (Auto-Scaling Group) : 오토 스케일링 그룹은 애플리케이션이 요구하는 컴퓨팅 자원만큼의 인스턴스의 개수를 자동으로 유지시켜주는 그룹
[ 실습 ]
EC2를 원격접속 하기 위해서는 SSH라는 프로토콜을 사용해서 원격접속을 하게 된다. 이때 key pair 파일 필요.
1. 키 페어 생성
네트워크 및 보안 > 키 페어 > 키 페어 생성
- 타입: RSA
- 파일 형식
- .pem: 리눅스, 맥 OS
- .ppk: windows OS -> PuTTY를 사용해서 접속해야 함.
2. 인스턴스 생성
대시보드 > 인스턴스 시작
- 단계 1) AMI 선택
- 단계 2) 인스턴스 유형 선택
- 단계 3) 인스턴스 세부 정보 구성
- 퍼블릭 IP 자동 할당: 활성화
- 사용자 데이터: OS가 부팅될 때 최소로 실행할 수 있는 스크립트
- 단계 4) 스토리지 추가
- 단계 5) 태그 추가
- 인스턴스를 구분하는 용도
- 단계 6) 보안 그룹 구성
- SSH: 원격 접속을 위한 포트 허용 (22)
- HTTP: 웹 port (80)
- 단계 7) 인스턴스 시작 검토
- 키 페어 선택
- 해당 키 페어가 있어야 접속할 수 있도록 체크박스 설정
[ 보안 그룹 및 클래식 포트 ]
보안그룹은 EC2 인스턴스의 방화벽이다. 포트로 엑세스를 통제하고 인증된 IP 주소의 범위를 확인한다.
- 인바운드 규칙 : 기본적으로 모든 인바운드 트래픽은 차단
- 아웃바운드 규칙 : 기본적으로 모든 아웃바운드 트래픽은 허용
- 프로토콜: TCP
- 포트 범위: 트래픽이 인스턴스에서 통과하는 위치
- 소스: IP 주소의 범위
- SSH (Secure Shell): 22번 포트로 Linux에서 EC2 인스턴스로 로그인, Linux 인스턴스용
- FTP (File Transfer Protocol): 파일 공유 시스템에 파일을 업로드하는 데 사용
- SFTP (Secure File Transfer Protocol): SSH를 사용해서 업로드
- HTTP: 80번 포트
- HTTPS: 443번 포트
- RDP (Remote Desktop Protocol): 3389번 포트는 윈도우 인스턴스용
[ SSH (Secure Shell) ]
22번 포트로 Linux에서 EC2 인스턴스로 로그인
EC2 원격 접속
필요한 것: 퍼블릿 IPv4 주소, 키 페어 파일
Mac, 리눅스 환경에서는 터미널에서 진행
- 1단계 : key pair 파일이 있는 폴더에서 터미널 실행
- 2단계 : 키페어 파일 권한 변경 (읽기 전용 파일)
chmod 400 judy-keypair01.pem - 3단계 : ssh 프로토콜로 접속
ssh -i judy-keypair01.pem ec2-user@<퍼블릭 ip주소>
AWS EC2에서 OS를 어떤 것을 사용했는지에 따라 SSH 로그인 계정이 다르다. ex) ubuntu, ec2-user - 아마존 리눅스 환경 접속 완료
[ EC2 Instance Connect ]
브라우저 기반으로 EC2 인스턴스와 SSH 세션과 연결할 수 있다.
세션이 브라우저에서 바로 실행되는 장점이 있다.
(Oh.. 이걸 몰랐네. 예전에 윈도우 쓸 땐 얼마나 접속 귀찮았는데.. PuTTY 불편해~)
[ EC2 인스턴스 IAM 역할(Role) ]
커멘드 라인에서 IAM list를 확인하는 등 작업을 요청할 수 있다. 이때 configure이 필요하다.
하지만!!!
EC2 인스턴스에 IAM API 키를 절대로 입력하면 안 된다!! 엑세스 키 ID와 secret 엑세스 키를 입력하는 건 최악의 최악!!!
이것을 대신할 수 있는 것이 IAM Role
IAM에 설정한 EC2가 IAM에 ReadOnly로 Access 할 수 있도록 설정한 Role을 EC2 인스턴스에 연결해서 자격 증명을 할 수 있다!!!
인스턴스에서 Security > IAM Role을 통해 확인 가능!
✔️ EC2 인스턴스에 Role 설정하는 방법
- 인스턴스 목록에서 Actions > Security > Modify IAM role
- 여기서 IAM role을 선택한다.
[ EC2 구매 옵션 ]
- On demand: 언제든지 구매할 수 있고 원할 때 전체 요금 지불
- Reserved: 오랜 기간 사용할 것을 미리 계획할 때 (1년~3년), 할인 많이 된다.
- Savings Plan: 일정 금액을 지출하기로 하고 지불하기로 약정
- Spot instances: 파격적인 할인을 받을 수 있지만, 인스턴스가 언제든 중단될 수 있다.
- 🧚 전용 인스턴스: 사용자 하드웨어에 고유한 인스턴스를 갖는 것
- 규정 준수 요구 사항이 있거나 기존의 서버 결합 소프트웨어 라이선스를 사용해야 할 경우
- 🧚 Dedicated Hosts, 전용 호스트: 물리적 서버 자체에 엑세스하여 저수준 하드웨어에 대한 가시성을 제공
* 컴퓨팅 최적화 EC2 인스턴스: 배치 처리, 미디어 트랜스코딩, 고성능 웹 서버, 고성능 컴퓨팅, 과학 모델링 및 기계 학습, 전용 게임 서버와 같은 고성능 프로세서가 필요한 인텐시브 컴퓨팅 작업량에 적합
🗂️ EC2 인스턴스 스토리지
[ EBS (Elastic Block Store) ]
: EBS는 EC2와 연결하여 제공할 수 있는 블록 스토리지 볼륨, 네트워크 드라이브
(CCP 레벨: 하나의 EBS는 하나의 EC2 인스턴스에만 마운트 가능, 하나의 인스턴스에 두 개 EBS 연결은 가능 / 어소시에이트 레벨: 일부 EBS 다중 연결)
특정 AZ(가용영역, US-EAST-1A)에 고정되어 있지만 스냅샷을 이용하면 다른 가용 영역으로 볼륨을 옮길 수 있다.
🧚 Delete on Termination attribute (종료 시 삭제 속성)
: 루트 볼륨은 활성화되어 있다.
[ EBS Snapshots (스냅샷) ]
: 해당 시점의 상태를 백업으로 남기는 개념
왜 사용하는 걸까?
복구, 여러 가용 영역과 리전 간 복제에 사용
[ AMI (Amazon Machine Image) ]
AMI를 생성하면 부팅과 구성에 시간이 단축된다.
[ 🧚 EC2 Image Builder, 이미지 빌더 ]
AWS 또는 온프레미스에서 사용하기 위해 가상 머신 및 컨테이너 이미지의 구축, 테스트 및 배포를 간소화합니다.
작동방식 (출처: AWS 공식 홈페이지)
✔️ Local EC2 Instance Store
성능이 아주 뛰어난 하드웨어가 연결된 EC2 인스턴스
I/O 성능은 좋지만 EC2 인스턴스가 종료되면 데이터가 손실된다.
[ EFS ]
EFS 드라이브는 한 번에 수백 개의 EC2 인스턴스를 마운트 할 수 있다. (Multi-AZ)
가용성과 확장성이 높은 만큼 비싸다.
[ EBS vs EFS ]
데이터 시점에서 EBS는 볼륨 기반, S3는 객체 기반, EFS는 파일 기반 저장 서비스
✔️ EBS
- 데이터에 빠르게 액세스 하고 장기적으로 지속해야 하는 경우에 적합
- 하나의 EBS는 하나의 EC2 인스턴스에만 마운트 가능
- 하나의 인스턴스에 두 개 EBS 연결은 가능
- 특정 AZ(가용영역, US-EAST-1A)에 고정되어 있지만 스냅샷을 이용하면 다른 가용 영역으로 볼륨을 옮길 수 있다.
✔️ EFS
- EFS 드라이브는 한 번에 수백 개의 EC2 인스턴스를 마운트 할 수 있다. (Multi-AZ)
- 공유 파일 시스템
[ EFS-IA ]
Amazon EFS Infrequent Access을 통한 스토리지 비용 최적화 – 최대 92% 비용 절감 (공식 홈페이지)
수명 주기 관리를 통한 간편한 비용 최적화! 마지막으로 엑세스한 시점을 기반으로 파일을 이동시킨다.
[ 🧚 EC2 스토리지와 관련된 공동 책임 모델 ]
✔️ AWS
- 인프라 (global network security)
- 복제를 수행함
- 결함 있는 하드웨어 교체
- 직원의 데이터 엑세스를 막음
✔️ You
- 백업 설정, 스냅샷 절차와 가이드라인 설정
- 데이터 암호화 설정
- 드라이브에 설정하는 모든 데이터
하드웨어 결함이 생기면 데이터를 잃게 되는데 이때 우리의 책임은 백업이기 때문에!!
[ 🧚 Amazon FSx ]
(공식 홈페이지)
Amazon FSx는 클라우드 내 다기능 고성능 파일 시스템을 쉽고 비용 효과적으로 시작, 실행 및 확장할 수 있도록 한다.
4가지 파일 시스템 중 시험에는 Windows File Server, Lustre가 중요하다.
✔️ Windows File Server FSx
- Windows 파일 서버에 설계한 완전 관리형
✔️ Lustre
- 고성능 컴퓨팅을 위한 완전 관리형
- 확장 가능한 파일 스토리지
- 컴퓨팅 인스턴스에 직접 연결
- 백엔드에서 데이터를 Amazon S3 버킷에 저장
⚙️ ELB & ASG - Elastic Load Balancing, Auto Scaling Groups
[ 고가용성, 확장성, 탄력성 ]
🧚 시험에서는 이것이 이 중 어떤 것인지 묻는다!
- 수직 확장성 (=Scale up)
- 인스턴스 크기를 증가시킬 수 있다.
- 수평 확장성 (=탄력성) (=Scale out)
- 인스턴스 또는 시스템의 숫자를 늘리는 것
- 확장성: scale up, scale out, 시스템이 더 큰 부하를 수용할 수 있도록
- 탄력성: 오토 스케일링, 수신하는 로드에 따라 시스템이 자동으로 확장
- 고가용성: 같은 애플리케이션의 인스턴스를 여러 가용 영역에서 실행하는 것
- 민첩성: 새로운 IT 리소스로 클릭 한 번으로 되는 것 (위의 단어와 혼동을 주기 위해 출제되는 단어)
[ Elastic Load Balancing ]
AWS를 탄력적으로 사용할 수 있게 하는 서비스
✔️ 로드밸런서의 기능
- 인스턴스의 정기적인 상태 확인
- 여러 다운스트림 인스턴스에 스프레드 로드
- 다운스트림 인스턴스의 실패 처리
✔️ AWS에서 제공하는 3가지 로드 밸런서
- 애플리케이션 로드 밸런서 (HTTP, HTTPS 전용) (L7)
- 네트워크 로드 밸런서 (초고성능, TCP) (L4)
낮은 지연 시간으로 초당 수백만 개의 요청을 처리 - 클래식 로드 밸런서: 예전에 제공하던 것 (L4, L7)
[ 애플리케이션 로드 밸런서 (ALB) ]
- Internet-facing
- IPv4
- 다중 가용 영역(AZ)은 3개는 돼야 효과가 있다.
- 로드 밸런서를 위한 보안 그룹을 설정해야 한다.
- Health check를 통해 정상 인스턴스에만 트래픽을 보낸다.
[ Auto Scaling Group (ASG) ]
- 오토 스케일링 그룹의 목적은 Scale out/in이다.
- 탄력성!!
- 최적의 용량에서 실행하여 비용 절감
- 최소, 최대 크기를 설정할 수 있다.
✔️ 스케일링 전략
- Manual Scaling: 수동으로 업데이트
- Dynamic Scaling, 동적 스케일링 - 스케일링 정책
- Simple / Step Scaling: 트리거를 정의한 다음 유닛을 얼마나 삭제하고 추가할지 정의
- Target Tracking Scaling: ex. 평균 CPU 사용률을 정해두고 자동으로 조정
- Scheduled Scaling(예약 스케일링): 사용자 패턴을 기반으로 확장을 예측
- 🧚 Predictive Scaling(예측 스케일링): 머신러닝을 사용해서 트래픽을 미리 예측
자격증 취득을 위해 강의를 듣게 되었지만
AWS에서 사용하던 서비스의 기능을 더 전문적으로 알게 되는 거 같아 재밌었다~ 굿굿
마지막은 귀엽게 모여서 모각공(모여서 각자공부)하는 모습~
'Cloud > AWS + 자격증' 카테고리의 다른 글
[AWS Cloud Practitioner] 스터디 2주차 정리 (0) | 2023.04.28 |
---|---|
[AWS] Elastic Beanstalk(EB) 사용해서 웹 애플리케이션 배포하기 (0) | 2022.09.22 |
[AWS] Storage 서비스 (0) | 2022.09.11 |
AWS 과금 문의, 환불 (0) | 2022.05.09 |
댓글