용어 설명

Available Zone(가용영역)

안에 2개이상의 가용영역, 엣지 로케이션(CDN, Cache server)으로 구성 가용영역은 하나의 데이터 센터로 볼 수 있고 같은 리전의 가용영역은 물리적으로 (0 ~ 100)KM 이상 떨어져 있음

ddd1

https://www.youtube.com/watch?v=tvwDDM-Y-qE&list=PLfth0bK2MgIan-SzGpHIbfnCnjj583K2m&index=5

각 사용자가 바라보는 가용영역의 물리적 위치를 변경함으로 서로 섞이도록 설정된다.

ARN (Amazon Resource Number) AWS 모든 resource 의 고유 아이디 arn:[partition]:[service]:[region]:[account_id]:[resource_type]/resource_name/(qualifier)
아스타링크(*) 로 다수의 resource 지정 가능

글로벌 서비스 CloudFront
IAM
Route53
WAF

지역 서비스 S3
기타 대부분 리소스

HVM (Hardware Virtual Machine)
하드웨어에서 직접 가상화를 지원
ddd1

https://www.youtube.com/watch?v=hb_4Tf6bAtY&list=PLfth0bK2MgIan-SzGpHIbfnCnjj583K2m&index=7

Guest-OS 가 하드웨어와 통신하는 것과 거의 비슷한(near bare-metal) 빠른 속도를 제공한다

AWS 에 제공하는 EC2 에서 위 기술을 사용한다.
ddd1

EC2

EC2 구성 4가지

인스턴스 - 가상 CPU, 메모리, 그래픽 리소스
EBS - Elastic BLock Storage, 가상 하드디스크
AMI - Amazon Machine Image, 인스턴스 실행을 위한 이미지, 우분투, Aws Linux 등 지원 보안그룹 - 가상 방화벽

기본적으로 EC2 생성시 위 4가지 구성을 설정해야 생성된다.

가격모델

On Demand 시간(초) 측덩된 가격을 지불

Reserved Instance(RI) 미리 일정기간 약정하여 사용, 최대 75% 할인

Spot Instance 경매형식으로 남은 instance 를 구매, 최대 90% 할인 언제 종료될지 모름, 머신러닝, 빅데이터 시스템에서 효율적

Dedicated 전용 호스트, 실제 물리적 서버 임대 보안, 규정, 라이센스 등의 이슈가 있을 경우 사용

통신요금
외부로 나가는 트레픽에 대해서만 청구되며 내부로 들어오거나 리전간의 통신에서는 요금을 부과하지 않는다.

저장공간 요금

인스턴스 유형

Amazon EC2 m5a small

앞의 알파벳은 인스턴스 타입(m: 유형) 숫자는 타입별 세대(5) 뒤의 접두사 아키텍쳐 타입(a: amd) 마지막은 사이즈(small)

인스턴스 타입 종류는 t, m 타입이 범용적으로 많이 사용됨
ddd1

EBS(Elastic BLock Storage)

EC2 에서 사용하는 가상 하드티스크로 네트워크에 연결되어 read/write 된다.
EC2 인스턴스를 변경하는 경우에 유연하게 변경 가능
단 같은 가용영역에 있는 경우에만 접속 가능

인스턴스의 실행을 담당하는 root volume 으로 사용할 수 있으며 default 로 선택되는 스토리지 유형이다.
인스턴스가 정지될 경우 EC2 요금은 내지 않고 EBS 요금만 내면 된다.

설정을 통해 인스턴스 삭제시에 EBS 삭제를 막을 수 있다.

아래와 같은 EBS Type 이 존재한다.

ddd1

실제 aws 에서 EC2 생성시 아래와 같은 설정을 할 수 있다.

ddd1

Snapshot

EBS 를 유지할 경우에는 비용을 위해 EBS 요금을 내지 않고
스냅샷 형식의 효율적인 형태로 S3 에 저장하여 싼 요금으로 유지할 수 있다.

AMI(Amazon Machine Image)

아래 4가지 중요한 요소를 가진다.

EC2 인스턴스 실행을 위한 단위 정보
OS, 아키텍쳐, 리소스 사용량 등
Snapshot 을 기반으로 AMI 구성이 가능하며 EC2 를 복제 및 다른 리전, 다른 계정에게 공유 가능하다.

Instance Storage

실제 EC2에 저장되는 저장공간은 네트워크 기반 EBS 와 인스턴스 저장 기반 Instance Storage으로 나뉜다.

Instance Storage 는 EC2 중지, 삭제시 같이 삭제된다, 대신 속도가 빠르다.

생명주기

ddd1

