가용성(Availability)
가용성은 서비스 가용성이라고도 표현하는데, 워크로드를 사용할 수 있는 시간의 비율(정도)를 말한다.
고가용성(High Availability)
고가용성, 즉 높은 가용성은 지속적으로 구현한 시스템이 정상적으로 운영이 되는 성질을 의미한다. 즉, 고가용성은 장애 또는 고장이 나더라도 복구를 해서 서비스를 지속할 수 있는 능력을 말한다.
Region
Region은 전 세계에서 데이터센터를 클러스터링하는 물리적 위치를 말한다. 일반적으로 어떤 지역으로 서비스하느냐에 따라 지리적으로 가까운 Region을 선택하게 된다.
Region Code
예를 들면 'us-east-1, ap-northeast-2'와 같은 형식으 Region을 구분하는 Code가 존재한다. AWS는 Region 단위로 별도 서비스되는 형태이다. Resource는 Region 내 Availability Zone 단위로 배포된다.
Availability Zone(AZ)
Availability Zone은 Region 내 물리적으로 분리된 전력 네트워킹 장치가 분리된 영역을 말한다. 보통 AZ 별 데이터센터로 분리된 구조이다. 이때 AZ 사이는 물리적으로 100km 이내에 존재한다.
AZ간 구성
Rigion은 보통 2~3개의 Availability Zone으로 구성되어 있다. 동일 Region 내 AZ는 전용 광 네트워크로 구성되어 매우 낮은 지연속도와 높은 처리량이 보장된다. 이때 AZ간 모든 데이터 트래픽은 기본적으 암호화 되어있다.
AZ 분산 배치
만약 동일 Availability Zone 내 모든 인스턴스를 배치하는 경우, 해당 AZ 장애 발생시, 본인이 구축한 서비스도 장애로 이루어질 수 있다. 따라서 동일 역할을 수행하는 인스턴스의 경우, AZ를 분산 배치하여 서비스 가용성을 높이는 것이 좋다.
AZ와 VPC
Region - VPC 맵핑, Availability Zone - Subnet 맵핑을 할 때 Instance 생성시 VPC와 Subnet을 분산하여 배포한다.
VPC 구성 시, 목적에 따라 Subnet을 구분하여 생성할 수 있다.
- Public Subnet: 외부 통신용
- Private Subnet: Public과 Private 간 연동용
또한 Availablity Zone에 따라 Subnet을 구성할 수도 있다.
- 각각의 Subnet을 AZ 수 만큼 생성
- Total Subnet 수 = AZ Count x 용도별 Subnet
- 인스턴스 생성시 각 사용처에 맞는 Subnet을 선택 후, AZ별로 분산 구성
위와 같이 구성하게 되면 AZ 장애 발생 시, 동일 용도의 인스턴스 및 서비스 Set이 다른 AZ에 구성되어 있으므로 가용성을 높일 수 있다.
Load Balancer
Load Balancer는 인입되는 트래픽을 특정 알고리즘 기반으로 다수의 서버로 분산시켜주는 장비이다.
ELB(Elastic Load Balancer)
AWS의 ELB(Elastic Load Balancer)는 Region 내 인스턴스 및 다양한 서비스로 트래픽을 분배해 주는 서비스이다. ELB는 다수의 Availablity Zone으로 트래픽을 분배한다. 또한 Availablity Zone 분산 및 Traffic 증가 시 자동 Scale-out 기능을 지원한다.
ELB는 다음과 같은 type이 있다.
Scale-Out/In
Scale-out은 트래픽 증가 시, 서비스에 투입되는 서버를 증설하여 각 서버가 처리하는 부하를 낮추는 방식이다. web based 서비스의 경우 많이 사용하는 구성으로, session이나 data 처리 영역 없이 stateless한 서버에 주로 사용한다.
Scale-in은 트래픽 감소 시, 배포된 서버를 제거하는 방식이다. 낭비되는 리소스를 줄임으로서 비용 최적화를 목적으로 한다.
ELB 알고리즘
ELB 알고리즘은 어떤 규칙으로 트래픽을 인스턴스로 분배할 것인가에 대한것이다.
- Roud Robin: 공평하게 일 분배
- Hashing
- Weighted RR: 각 성능이 다르기 때문에 가중치 설정
- Least Connection
- Weighted LC
ELB 헬스체크 기능
주기적으로 서버가 정상 상태인지 확인하고 정상상태가 아닌 서버에게는 트래픽을 전달하지 않게 하는 기능을 제공한다.
ELB AZ 분산배치
활성화된 AZ에는 로드밸런서 노드가 자동으로 생성되어 배치된다. 기본적으로 해당 AZ에 배치된 타겟(인스턴스)는 해당 AZ의 로드밸런서 노드가 트래픽을 처리한다.
Cross-Zone Load Balancing
교차 영역 로드 밸런싱이 활성화 되면, 로드 밸런서가 위치한 AZ과 상관 없이 타겟 AZ에 있는 모든 인스턴스에 트래픽 라우팅이 가능하다.
교차 영역 로드 밸런싱이 비활성화 상태이면, 로드 밸런서 노드가 위치한 AZ에 상주하는 타겟 인스턴스에게만 라우팅이 가능하다. 이 때는 AZ에 위치한 인스턴스 마다 균일한 부하 분산이 어렵다.
ASG(Auto Scaling Group)
Auto Scaling은 Scaling을 자동으로 해주는 서비스이다.
ASG 설정
- Auto Scaling은 무엇을 대상으로 할 것인가?
Launch Template: AMI, Instance Type 등 Instance에 대한 정의 - 자동 설정 정책을 어떻게 설정할 것인가?
Auto Scaling Group:Desired Capacity, Min/Max Size, Target Group 등 자동 확장에 대한 정의
Launch Template
Launch Template은 인스턴스를 배포하기 위한 정보들의 묶음이다. 기본 정보는 AMI, Instance Type, Keypair, Security Grop, Network와 같은 것들이 있다. IAM Role, Userdata, Tags 등 추가 정보를 Template으로 정의 가능하다. 사용자는 해당 Template을 그대로 인스턴스로 배포하는데 사용한다.
Auto Scaling Group 구성 단계
- Launch Template
Launch Configuration - ELB
- Auto Scaling Group
'IT 인프라' 카테고리의 다른 글
[클라우드] AWS 주요 리소스 & 비용 모니터링 (0) | 2024.05.29 |
---|---|
[클라우드] AWS 모니터링 - CloudWatch (0) | 2024.05.28 |
[클라우드] AWS(Amazon Web Service) - EC2, VPC, EBS, S3 (0) | 2024.05.27 |
[클라우드] 가상화 및 클라우드 (0) | 2024.05.27 |
[IT 인프라] 클라우드(Cloud) (0) | 2024.05.13 |