╱╱╭╮╱╱╱╱╱╱╭━━━╮╱╱╱╭╮╱╭╮╱╱╱╱╱╱ ╱╱┃┃╱╱╱╱╱╱┃╭━╮┃╱╱╱┃┃╱┃┃╱╱╱╱╱╱ ╱╱┃┣━━┳━━╮┃┃╱┃┣━╮╱┃╰━╯┣━━┳━╮╱ ╭╮┃┃╭╮┃┃━┫┃╰━╯┃╭╮╮┃╭━╮┃╭╮┃╭╮╮ ┃╰╯┃╭╮┃┃━┫┃╭━╮┃┃┃┃┃┃╱┃┃╭╮┃┃┃┃ ╰━━┻╯╰┻━━╯╰╯╱╰┻╯╰╯╰╯╱╰┻╯╰┻╯╰╯

CS/클라우드 컴퓨팅

[클라우드 컴퓨팅] Amazon AWS (19)

재안안 2024. 6. 21. 03:04


[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는 가용성 보장을 위한 오토 스케일링도 재공한다.