프로그래밍/AWS

AWS 개념 정리

깔삼 2016. 10. 5. 10:59

AWS 세미나에서 들었던 AWS 기초 개념 정리


# aws 글로벌 인프라

- Region - seoul 포함 11개 사용 가능

 * AWS GovCloud (US) 또는 중국(베이징)와 같은 추가 리전은 AWS 계정으로부터 설명 또는 액세스할 수 없음

  * GovCloud (US) 리전은 미국 정부(국방부?)에서 사용하는 리전으로 알고 있음

  * 중국(베이징) 리전은 중국에서 승인받은 계정이 있어야 사용 가능한 것으로 알고 있음

us-east-1

미국 동부(버지니아 북부)

us-west-2

미국 서부(오레곤)

us-west-1

미국 서부(캘리포니아 북부 지역)

eu-west-1

EU(아일랜드)

eu-central-1

EU(프랑크푸르트)

ap-southeast-1

아시아 태평양(싱가포르)

ap-northeast-1

아시아 태평양(도쿄)

ap-southeast-2

아시아 태평양(시드니)

ap-northeast-2

아시아 태평양(서울)

ap-south-1

아시아 태평양(뭄바이)

sa-east-1

남아메리카(상파울루)

 * 가용영역 : 데이터 센터 , 물리적으로 떨어져있어도 하나의 논리적인 가용영역으로 묶음

- 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