AWS 기술 에센셜 (AWS Technical Essentials)
- 6 minsSummary:
AWS 기술 에센셜 (AWS Technical Essentials)
모듈 0 과정개요
1) AWS 기술교육 설명
자격증과 연계되는 교육들 설명 정규과정 외에도 여러가지 교육들 지원 기술 에센셜 같은 경우 대다수가 영어지만 EDX로 연게하여 교육가능하고 신청 해놓은 상태
참조 URL 아마존 세미나 & 웨비나
모듈 1 - AWS 소개 및 역사
서비스 인프라 및 플랫폼 서비스들에 관한 소개
리젼
- 지리적 위치
- 최소한 2개 이상의 가용 영역으로 구성됨
가용영역
- 데이터 센터의 클러스터
- 다른 가용 영역의 장애로부터 격리됨
엣지로케이션
- Route53
- CloudFront
모듈 2-1 - 인프라 서비스(EC2/VPC)
EC2
- 크기 조정 가능한 컴퓨팅 파워
- 컴퓨팅 리소스 완전 제어
- 새로운 서버 인스턴스 확보 및 부팅 시간을 단축
EC2 정보
컴퓨팅 요구 사항의 변화에 따라 컴퓨팅 파워를 조정 실제로 사용한 용량만큼만 지불(초단위 요금으로 변경됨) 안정성을 위해 여러 리전과 가용 영역에 걸쳐 배포 태그를 사용하여 리소스를 관리
AMI 선택기준
EC2 선택기준
인스턴스 메타데이터
- 인스턴스에 대한 데이터
- 실행 중인 인스턴스를 구성 또는 관리 하는 데 사용할 수 있다. **public associate « 확인 필요 **
예 164.254.169.254/latest/meta-data
인스턴스 사용자 데이터
- 시작 시에 인스턴스에 전달될 수 있다.
- 공통적인 자동화 구성 작업을 수행하는 데 사용할 수 있다
- 인스턴스가 시작된 후에 스크립트를 실행한다.
ssh 로 접속하여 설정을 할 필요 없이 인스턴스 실행(생성)시 딱 한번만 쉘 스크립트를 실행 시킬 수도 있다
예 164.254.169.254/lastest/user-data
VPC
- AWS 클라우드에서 격리된 프라이빗 가상 네트워크를 프로비저닝 한다.
- 가상 네트워킹 환경을 완벼갛게 제어할 수 있다.
VPC 및 서브넷
- 서브넷은 VPC 내 IP 주소 범위를 정의한다.
- 선택한 서브넷에서 AWS 리소스를 시작할 수 있다.
- 프라이빗 서브넷은 인터넷으로 엑세스가 가능해서는 안 되는 리소스에 사용된다.
- 퍼블릭 서브넷은 인터넷으로 엑세스 할 수 있는 리소스에 사용된다
- 각 서브넷은 하나의 가용 영역 내에 모두 상주해야 하며, 다른 영역으로 확장할 수 없다.
VPC 영역을 /
기법으로 표기해서 범위를 지정한다
10.0.0.0/16
VPC 범위가 매우 크므로 (2^16) 더 작은 범위의 서브넷을 구성하여 작업가능한다.
VPC는 기본적으로 내부에서만 통신가능한 사설 네트워크 이므로 게이트웨이로 라우팅 규칙을 세팅해서 통신한다.
VPC의 보안
- 보안그룹 (인스턴스 기반의 보안그룹)
- 네트워크 ACL(액세스 제어 목록) -> 네트웍 기반의 방화벽으로 제일 앞단에 있는 방화벽 서비스다
- 키 페어
라우팅 테이블 -> 네트워크 ACL-> 서브넷 -> 보안그룹
모듈 3 - 스토리지 S3/Glacier
S3
- 인터넷용 스토리지
- 기본적으로 온라인,
HTTP
기반 액세스 - 웹을 통해 언제 어디서든 원하는 양의 데이터를 저장하고 검색할 수 있는 스토리지
- 고도의 확장성, 안정성, 속도 및 내구성
S3의 개념
- 데이터를 버킷 내에 객체로 저장
- 객체는 파일과 해당 파일을 설명하는 모든 메타데이터(선택사항)로 구성됨
- 하나의 계정에 최대 100개의 버킷 보유 가능 (요금폭탄을 막기 위한 LIMIT)
- 버킷 및 버킷의 객체에 대한 액세스 제어 가능
객체 키
객체 키는 버킷 내 객체의 교유한 식별자
예
http://doc.s3.amazonaws.com/2006-00-01/AmazonxS3.html
// doc -> 버킷
// 2006~html -> 객체/키
NoSQL
과 같은 키-밸류 스토어라고 이해해도 무방
S3에 대한 정보
- 버킷에 저장할 수 있는 객체 수에는 제한이 없다
- 객체 크기 최대 5TB, 버킷 크기에는 제한이 없다 (기본설정은 5GB)
- HTTP/S 엔드포인트를 사용하여 웹에서 언제 어디서든 원하는 양의 데이터를 저장 및 검색할 수 있다.
- 서버 측 암호화를 하거나, 고객이 관리하는 클라이언트 측 암호화를 하도록 선택할 수 있다
- 엑세스 로그를 감사 목적으로 사용할 수 있다.
- 표준 기반
REST
및SOAP
인터페이스를 제공
S3 보안
- 다음을 통해 버킷 및 객체에 대한 엑세스를 제어할 수 있다
- ACL
- 버킷정책
- 보안그룹
버전관리
- S3 자체로 버전관리 지원
- 모든 업로드에 대해 새 버전을 생성한다.
- 삭제된 객체를 쉽게 검색하거나 이전 버전으로 롤백할 수 있다.
- 기본은 버전 관리 되지 않음
- 버전관리르 중단하더라도 이미 버전관리된 객체들이 자동으로 지워주진 않음
- 수동으로 지워줘야 한다
객체 수명 주기
수명 주기 관리는 S3가 객체의 수명 주기 동안 객체를 관리하는 방법을 정이한다. 버킷 내에 저장되는 다음과 같은 객체는 수명주기가 잘 정의되어 있다.
- 로그 파일
- 문서 아카이브
- 디지털 미디어 아카이브
- 장기 데이터베이스 백업
- 규제 준수를 위해 보관해야 하는 데이터
사용예 30일이 지난 특정 데이터는 접근이 없을 경우 수명주기 관리를 통해 정책을 셋팅해서 백업 혹은 삭제되도록 설정 가능 액세스 하진 않지만 보관은 해야하는 데이터들
요금 정책은 AWS 월 사용량 계산기를 참고하여 S3 요금을 산정해볼 수 있다.
Glacier
- 저렴한 장기 아카이빙 서비스
- 자주 액세스하지 않는 데이터에 최적
- 검색에 3~5시간 소요
S3
와 Glacier
사이의 서비스도 존재한다 S3 - Infrequent Access(IA)
객체를 복원하는데 Glacier
보다는 시간이 적게 걸리지만 역시 자주 액세스하지 않는 데이터에 적합한 스토리지 서비스
EBS
- 일관되고 지연 시간이 짧은 성능을 제공하는 영구 블록 수준 스토리지
- 저장된 데이터는 가용 영역 내에서 자동으로 복제됨 (다른 AZ에서는 접근 불가)
- 스냅샷은 S3에 안정적으로 저장됨
인스턴스 스토어(내장디스크)의 경우 EC2에 붙어있어서 중지 및 삭제시 같이 삭제가 되지만 EBS는 EC2에 Attach 되어 있는 느낌으로 생각 즉 EC2를 삭제하더라도 EBS의 데이터는 영구적으로 보존 할 수 있다.
EBS
는 같은 가용영역에만 데이터가 보존 및 저장되므로 가용성을 위해 EBS의 스냅샷을 다른 AZ
에 두는 방법으로 구성 할 수 있다.
수명주기
생성 -> 연결 -> 사용중 -> 스냅샷 생성 -> Detach CreateVolume 호출 AttachVolume 호출하여 EC2와 연결
볼륨 유형
- SSD
- I/O 크기가 작고 읽기/쓰기 작업 빈도가 높은 트랜잭션 워크로드에 적합
- IOPS 성능이 뛰어남
- HDD
- 대규모 스트리밍 워크로드에 적합
EBS에 대한 정보
- 볼륨 전체를 암호화가능
- 암호화 된 상태로 스냅샷 생성 가능
모듈 4 - 보안, 자격 증명 및 액세스 관리
VPC / IAM
IAM
사용자 인증 / 권한 / 역할 등을 설정 하여 사용하는 서비스
SDK
혹은 CLI
를 사용하려면 사용자 액세스 키와 비밀키를 설정하여 사용 가능 실제로 관리 콘솔에서 메뉴에 접근할대 해당 사용자의 키 들이 내부적으로 페이로드로 전달되어 통신되고 있다 유저 생성과정에서 키를 사용할지 아이디패스워드를 사용할지 혹은 둘다 사용할지 선택할 수 있으며 패스워드만 사용하더라도 내부적으로는 액세스키와 비밀키가 생성되어 통신되고 있다.
역할
최소권한의 원칙을 달성하기 위한 방법중 하나를 제공해주는 서비스
역할은 특정 용도(트러블슈팅)를 수행할 사용자를 지정하여 사용할 수 있다. 이때 역할을 부여 받은 사용자는 기존의 자신이 속한 그룹의 권한은 모두 없어지고 주어진 역할에 해당하는 권한만 가지게 된다
정책은 사용자 뿐만 아니라 그룹에도 ==지정==할 수 있고, 역할을 Detach 하지 않은 한 영구적으로 지속된다. 역할은 사용자 혹은 AWS리소스에 ==맡긴==다고 생각하면 된다.
역할의 모자 아이콘을 연상해서 생각해보면 편하다
소스상에 액세스키를 하드코딩하여 입력하지 않고 리소스에 역할을 부여해서 사용하는게 Best Case
CloudTrail
계정에 대한 API호출을 기록
모듈 5 - 데이터베이스
하나로 모든 요건을 충족할 수는 없다. 다음을 고려하여 데이터 요구 사항을 분석한다.
- 데이터 형식
- 데이터 크기
- 쿼리 빈도
- 데이터 액세스 속도
- 데이터 보존 기간
RDS
- 일반적으로 온프레미스 환경에서 사용하던 관계형 데이터베이스와 동일
- 관계형 데이터베이스 를 응용레벨에서만 이용한다고 생각하면 된다.
DB 인스턴스
관리형 서비스로 클라이언트로 사용
자동백업
- 기본적으로 활성화 되어 있음
- 최대 35일까지 지정가능
다른 리전에 스냅샷을 카피 하여 사용할 수 도 있다. (사실상 마이그레이션 과정이 생략)
보안
VPC안에서 DB 인스턴스 실행 암호화가 가능하고 스토리지 레벨에서 암호화가 된다고 보면 된다. 엔진레벨의 암호화도 상용 DB의 경우 사용가능( 오라클 MSSQL등..)
이중화
옵션 선택으로 이중화가 가능하다 Multi-AZ
:동기방식의 복제 서비스
DynamoDB
완전 관리형 NoSQL 데이터베이스 서비스 RDS보다 훨씬 더 관리형 - 완전 관리형이라고 보면 된다 실제로 테이블(키)만 만들어서 사용가능한 키 밸류형태의 데이터베이스
RDS와의 가장 큰 차이점은 성능을 선택하여 튜닝이 가능하다
row : 항목 or 아이템 column : 속성
모듈 6 - 관리도구
- ELB
- Auto Scailing
- CloudWatch