[4] Amazon AWS
AWS 컴퓨팅 서비스
- 퍼블릭 클라우드에서 컴퓨팅 자원을 활용하여 다양한 워크로드를 수행할 수 있는 서비스
- EC2 : 클라우드 환경에서 가상 서버를 제공하는 가장 기본적인 AWS 컴퓨팅 서비스
- ECS/EKS : 컨테이너 관리 서비스 (배포, 스케줄링, 스케일링 등)
- Lambda : 서버리스 서비스
- Lightsail : 최소한의 설정만으로 손쉽게 사용 가능한 컴퓨팅 서비스
EC2
- Elastic Compute Cloud
- AWS의 퍼블릭 클라우드 환경에서 확장 가능한 컴퓨팅 자원을 제공하여 가상의 서버를 운영할 수 있는 서비스
- 인스턴스(가상의 컴퓨팅 환경)을 사용하는 서비스를 말하며, 용량은 사용자가 선택할 수 있고, Amazon Machine Image를 이용하여 OS 및 SW를 구성한다.
- 리눅스, 윈도우, maxOS 등 다양한 OS를 지원하고 Arm, x86 등 다양한 CPU 아키텍처를 지원한다.
EC2 인스턴스 유형
- 범용 : 일반적으로 사용하는, 균형있는 컴퓨팅 자원을 제공
- 컴퓨팅 최적화 : 고성능 프로세서를 사용하는 컴퓨팅 집약적인 애플리케이션에 적합
- 메모리 최적화 : 메모리에서 대규모 데이터를 처리하는 워크로드에 적합
- 스토리지 최적화 : 대용량/대규모의 디스크 엑세스를 요구하는 워크로드에 적합
- 가속화된 컴퓨팅 : GPU 기반의 고성능 컴퓨팅이 실행되는 환경에 적합
인스턴스 유형 표기법
- t2.micro
- t : 인스턴스 패밀리를 의미, 용도에 따라 다른 문자를 할당
- 2 : 인스턴스 generation을 의미, 높을수록 최신 세대 및 고성능
- micro : 인스턴스 크기를 나타내며, 커질수록 용량이 증가
인스턴스 스토리지
- 인스턴스 스토어 : 인스턴스에 직접 연결된 스토리지, I/O 처리량 및 속도가 빠르지만, 인스턴스를 중지하거나 종료하면 데이터를 손실한다.
- Amazon EBS : 네트워킹을 통해 연결되는 스토리지, 데이터 영구 보존이 가능하다.
@네트워킹
- EC2 인스턴스가 통신이 가능하도록 지원
- Amazon Virtual Private Cloud : 인스턴스는 별도로 구성된 하나의 VPC 내부에 생성되어 네트워킹을 수행한다.
- 네트워크 인터페이스 : Elastic Network Interface라는 논리적 NIC가 VPC 내에 생성되며, ENI를 EC2 인스턴스에 연결해서 네트워킹을 수행한다.
인스턴스 보안
- 보안 그룹 : 인스턴스를 대상으로한 inbound 규칙과 outbound 규칙으로 구성되며, 대상 트래픽에 대한 허용과 거부를 결정
- 키 페어 : 퍼블릭 키는 EC2 인스턴스에, 개인키는 사용자 컴퓨터에 저장
인스턴스 모니터링
- 수동 모니터링 : 관리 콘솔 또는 CloudWatch를 통해 관리자가 직접 모니터링
- 자동 모니터링 : 모니터링을 수행할 지표(metric)를 정의한 후, CloudWatch 경보 시스템을 사용해 임계 값 기반의 알람 규칙을 설정
AWS 네트워킹 서비스
- 리전 : 전 세계 주요 도시의 데이터 센터를 군집화하는 물리적인 위치를 의미
- 내부에는 Transit Center와 Availability Zone이 서로 연결되어 네트워크 환경을 이루고 있다.
- Intra-AZ : 데이터 센터 간 연결
- Inter-AZ : 지리적으로 떨어져 있는 가용 영역끼리 연결
- 트랜짓 센터 연결 : 리전에서 외부 인터넷 구간과 통신이 필요한 경우
AWS 글로벌 네트워크와 Edge Point of Presence
- AWS 글로벌 네트워크라는 저용망을 활용해 안정적으로 고성능 서비스를 제공하는 센터
- 엣지 POP을 통해 사용자에게 서비스 콘텐츠를 빠르게 제공
- 전세계 300개 이상의 엣지 로케이션과 13개의 리전별 엣지 캐시가 서로 연결된 AWS 글로벌 네트워크를 구성하고 있다 (중국 제외)
- Amazon CloudFront : 콘텐츠 전송 네트워크 서비스
- Route 53 : 가용성과 확장성을 지원하는 DNS 서비스
- Shield : DDoS 공격에 대한 방어 및 보호 서비스
- Global Accelerator : 성능 가속화를 위한 서비스로, 네트워킹 기능의 최적화를 통해 사용자 어플리케이션의 성능을 개선하는 서비스
AWS 네트워킹 서비스 종류
- VPC : 클라우드 환경에서 가상의 프라이빗 네트워크
- Transit Gateway : 다수의 VPC나 온프레미스를 단일 지점으로 연결하는 중앙 집중형 게이트웨이(라우터) 서비스
- Route 53 : 확장 가능한 관리형 DNS 서비스
- Global Accelerator : AWS 글로벌 네트워크를 활용한 애플리케이션 가용성 및 성능 개선
- Direct Connect : 온프레미스 환경에서 AWS와 전용 네트워크 연결 서비스
- Site-to-Site VPN : 온프레미스 환경과 연결하는 암호화된 네트워크
Amazon ELB
- Amazon Elastic Load balancing
- EC2에서 운영중인 어플리케이션, 마이크로 서비스, 컨테이너 서비스 등으로 유입되는 트래픽을 자동으로 분산 처리하는 기술
- CloudWatch 기능과 결합해 logging 및 metric monitoring이 가능하다.
- 오토 스케일링 기능과 결합해 동작할 수 있다.
Amazon ELB 구성요소
- 로드 밸런서
- 대상 그룹 : 분산된 작업을 수신하여 처리할 대상의 집합
- 리스너 : LB에서 요청을 수신하고, 해당 요청을 처리할 대상 그룹을 선택해 라우팅을 수행
Amazon ELB 동작 방식
- ELB를 생성하면 설정한 가용 영역별로 LB가 생성되고, 앞단 리스너를 실행
- 리스너는 사용자 요청을 어느 대상(target)으로 라우팅 할 지를 결정
- 1. 요청 수신
- 2. 대상 그룹 선택
- 3. 트래픽 분산
- 4. 응답 반환
Amazon ELB 종류
- Classic LB : L4 및 L7 계층 프로토콜을 지원
- Application LB : 웹 어플리케이션에 특화된 LB (HTTP 헤더를 확인해 다양한 라우팅 기능 제공)
- Network LB : 대규모 네트워크 트래픽 처리에 특화된 LB (L4 계층을 위한 LB로, TCP/UDP/TLS 프로토콜을 지원)
- GateWay LB : 네트워크 트래픽을 3rd-party의 방화벽/어플라이언스 장비로 부하분산을 처리하는 LB (L3 계층 게이트웨이, 4계층 LB)
ELB 구현하기
- ELB 환경 구현을 위해서는 다수의 자원 및 복잡한 설정이 필요한데, 각각을 수작으로 하는 것은 비효율적이다.
- CloudFormation : IaC 기반으로 AWS 인프라 리소스를 자동으로 생성하는 서비스
- CloudFormation으로 인프라 배포 자동화
CloudFormation 구성 요소
- 템플릿 : AWS 인프라를 구성하고 프로비저닝 하기위해 JSON 또는 YAML 형식의 코드로 리소스 구성을 정의한 파일
- 스택 : 하나의 단위로 관리할 수 있는 AWS 리소스 모음을 의미
- 리소스 : CloudFormation이 생성하는 AWS 리소스
- 파라미터 : 스택을 생성할 때 전달하는 매개변수
- 이벤트 : CloudFormation 스택에서 발생하는 이벤트를 기록
- CloudFormation : 템플릿을 해석하여 스택을 생성하고, 정의된 AWS 인프라를 생성, 변경, 삭제할 수 있다.
동작방식
- 1. YAML 또는 JSON 포맷으로 CloudFormation 탬플릿을 작성하거나, 샘플 탬플릿을 사용해 인프라를 코드로 작성
- 2. 로컬의 탬플릿 코드를 체크아웃 하거나 S3 버킷에 템플릿 업로드
- 3. AWS 콘솔, 명령중 도구(CLI) 또는 API를 통해 AWS CloudFormation을 사용해 탬플릿 코드를 기반으로 스택 생성
- 4. 탬플릿에 지정된 스택을 통해 AWS 리소스에 대한 프로비저닝 및 구성 작업
템플릿 코드의 구성
- 템플릿 코드는 여러 섹션으로 구성되는데 Resources 섹션만 필수이다.
- AWSTemplateFormatVersion
- Describtion
- Metadata
- Parameters
- Rules
- Mapping
- Conditions
- Transform
- Resources
- Outputs
ELB 기본 구성
- HTTP 웹 서버를 통해 서비스를 한다.
- SNMP 프로토콜을 이용해서 서버 상태, 네트워크 상태 등을 LB와 공유한다.
- SNMP 쿼리
@SNMP
- Simple Network management Protocol의 약자
- 모니터링 하려는 장비에 SNMP 에이전트를 설치하고
- SNMP 관리자와 에이전트간 메시지 교환을 통해 관리 대상 장비의 상태를 모니터링 하는 방식으로 동작
- Management Information Block이라는 데이터베이스를 사용해 네트워크 장비의 상태정보를 저장한다.
- MIB에 저장된 객체는 Object Identifier를 할당받는다
- UDP 프로토콜을 사용하고 161 포트를 사용한다
Application LB 구현하기
- 사용자는 서버 1,2,3에 직접 접근하지 않고 ALB 도메인 주소로 접근
- LB의 리스너 정책에 따라 ALB를 이용해 각 서버로 로드 밸런싱을 수행
리소스 삭제하기
- 리소스는 생성한 역순으로 삭제
AWS 스토리지 서비스
- 블록 스토리지 : Amazon EBS
- 파일 스토리지 : Amazon EFS
- 객체 스토리지 : Amazon S3
블록 스토리지
- 단일 스토리지 볼륨을 블록이라는 개별 단위로 분할해서 저장
- 각 블록은 저장된 위치에 고유한 주소가 부여되며, 서버에서 파일을 요청하면 블록들을 재구성하여 하나의 데이터로 서버에 전달
- 블록 스토리지는 Storage Area Network 또는 가상 머신의 디스크로 사용됨
@Storage Area Network
- 서로 다른 종류의 데이터 저장 장치를 한 데이터 서버에 연결하여 총괄적으로 관리해 주는 네트워크
파일 스토리지
- 파일 수준 또는 파일 기반 스토리지라고 하며, 디렉토리 구조로 파일을 저장
- 각 파일은 폴더에 종속되고, 폴더 역시 다른 폴더에 종속외거 계층 구조를 유지
- 일반적으로 파일 스토리지는 Network Attached Storage에 사용됨
@Network Attached Storage
- 컴퓨터 네트워크에 연결된 파일 수준의 컴퓨터 기억 장치로, 다른 네트워크 클라이언트에 데이터 접근 권한을 제공
객체 스토리지
- 각 데이터 조각을 가져와서 객체로 저장하고, 개별 단위로 저장
- 파일 스토리지와는 다르게, 모든 객체는 중첩된 계층 구조 없이 단일한 평면적인 주소 공간에 저장됨
- 이 평면 공간에는 데이터 및 관련 메타데이터로 구성된 객체에 고유 식별자가 부여됨
- 객체의 키만 알고 있으면 쉽고 빠르게 대상을 검색할 수 있다.
- 일반적으로 HTTP 프로토콜 기반의 REST API를 사용해서 접근한다.
Amazon EBS
- EC2 인스턴스에 사용할 블록 스토리지 볼륨을 제공하는 서비스
- 데이터를 일정한 크기의 블록으로 나누어 저장
- 데이터베이스와 같이, 데이터 I/O가 많은 서비스에 적합
- EBS 스토리지는 AWS 관리 콘솔에서 필요한 용량/성능에 맞추어 볼륨을 생성한 후, EC2 인스턴스에 연결하여 사용
- EBS는 연결된 인스턴스와 수명 시간이 독립적이다.
- 인스턴스는 한 번에 하나의 EBS 볼륨만 연결할 수 있다.
- SSD 유형 : 메모리형 디스크를 사용하며, 고속의 IO가 가능하다
- HDD 유형 : 플래터 디스크를 사용하며, 대용량의 저장 공간이 필요한 경우에 사용
Amazon EBS 스냅샷
- 특정 시점으로 되돌아 갈 수 있는 지점을 만드는 기능
- 증분식 백업 방식을 이용하여 마지막 스냅샷 이후 변경되는 데이터 블록만 기록하므로 저장 비용과 시간도 효과적으로 절감할 수 있다
- 생성된 스냅샷은 기본적으로 Amazon S3라는 스토리지 공간에 저장되며, 여러 가용 영역에 자동으로 복제된다.
S3
- Simple Storage Service
- S3에 저장되는 데이터를 객체라고 하고, 객체의 저장소를 버킷(bucket)이라고 한다.
- 데이터 손실이 최소화되도록 설계 되었으며, 데이터 저장 공간이 거의 무제한에 가까워서 특별한 용량 제한 없이 데이터를 저장할 수 있다.
- 하나의 리전 내, 최소 세 개 이상의 물리적으로 분리된 가용 영역에 데이터를 복제해서 저장한다.
- 고유한 URL을 기반으로 객체 별 접근이 가능하다.
S3 구성요소
- 버킷 : 데이터 스토리지를 위한 서비스 단위, 생성 후 버킷 이름과 리전을 변경할 수 없다.
- 객체 : 이름-값에 대한 하나의 쌍으로 존재,
- 키 : 이름 및 버전 ID를 통해 고유하게 식별된다.
S3 스토리지 유형
- S3 standard storage : 자주 액세스하는 데이터 (주요 사용 데이터)
- S3 infrequent access standard storage : 엑세스 빈도가 낮은 데이터 (데이터 백업)
- Amazon S3 glacier : 거의 액세스하지 않는 데이터 (시스템 백업)
Amazon AWS활용 DB서비스
- DB는 구조, 운영, 저장 방식에 따라 계층형, 네트워크형, 관계형, 객체 지향형 등의 모델 유형으로 구분할 수 있다. (DBMS = RDS가 가장 보편적이다)
- Amazon RDS : ERp, CRM, 전자상 거래
- Amazon DynamoDB : 대규모 트래픽의 웹 서비스
- Amazon DocumentDB : 콘텐츠 관리, 프로필
- Amazon ElastiCache : 캐싱, 세션 관리
- Amazon Neptune : 소셜 네트워킹, 추천 엔진
- Amazon Timestream : DevOps, 산업용 텔레메트리
- Amazon QLDB : 레코드 세스템, 은행 거래
Amazon RDS
- 클라우드 환경에서 관계형 DB를 간편하게 설정하고 운영할 수 있는 서비스
- 간편한 복제 기능을 제공
- 1. Multi-AZ : Active-Standby 형태로 동작
- 2. Read Replica : 원본 데이터를 Primary DB에 두고, 읽기 전용의 복제 데이터를 Read Replica DB에 생성해 유지하는 방식 (다른 리전에도 배치 가능)
Amazon Aurora
- AWS 자체의 클라우드 DB 엔진
- Aurora는 엔터프라이즈 수준의 관계형 DB 엔진으로, 안정적이고 고성능을 DB 처리가 가능, 오픈 소스를 기반해 다른 관계형 DB와 호환성이 우수
Amazon DynamoDB
- 비관계형 DB, NoSQL DB
- Key-Value 기반으로 데이터를 저장
- Partition Key + Sort Key : Values(attributes)
- 별도 서버 구축이 필요 없는 serverless로 동작
- 저장된 용량에 따라 테이블을 자동으로 확장 & 축소
- 대규모 환경에서도 일관되게 10ms 미만의 처리 성능을 보장
Amazon ElasticCache
- In-Memory 데이터베이스
- 데이터가 메모리에 저장되므로 데이터 처리가 빠른 장점
- 데이터양이 많다면 처리 속도가 떨어지므로 소량의 데이터를 빠르게 접근하는 응용 분야에 적합
- Memcached 방식과 Redis 방식 두 가지로 구분됨
@Memcached 방식
- 보편적으로 사용하는 메모리 객체 캐싱 시스템
- 범용 분산 in-Memory 캐시 시스템인 Memcached와 호환해, 자주 접근하는 데이터를 메모리에서 빠르게 처리할 수 있다.
@Redis 방식
- DB, 캐시, 매세지 브로커 등 대기열 용도로 사용되는 In-Memory DB 서비스
- 오픈소스인 Redis 기반으로 구축되고, Redis API와 호환
- 실시간 애플리케이션을 지원하기 위해 1ms 미만의 지연으로 신속하게 데이터 처리 가능
Amazon AWS 고급네트워킹 서비스
DNS
- Domain Name System
- 네트워크 통신을 위한 IP 주소와 문자 주소인 도메인 간 매핑하여 연결하는 서비스
DNS 레코드 유형
- DNS 레코드는 도메인에 대한 요청 처리 방법을 정의한 것이다.
- A 레코드 : 도메인 이름을 Ipv4 주소로 매핑하는 가장 기본적인 DNS 레코드 유형
- AAAA 레코드 : A 레코드 유형의 IPv6 버전
- NS 레코드 : 도메인 이름을 네임 서버 주소로 매핑하는 DNS 레코드 유형
- CNAME 레코드 유형 : 도메인 이름의 별칭을 지정하는 DNS 레코드 유형
Amazon Route 53 서비스
- AWS에서 제공하는관리형 DNS 서비스
- DNS 프로토콜은 UDP 53번 포트를 사용하기 때문에 이름이 53
- 도메인 이름을 등록할 수 있고
- 호스팅 영역을 생성할 수 있으며
- 레코드를 작성할 수 있다.
도메인 이름 등록
- 간편하게 도메인 이름을 등록할 수 있다.
호스팅 영역 생성
- 호스팅 영역을 생성해야 Amazon Route 53이 등록된 도메인 이름에 대한 권한 있는 네임 서버이자 SLD 네임 서버의 역할을 수행할 수 있다.
- 호스팅 영역의 네임 서버들은 고가용성을 위해 다수의 서버로 구성
- 트래픽을 라우팅하는 방식에 대한 정보가 포함됨
- 퍼블릭 호스팅 영역 : 인터넷에서 트래픽을 라우팅하는 방법을 지정하는 레코드를 포함한다.
- 프라이빗 호스팅 영역 : Amazon VPC에서 트래픽을 라우팅하는 방법을 지정하는 레코드를 포함한다.
레코드 작성
- Amazon Route 53은 DNS 레코드를 정의하여 도메인에 대한 요청 처리 방법을 정의할 수 있다.
- 이런 DNS 레코드는 다양한 형태의 라우팅 정책을 연결하여 도메인 요청에 대한 응답 방식을 정의할 수 있다.
라우팅 정책
- 단순 라우팅 : 랜덤 선택
- 가중치 기반 라우팅 : 가중치만큼 선택됨
- 지연 시간 기반 라우팅 : 낮은 지연 선택
CDN
- Contents Deliver Network
- 콘텐츠 제공자와 사용자가 지리적으로 멀리 떨어져 있는 환경에서, 콘텐츠를 빠르게 전달하는 네트워크 기술
- 캐시 서버를 지역적으로 분산하고, 콘텐츠를 동기화하여 분산 처리하는 것이 핵심
CDN 환경
- 오리진 서버에서 지역적으로 분산된 캐시 서버에 콘텐츠를 동기화해서 콘텐츠가 분산된 환경을 구성한다.
- 사용자를 지리적으로 인접한 서버로부터 콘텐츠를 전달받아, 빠르고 효율적인 서비스를 제공받는다.
- Cache Miss : 캐시 서버에 콘텐츠가 없는 경우
- Cache Hit : 캐시 서버에 콘텐츠가 있는 경우
CDN 캐싱 방식
- 정적 캐싱 : 정적 콘텐츠를 캐싱하는 방식
- 별도의 사용자 요청이 없어도 오리진 서버에서 캐시 서버로 미리 콘텐츠를 복사할 수 있다.
- 동적 캐싱 : 동적 컨텐츠를 캐싱하는 방식
- 동적 컨텐츠 : 사용자 정보를 활용하여, 매번 변경되는 형태의 콘텐츠
- 동적 컨텐츠는 요청이 발생할 때 마다 콘텐츠가 변경되는 특징이 있어서, 캐시 서버에 콘텐츠를 보관하지 않고, cache miss 상태로 동작한다.
- TTL=0
Amazon CloudFront
- AWS에서 제공하는 CDN 서비스
- 전 세계에 분포된 엣지 로케이션과 이전 엣지 캐시에 콘텐츠를 캐싱하고, 사용자 요청에 따라 가장 지연시간이 낮은 엣지 로케이션이 응답하여 최적의 성능을 보장한다.
- AWS의 글로벌 엣지 네트워크를 사용한다.
Amazon CloudFront 구성
- 1. 오리진 : 원본 콘텐츠를 가진 대상
- 2. Distribution : 웹 서비스 전용의 Web Distribution과 스트리밍 전용의 RTMP로 분류된더,
- 3. 리전엣지 캐시 : 빈번하게 사용되는 콘텐츠에 대해 캐싱하는 큰 단위의 엣지 영역이다.
- 4. 엣지 로케이션 : Distributed로 배포되는 콘텐츠를 개싱하는 작은 단위의 영제 영역.
Amazon CloudFront 기능
- 정적 및 동적 컨텐츠 처리
- HTTPS : 오리진이 HTTPS를 지원하지 않아도,사용자는 HTTPS 통신을 사용한다.
- 다수의 오리진 선택 기능
- 접근 제어 : 서명된 URL과 쿠키로 사용자 인증을 지원하여 인증된 사용자만 접근할 수 있도록 제어 가능
Amazon CloudFront 구성하기
- 1. CloudFormation 스택 생성
- 2. Route 53설정
- 3. CloudFront Distribution 생성
- 4. 신규 DNS 레코드 생성
- 5. 접속
AWS Management Console
- 웹 기반의 GUI 인터페이스를 사용해서 AWS 리소스를 관리하는 방법
AWS CLI 인터페이스
- OS에 설치 후 터미널에서 명령어를 사용해 AWS 리소스를 관리하는 방법
AWS SDK
- AWS 리소스를 프로그래밍적으로 사용할 수 있도록 제공되는 라이브러리
- 모두 AWS API를 통해서 요청을 전송하고 응답을 수신한다.
AWS API
- 사용자 어플리케이션이 AWS 서비스를 사용할 수 있게 도와주는 매개체
- 인증 및 인가 과정이 필수이다.
- AWS CouldTrail : 계정의 관리, 규정 준수, 운영 감사, 위험 감사 등을 지원하는 서비스
Amazon AWS IAM 서비스
- AWS Identity & Access Management
- AWS 서비스와 리소스에 안전하게 접근할 수 있도록 인증과 권한을 관리/통제하는 기능이다.
- AWS 사용자 및 그룹을 만들고 관리하거나, 권한을 이용해 AWS 리소스 접근을 허용하거나 거부할 수 있다.
IAM 구성 요소
- 1. AWS 계정 루트 사용자 : 가장 처음에 생성한 ASW 계정으로, 해당 계정의 모든 권한을 가진다.
- 2. IAM 사용자 : 한 계정 내에서 권한을 부여 받은 사용자, 각 사용자마다 권한이 다를 수 있다.
- 3. IAM 그룹 : IAM 사용자 집합
- 4. IAM 정책 : 자격 증명이나 리소스와 연결될 떄 요청을 허용하거나 거부할 수 있는 권한을 정의하는 AWS 객체
- 5. IAM 역할 : 특정 권한을 가진 계정에 부여할 수 있는 IAM 자격 증명
- 6. 보안주체 : 로그인하고 AWS에 서비스를 요청하는 사람 또는 어플리케이션
Amazon AWS 오토스케일링 서비스
스케일링
- 수직
- 수평
AWS 오토 스케일링
- AWS에서 제공하는 리소스 중 상당수는 오토 스케일링 기능을 통해 동적으로 규모를 고정할 수 있다.
EC2 오토 스케일링
- EC2 인스턴스에 설치된 어플리케이션 워크로드를 수용하도록 동적으로 EC2 인스턴스 수를 확장하거나 축소하여 워크로드를 유지하는 서비스
- EC2 인스턴스에 대한 수평 스케일링을 동적으로 수행한다.
- 워크로드 : 주어진 시간 안에 컴퓨터 시스템이 처리해야 하는 작업량을 의미
EC2 오토 스케일링 동작 방식
- 1. 오토 스케일링 그룹이라는 EC2 인스턴스 모음을 생성
- 2. 최소 및 최대 인스턴스 개수를 정하고, 범위 내에서 인스턴수 수를 동적으로 조절
- 3. 스케일링 정책에 따라 설정한 기준으로 인스턴스를 제어
EC2 오토 스케일링 구성 요소
- 그룹 : EC2 인스턴스를 논리적으로 구분하는 단위
- 구성 템플릿 : 오토 스케일링을 통해 생성될 EC2 인스턴스의 구성을 정의
- 조정 옵션 : 오토 스케일링 그룹을 조정하는 방법을 정의 (scaling rule)
인스턴스 수명 주기
- 대기
- 실행
- 중지 (sleep)
- 종료 (terminated)
인스턴스 확장 이벤트
- 할당된 구성 템플릿을 사용해 필요한 수의 인스턴스를 시작
- 이때, 인스턴스의 상태는 대기중으로 시작
- 인스턴스가 완전히 구성되면 로드 발란서에 등록되고, 실행중 상태로 전환
인스턴스 축소 이벤트
- 종료 정책을 이용해 먼저 종료할 인스턴스를 결정
- 선택된 인스턴스는 종료되고, 오토 스케일링에서 삭제되며, 로드 발란서의 연결이 해제됨
- 만약 완료하지 못한 작업이 있다면, 일정 시간을 대기한 후 종료되는데 이런 상태를 draining이라고 한다. (grace period)
AWS EC2 오토 스케일링 조정 옵션
- 일정 수를 유지 : 비정상/장애 상태의 인스턴스가 발견되면 해당 인스턴스를 종료하고 새로운 인스턴스를 실행하여 교체
- 수동 조정 : 그룹의 용량을 수동으로 변경
- 동적 조정 : 트래픽/부하 변화에 따라 그룹의 용량을 조정
인스턴스 동적 조정
- 대상 추적 조정 : 특정 대상 지표의 목표 값을 쥬디하기 위해 오토 스케일링을 적용
- 단계 조정 : 오토 스케일링 그룹의 용량을 단계별로 조정하여 오토 스케일링을 적용
- 단순 조정 : 오토 스케일링 그룹의 용량을 단일하게 조정해 오토 스케일링을 적용
- 예약된 조정 : 시간/날짜에 따라 오토 스케일링을 적용
- 사전 예방적 조정 : 과거 기록을 기반으로 트래픽/부하의 패턴을 예측해 이를 기반으로 인스턴스 수를 미리 조정
Amazon AWS 시스템 안정성 개선
- 오토 스케일링은 시시각각 변화하는 부하량에 대응하기 위한 효과적인 솔루션이다.
- Amazon AWS는 가용성 보장을 위한 오토 스케일링도 재공한다.
'CS > 클라우드 컴퓨팅' 카테고리의 다른 글
[클라우드 컴퓨팅] 클라우드 아키텍처 특화 (21) (0) | 2024.06.21 |
---|---|
[클라우드 컴퓨팅] 클라우드 아키텍처 심화 (20) (0) | 2024.06.21 |
[클라우드 컴퓨팅] 클라우드 아키텍처 (18) (0) | 2024.06.21 |
[클라우드 컴퓨팅] 컨테이너 마이그레이션 (17) (0) | 2024.06.21 |
[클라우드 컴퓨팅] 보안 매커니즘 (16) (0) | 2024.06.21 |