인스턴스 중지중에는 EBS 요금만 청구 인스턴스 중지후 재시작시 IP 변경됨

인스턴스 재부팅시에는 IP 변경 없음

중지와 최대절전의 차이는 메모리 내용 보존여부 최대절저은 인스턴스 사용 요금이 청구된다.

Auto Scaling

Vertical Scale(Scale Up): 성능을 올리기 위해 하드웨어의 성능을 올리는 방식, 성능이 올라갈수록 비용이 크게 증가한다. 성능 상승의 한계가 있음

Horizontal Scale(Scale Out): 성능을 올리기 위해 하드웨어의 대수를 올리는 방식, 성능과 비용이 비례로 올라간다.

클라우드 환경에선 스케일 아웃 방식의 오토 스케일링을 주로 사용된다.

오토 스케일링시에 무엇을, 언제 실행시킬지 지정해야 하는데

무엇을 실행시킬지 EC2, AMI, IAM(보안그룹, key), 유저데이터시작구성을 설정하여 지정하고

언제 실행시킬지는 CloudWatch(CPU 점유율, 인스턴스 개수), ELB(Elastic Load Balancer) 를 통해 확인할 수 있다.

Instance 의 시작템플릿, Auto Scaling 의 Auto Scaling Group 을 통해 다양한 설정을 할 수 있으니 참고

ELB(Elastic Load Balancer)

Auto Scaling 등을 통해 다수의 Instance 를 생성했을 때 로드밸런싱을 위한 서비스

또한 Sticky Session 기능을 지원하여 client-server 간의 세션을 기억하고 있다가 같은 서버로 패킷을 전송하는 역할도 지원한다.

Load Balancer 종류

Gateway Load Balancer 의 경우 아래 사진처럼 패킷을 받아 일련의 전처리 후 전달하는 역할을 한다.
ddd1

ALB(Application Load Balancer)

ALB 가 라우팅할 대상그룹

위 3개 외에도 ALB 가 다른 ALB 에게 다시 트래픽을 전달할 수 있다.

또한 프로토콜(HTTP, HTTPS, GRPC)지정 가능, 기타설정(분산 알고리즘, 고정세션) 등을 지정할 수 있다.

ddd1

위 그림처럼 Load BalancerTarget Group(대상 그룹)으로 Auto Scaling Group 을 지정할 수 있으며 Health Check 를 통해 연동기능또한 제공한다.

Auto Scaling Group 애서 상태확인 속성에서 ELB체크 옵션을 통해 연동할 수 있다.

VPC(Virutal Private Cloud)

https://www.youtube.com/watch?v=FeYagEibtPE&list=PLfth0bK2MgIa6w63IglYQD_qljDntSh-H&index=8 https://www.youtube.com/watch?v=ZISUSL431bY&t=478s

ddd1

하나의 AZ 안에서 논리적으로 격리된 공간, 서브넷, 라우팅, 게이트워이 구성을 통해 네트워크 환경 구축이 가능함

계정 생성시 기본적으로 모든 리전에 Default VPC 가 자동으로 생성되어 있다.

삭제시에 다시 재생성하기 매우 까다로움으로 삭제X 권장

처음 EC2 생성시에 자동으로 네트워크 IP 설정 및 인터넷에 접근가능한 이유가 AWS 에서 편의를 위해 만들어준 Default VPC 때문

Default VPC 에 생성된 EC2private IPpublic IP 둘다 가지고 있다.
반면 Custom VPC 는 폐쇄적인 네트워크(private 서브넷) 구성을 만들고 싶거나 할 경우 생성한다.

만든 Custom VPC 2개는 원래대로라면 서로 통신 불가능하지만 VPC Peering 을 통해 하나로 묶인것 처럼 사용 가능하고 다른 계정 과 RegionVPC 간에도 연결 가능하다.

VPC PeeringVPC 두개로 짝을 이루기 때문에 VPC 여러개를 모두 하나의 네트워크로 사용하려고 할경우 각 VPC Peering 을 모두 설정해주어야 한다.

또한 VPC 에 들어갈 리소스는 모두 한 Region 안에 포함되어 있어야 한다.

VPC 생성시 Route Table, NACL, Security Group 등의 네트워크 리소스가 자동으로 같이 생성된다.

보안그룹(Security Group)

EC2 의 방화벽역할을 해주는 서비스, 인스턴스에 대한 인바운드, 아웃바운드 트래픽을 제어하는 가상방화벽

EC2 의 네트워크 그룹이라 할수 있는 VPC보안그룹을 설정가능하고 EC2 단위로도 설정 가능하다.
최대 5개까지 EC2에 설정 가능하다.

