AWS 개념 정리
AWS 세미나에서 들었던 AWS 기초 개념 정리
# aws 글로벌 인프라
- Region - seoul 포함 11개 사용 가능
* AWS GovCloud (US) 또는 중국(베이징)와 같은 추가 리전은 AWS 계정으로부터 설명 또는 액세스할 수 없음
* GovCloud (US) 리전은 미국 정부(국방부?)에서 사용하는 리전으로 알고 있음
* 중국(베이징) 리전은 중국에서 승인받은 계정이 있어야 사용 가능한 것으로 알고 있음
| 미국 동부(버지니아 북부) |
| 미국 서부(오레곤) |
| 미국 서부(캘리포니아 북부 지역) |
| EU(아일랜드) |
| EU(프랑크푸르트) |
| 아시아 태평양(싱가포르) |
| 아시아 태평양(도쿄) |
| 아시아 태평양(시드니) |
| 아시아 태평양(서울) |
| 아시아 태평양(뭄바이) |
| 남아메리카(상파울루) |
* 가용영역 : 데이터 센터 , 물리적으로 떨어져있어도 하나의 논리적인 가용영역으로 묶음
- Edge - DNS, SDN 서비스
사이에 전용선으로 연결되어 있음
# AWS Management Console
- 우측상단 region 선택 가능
- 왼쪽에 자주 사용하는 기능들 모아놓음 (가상서버구성, DB설정, 네트워크설정 등)
- Auto Scaling Group : 트래픽이 많이 몰리면 자동으로 서버 증축
* Could Watch: 인스턴스 in/out 모니터링 , CPU 사용량 등
* SNS: noti 서비스
- ELB : Elastic Load Balance
- RDS : AWS에서 관계형DB 서비스 제공
# 1. Network
- VPC (Virtual Private Cloud) : 클라우드 리소스의 격리
* Default VPC : public subnet 자동으로 구성 (인터넷 연결)
* Custom VPC : 임의로 구성 (public, private 구성 가능)
- 다른 VPC 사이에는 연결이 안됨 (public은 인터넷으로는 연결이 됨)
- VPC Peering : VPC 사이의 연동
- ex) WAS, DB는 private으로 WEB서버랑만 통신하도록
- #보안#
* Network ACL : 서브넷 단위로 동작
> 기본값: 전부 허용
> Rule 넘버 작은수가 덮어씀 (같은 설정의 경우)
> 상테: 비저장(stateless)
* Security Group : 서버 단위로 동작
> 기본값: 전부 차단
> 상태: 저장(stateful) => outbound 차단해도 inbound만 허용이더라도 통신 가능
# 2. Compute
- EC2 (Elastic Compute Cloud)
* AMI (Amazon Machine Image) : VMware Image
* 온 디맨드 인스턴스 : 시간당 과불, 타입 별 시간당 요금
* 예약 인스턴스 : 1년 혹은 3년 계약 => 고정적으로 소요하는 인스턴스에 대한 예약...
* 스팟 인스턴스 : 경매, 사용중에도 팔리면 인스턴스 종료... 단기간에 싸게 사용할 떄 사용
- ELB (Elastic Load Balancing)
* 도메인까지만 제공, 실제 인스턴스에는 접근 불가
* Health check : 죽어있는 서버에는 제공 안함
* 부하가 되면 자동적으로 사양이 높은 인스턴스로 변경 => 더 늘어나면 서버 증축
> 새로운 인스턴스 만들고 교체하는 시간이 있음 (약 5분) , 그 전에 몰리면 ELB 죽을 수도 있음
> AWS 측에 문의하여 준비해야함
* SSL Termination :
외부 > ELB (Https 통신) , ELB > 인스턴스 (Http 통신)
- Auto Scaling
* 서버 수를 늘려줌, 인스턴스 타입 변경은 안됨
* 조건에 따른 실행
* 예약에 따른 실행
* 현재 값 유지 => 2대유지, 한대 죽어도 새로 한대 만들어서 2대 유지
# 3. Storage
- EBS(Elastic Block Store)
* network로 인스턴스와 장착
* 장착 후 로컬 디스크처럼 사용
* 스냅샷으로 새로운 EBS 생성 가능, 스냅샷은 S3에 저장됨
> 스냅샷 S3 : Region에 영향, 다른 가용영역에 EBS 생성 가능
* EBS : 생성한 볼륨 크기 만큼 비용 발생 => 삭제를 하지 않으면 계속 비용 발생
* 가용영역 내에서만 영향 (동일한 가용영역의 인스턴스에만 장착 가능)
* 내구성 99.999% , 자동으로 데이터 복제 (가용영역 내에서)
* EBS Type
> EBS 마그네틱 : 테스트
> SSD : 일반
> IOPS SSD : DB 구성
# root 계정 / user 계정
- user 별로 Access Key/Secret Key 생성 가능
# Instance Type
- T 계열 : 테스트 용도 , 저사양
- M : 일반 서비스
- C : CPU 특화
- R : 메모리 특화
- D,I : 스토리지
# Instance storage
- EBS Only : instance STOP => 데이터는 별도의 영역에 보관
- SSD : 휘발성... instance STOP => 물리적인 인프라 날리면서 같이 삭제됨
# Restart vs STOP : 다른 것이다!!
STOP : 과금 발생 안함, 메타데이터만 남기고 물리적인 인프라 날려버림...
# network
10Mbps - Low(nano, micro, small, medium)
100Mbps - Large
250Mbps - Xlarge
1Gbps - 2Xlagre ~ 4Xlagre
10Gbps - 8XLarge ~
# EBS Optimized
- 인스턴스와 EBS 사이의 네트워크 별도로 분리, bandwidth 고정
- 외부와 통신할 수 있는 네트워크와 분리
# 권한 설정
1. IAM role (인스턴스 생성 시 해줘야함... 중간에 추가 못함) - IAM role 껍데기 넣어주고 나중에 IAM role 수정...
2. access key / secret key (노출 주의)
- user가 생성... user의 권한과 동일함
# Tag instance : 구분하기 위한 naming
- tag 습관화 (나중에 구분하기 힘듦)
# Elastic IP
고정 IP 할당해서 고정으로 사용
# 인스턴스 연동 ID
아마존 Linux : ec2-user 고정ID
# create an internal load balancer
VPC 내부에서 쓰이는 Load-Balancer (외부와 연결 X)
# create auto scaling group
Health Check Type
- ELB : ELB가 헬스 체크 하는 것을 사용
- EC2 : CloudWatch가 체크 하는 것을 사용
Suspended Processes
- life cycle중 해당 지점에서 확인하고 서비스해라...
* addToLoadBalancer : ELB에 추가하기 전에 중단... => 사용자가 보고 서비스 할 수 있음
Termination Policies
- 서비스 종료하는 정책... (최근에 만든것 종료 / 예전에 만든것 종료)
Auto scaling Policy
- 언제 scale out/in 할지 조건을 설정
# CLI 명령어 => 'aws'로 시작
$ aws s3 ls 등
# Object Storage
# S3
- 버킷 : S3에서 독립적으로 사용하기 위해 생성
* 버킷 명은 글로벌하게 유니크함
# 4. Database
# RDS (Relational Database Service)
- 지원하는 RDBMS 종류 제한적 (6개)
* Amazon Aurora, Oracle, Microsoft SQL Server, PostgreSQL, MySQL, MariaDB
- Multi-AZ : master-slave 관계 생성
- Read-Replica : read 전용 백업 만들어서 부하 줄임 (다른 region에서도 생성 가능)
# 5. CDN (CloudFront) : Caching
- 사용자가 ELB 혹은 CloudFront로 접근 가능
# 6. DNS
- Route 53 : 글로벌 DNS