Allow 처리만 가능한 화이트리스트 형식으로 운영되기 때문에
특정 Ip, PortDeny 하는 작업은 불가능하다.

NACL (Network Access Control List)

보안그룹(Security Group) 과 다르게 블랙리스트 형식으로 운영되며 VPC 생성시에 기본적으로 생성된다. 맨 아래 default rule 로 모든 인바운드, 아웃바운드에 대해 거부하도록 세팅되어있다.
보안그룹과 반대로 Deny 기능이 있기때문에 블랙리스트 정책 추가 가능하다.

Stateless 이기 때문에 인바운드, 아웃바운드에 설정처리를 모두 해주어야 원할한 패킷 통신이 가능하다.
일반적으로 클라리언트가 임시로 열은 언노운 포트인 1024 ~~ 65535(TCP) 를 모두 허용정책에 넣는다.

서브넷(Subnet)

VPC 안의 네트워크 그룹인 서브넷은 사용자가 별도로 생성해주어야 한다.
CIDR(Classless Inter-Domain Routing) 설정을 통해 서브넷 안에서 생성되는 리소스들이 어떤 IP 를 할당받아 생성될지 지정 가능

자동 IP 할당 기능도 제공한다

서브넷 AZ 에 종속적이며 하나의 서브넷으로 여러 AZ 의 리소스에 IP를 할당하는 작업은 불가능하다.

서브넷은 아래 2가지 종류로 나뉜다.

계정 생성시 Default VPC 가 생성되고 할당된 AZ 가 2개라면
AZ 별로 Public, Private 서브넷 이 하나씩 생성되어 총 4개가 생성되어야 한다.

대부분의 인스턴스들은 보안을 위해 Private 서브넷에 할당되며 Public Subnet 에 할당된 베스천 호스트 를 통해 경유접속한다.

라우팅 테이블(Route Table)

VPC 생성시에 자동으로 만들어지며 생성되는 Default Route Table 이 있으며 서브넷 마다 별도로 Route Table 설저이 가능하다.

그림에서와 같이 게이트웨이를 통해 위부로 나가거나 다른 서브넷으로 이동할 수 있도록 라우팅 정보를 설정 가능하다.

ddd1

그림을 보면 Public 서브넷에 설정된 InstanceNAT Gateway 는 모두 Elastic IP 를 통해 공인IP를 부여 받았으며 별도로 서브넷 사설IP를 가지고 있다.

외부에선 저 Elastic IP 를 사용하여 바로 리소스로 접근이 가능하다.

각 서브넷에는 Route Table 이 설정되어 있으며 Private 서브넷의 경우 외부로 나가는 경로가 NAT Gateway 를 바라보고 있다.
먼저 NAT Gateway 로 갔다가 다시 Router 를 통해 외부와 연결되는 방식이 사용된다.

IGW(Internet Gateway)

AWS 에서 관리하는 고가용성 매니지드 서비스, VPC 내부에 생성된 서브넷을 외부로 연결하고 싶을때 연결한다.

IGW 와 연결된 서브넷의 경우 public 서브넷, 그렇지 않을경우 private 서브넷 으로 칭한다.

NAT Gateway

IGW 와 마찬가지로 AWS 에서 관리하는 매니지드 서비스, IGWVPC 를 인터넷에 연결한다면 NATprivate 서브넷을 인터넷에 연결시키는 역할을 한다.

NAT Instance 라고 단일 인스턴스(EC2)로 NAT Gateway 역할을 하는 서비스도 있는데 트래픽에 따른 성능 부담때문에 자주 사용되진 않는다.

베스천 호스트(Bastion Host)

역으로 외부에서 private 서브넷 접근하기 위한 인스턴스이다(EC2)를 부르는 이름, public subnet 에 위치하여 public IP 를 할당받고 public 서브넷에 설정된 라우팅에 의해 private 서브넷으로 접근 가능하다(외부 -> public -> private 로 이동이 가능하다).

VPC Endpoint

private 서브넷 안에서 AWS 가 제공하는 여러 서비스(S3, DynamoDB)를 이용할 때
AWS의 네트워크를 벗어나지 않고 VPC 안에서 통신하는 것처럼 사용할 수 있도록 하는 서비스가 VPC Endpoint 이다.

VPC서브넷을 지정하여 endpoint 를 생성하고 생성된 endpointVPCRouting Table 에 자동으로 설정된다.

Interface Endpoint
ENI(Elastic Network Interface) 기반으로 private ip를 생성하여 각 서비스에 연결할 수 있도록 지원
(SQS, SNS, Kinesis, Sagemaker 등을 지원)

Gateway Endpoint
라우팅 테이블에서 경로를 지정 (S3, DynamoDB 만을 지원)