diff --git "a/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2303. AWS \354\213\234\354\236\221\355\225\230\352\270\260.md" "b/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2303. AWS \354\213\234\354\236\221\355\225\230\352\270\260.md" new file mode 100644 index 0000000..99cec68 --- /dev/null +++ "b/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2303. AWS \354\213\234\354\236\221\355\225\230\352\270\260.md" @@ -0,0 +1,44 @@ +# AWS 클라우드 개요 - 리전 및 AZ +- AWS는 세계 여러 곳에 다양한 리전을 가지고 있습니다. 글로벌합니다. +- 프라이빗 네트워크로 리전끼리 연결되어 있습니다. + +## 리전 +- 리전이란? 데이터 센터의 집합입니다. +- 대부분의 서비스들은 특정 리전의 종속적입니다. +- AWS 리전 선택에 미치는 영향을 미칠 수 있는 요인들 + - 법률 준수 + - 간혹 어떤 정보들은 대상 국가 내에 데이터가 저장되기를 원합니다. + - 지연 시간 (레이턴시) + - 유저와 가까운 리전을 선택하여 레이턴시를 줄입니다. + - 사용 가능한 서비스 + - 특정 리전에는 특정 서비스가 없을 수 있습니다. + - 요금 + - 리전마다 요금이 다릅니다. + - 서비스 요금 페이지를 참고하여 비교할 수 있습니다. + +## 가용 영역 + +- 한 리전 내에 일반적으로 3~6개의 가용 영역이 존재합니다. +- 가용 영역은 하나 또는 두 개 이상의 개별적인 데이터 센터로 구성됩니다. +- 가용 영역들은 서로 분리되어 있습니다 (재난 상황 대비). +- 높은 대역폭의 초저지연 네트워크로 서로 연결되어 리전을 형성합니다. + +## Edge Locations + +- AWS는 40여 개의 90개 이상의 도시에 400개가 넘는 전송 지점을 가지고 있습니다. +- 최소 지연 시간으로 최종 사용자에게 콘텐츠를 전달하는 데 유용합니다. + +## AWS Console 투어 + +- AWS의 글로벌 서비스: + - IAM + - Route 53 + - CloudFront + - WAF +- 리전 종속적인 AWS 서비스: + - EC2 + - Elastic Beanstalk + - Lambda + - Rekognition +- 리전별로 사용 가능한 서비스는 아래 링크에서 확인할 수 있습니다 + - [https://aws.amazon.com/ko/about-aws/global-infrastructure/regional-product-services/](https://aws.amazon.com/ko/about-aws/global-infrastructure/regional-product-services/) \ No newline at end of file diff --git "a/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2304 : IAM \353\260\217 AWS CLI.md" "b/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2304 : IAM \353\260\217 AWS CLI.md" new file mode 100644 index 0000000..7bd79d2 --- /dev/null +++ "b/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2304 : IAM \353\260\217 AWS CLI.md" @@ -0,0 +1,119 @@ +## IAM 소개 : 사용자, 그룹 정책 + +- 루트 계정은 기본적으로 생성됩니다. +- 루트 계정을 사용하지 말고 사용자 계정을 사용해야 합니다. +- 그룹을 생성하여 사용자들을 그룹에 배치해야 합니다. +- 그룹에는 오직 사용자만 배치할 수 있습니다. +- 그룹에 속하지 않은 사용자도 있을 수 있습니다. +- JSON 문서를 통해 사용자 또는 그룹에 AWS 서비스의 권한 정책을 설정할 수 있습니다. +- AWS는 최소 권한의 원칙을 적용합니다. 즉, 꼭 필요한 것 이상의 권한을 부여하지 않습니다. +- IAM은 글로벌 서비스이므로 리전 선택이 불가능합니다. +- 보안상의 이유로 루트 계정 대신 사용자 계정을 생성하여 사용하는 것이 좋습니다. + +## IAM 정책 +- 정책 구조 + - Version: 보통은 2012-10-17로 정책 언어 버전이 설정됩니다. + - Id: 정책을 식별하는 ID (옵션) + - Statement: + - 하나 이상의 문장이 포함될 수 있습니다. + - Sid: 문장의 식별자 (옵션) + - Effect: 특정 API에 대해 Allow 또는 Deny를 설정합니다. + - Principal: 정책이 적용될 사용자, 계정 또는 역할을 정의합니다. + - Action: Effect에 기반하여 Allow 또는 Deny될 API를 설정합니다. + - Resource: Action이 적용될 리소스 목록을 정의합니다. + - Condition: Statement가 언제 적용될지를 결정하는 조건 (옵션) + - *의 의미: AWS에서 *은 모든 것을 의미합니다. + - Action: * = 모든 액션을 허용합니다. + - Resource: * = 모든 리소스에 대해 허용합니다. + +## IAM - 비밀번호 정책 +- 강력한 비밀번호 + - 최소 비밀번호 길이 설정 + - 대문자, 소문자, 숫자, 특수문자 포함 요구 +- 비밀번호를 직접 변경할 수 있는지 여부 설정 가능 +- 일정 기간마다 비밀번호 변경 (비밀번호 유효 기간 설정) +- 이전에 사용한 비밀번호나 이미 가지고 있는 비밀번호 사용 방지 + +## MFA +- MFA는 비밀번호와 보안 장치의 조합입니다. +- MFA의 이점: + - 비밀번호가 해킹당하더라도 MFA 디바이스가 별도로 존재하므로 보안이 강화됩니다. + +AWS 내 MFA 종류 + +- Virtual MFA device + - 가상 장치 + - Google Authenticator, Authy 등 + - 사용하기 쉬운 방법 +- Universal 2nd Factor (U2F) Security + - YubiKey by Yubico + - 물리적 장치 + - 단일 보안 키를 사용하여 여러 루트 및 IAM 사용자를 지원합니다. +- Hardware Key Fob MFA Device + - Gemalto에서 제공 +- Hardware Key Fob MFA Device for AWS GovCloud (US) + - SurePAssID에서 제공 + +# AWS 액세스 키, CLI 및 SDK +- AWS에 액세스하는 방법은 세 가지입니다. + - AWS Management Console: 비밀번호 + MFA로 보호됨 + - AWS Command Line Interface (CLI): 액세스 키로 보호됨 + - AWS Software Development Kit (SDK): 코드에서 액세스, 액세스 키로 보호됨 +- AWS 콘솔에서 액세스 키를 생성할 수 있습니다. +- 액세스 키는 비밀번호와 같아서 공유하면 안 됩니다. + - Access Key ID는 마치 사용자 이름과 같습니다. + - Secret Access Key는 마치 비밀번호와 같습니다. + +# AWS CLI란? +- 명령줄 쉘에서 명령어를 사용하여 AWS 서비스와 상호작용할 수 있게 해주는 도구입니다. + +# AWS SDK란? +- AWS Software Development Kit의 약자 +- 특정 언어로 작성된 라이브러리 모음입니다. +- AWS 서비스를 프로그래밍 방식으로 접근하고 관리할 수 있습니다. + +# AWS Cloud Shell +- AWS에서 무료로 사용할 수 있는 쉘입니다. +- 장점: + - 자격 증명이 클라우드 쉘에서 실행됩니다. +- 기본 리전은 로그인한 리전으로 설정됩니다. +- CloudShell에서 작성한 파일은 다시 실행해도 저장됩니다. +- 파일 업로드 및 다운로드가 가능합니다. +- 폰트 크기 변경이 가능합니다. +- 새로운 탭을 생성할 수 있습니다. + +# AWS 서비스에 대한 IAM Role +- AWS 서비스에 권한을 부여해야 하며, 이를 위해 IAM Role을 부여합니다. +- 예시: EC2 인스턴스를 생성한 후, EC2 인스턴스가 AWS에 있는 다른 리소스에 접근하려 할 때 IAM Role을 사용하여 권한을 부여합니다. + +# IAM 보안 도구 +- IAM Credentials Report (계정 수준) + - 계정 내 사용자와 자격 증명 상태를 포함한 보고서입니다. +- IAM Access Advisor (사용자 수준) + - 사용자에게 부여된 서비스의 권한과 해당 서비스에 마지막으로 액세스한 시간을 확인할 수 있습니다. + +이 도구들을 사용하여 사용되지 않는 권한을 찾아 불필요한 권한을 줄이고 최소 권한의 원칙을 적용할 수 있습니다. + +# IAM 모범 사례 + +- AWS 계정을 설정할 때를 제외하고는 루트 계정을 사용하지 않습니다. +- 한 명의 AWS 사용자는 한 명의 물리적 사용자와 매핑됩니다. +- 사용자는 그룹에 할당하고, 그룹에 권한을 할당하여 보안을 그룹 수준에서 관리합니다. +- 강력한 비밀번호를 사용합니다. +- 다중 인증(MFA)을 사용합니다. +- AWS 서비스에 권한을 부여할 때는 Roles를 생성하여 부여하는 것이 좋습니다. +- 프로그래밍 액세스 방식을 사용할 때는 액세스 키를 사용합니다. (CLI/SDK) +- 계정의 권한을 감시하려면 IAM 자격 증명서 또는 IAM 액세스 관리자 기능을 사용할 수 있습니다. +- **IAM 사용자와 액세스 키는 절대로 공유하지 않습니다.** + +# IAM 요약 + +- Users: 한 명의 물리적 사용자와 매핑됩니다. AWS Console을 위한 비밀번호를 가집니다. +- Groups: 사용자만 포함됩니다. +- Policies: 사용자 또는 그룹에 대한 권한을 정의하는 정책 또는 JSON 문서를 첨부할 수 있습니다. 역할도 만들 수 있습니다. +- Roles: AWS 서비스에 대한 권한을 부여합니다. +- Security: MFA + 비밀번호 정책 +- AWS CLI: 커맨드 라인에서 AWS 서비스를 관리합니다. +- AWS SDK: 프로그래밍 언어로 AWS 서비스를 관리합니다. +- Access Keys: CLI 또는 SDK를 통해 AWS 서비스에 액세스할 수 있는 액세스 키를 생성할 수 있습니다. +- Audit: IAM 사용량을 감사할 수 있습니다. IAM 자격 증명 보고서 및 IAM Access Advisor를 사용할 수 있습니다. \ No newline at end of file diff --git "a/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2305 : IAM \353\260\217 AWS CLI.md" "b/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2305 : IAM \353\260\217 AWS CLI.md" new file mode 100644 index 0000000..77f6e24 --- /dev/null +++ "b/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2305 : IAM \353\260\217 AWS CLI.md" @@ -0,0 +1,206 @@ +# AWS 예산 설정 + +- 관리자 액세스 권한이 있어도 결제 데이터에 액세스할 수 없습니다. +- 루트 계정으로 접근하면 가능합니다. +- **IAM 사용자 및 역할의 결제 정보 액세스** + - 이 옵션을 활성화하면 IAM 사용자도 결제 데이터에 접근할 수 있습니다. +- 예산에 대한 알림을 받을 수 있습니다. +- **Zero spend budget** 템플릿을 사용하면 결제 비용이 0.01달러를 초과하는 순간 알림이 옵니다. +- **월별 예산**을 설정하여 해당 예산을 초과하면 알림을 받을 수 있습니다. +- 예산의 85%를 소모했을 때, 예산의 100%를 소모했을 때, 예상 지출이 100%에 이를 것으로 예상되는 경우 알림을 받을 수 있습니다. + +--- +# EC2 기초 +- **Elastic Compute Cloud** = AWS에서 제공하는 서비스형 인프라스트럭처(Infrastructure as a Service) +- 다양한 기능을 제공합니다: + - 가상 머신 대여 (EC2) + - 가상 드라이브에 데이터 저장 (EBS) + - 로드 분산 (ELB) + - 오토 스케일링 그룹을 통해 서비스의 크기 조정 가능 (ASG) + +## EC2 크기 및 구성 옵션 +- OS : Linux, Windows, 또는 Mac OS +- CPU +- RAM +- 저장 공간 + - 네트워크 연결 (EBS & EFS) + - 하드웨어 (EC2 인스턴스 스토어) +- 네트워크 카드 : 카드 속도, 공인 IP 주소 +- 방화벽 규칙 : Security Group +- 부트스트랩 스크립트 (첫 실행 시 구성) : EC2 User Data. 인스턴스를 구성하기 위한 부트스트랩 스크립트. + +## EC2 User Data +- EC2 User Data 스크립트를 이용하여 부트스트랩이 가능합니다. +**부트스트래핑**이란? 머신이 작동될 때 명령을 시작하는 것을 말합니다. +- 스크립트는 처음 시작할 때만 실행됩니다. +- 부팅 작업을 자동화하기 때문에 "부트스트래핑"이라고 부릅니다. + +인스턴스를 부팅할 때 자동화할 수 있는 것들: +- 업데이트 설치 +- 소프트웨어 설치 +- 인터넷에서 일반적인 파일 다운로드 +- 기타 원하는 작업 + +EC2 User Data 스크립트는 root 사용자에서 실행됩니다. + +## EC2 인스턴스 유형 예시 + +EC2 인스턴스 타입에 따라 vCPU, 메모리, 저장소, 네트워크 성능, EBS 대역폭 등이 다릅니다. + +--- + +# 웹사이트 실습을 위한 EC2 사용자 데이터로 EC2 인스턴스 생성 + +- PuTTY는 Windows 7 또는 Windows 8에서 SSH를 사용할 때 사용됩니다. +- Windows 7과 Windows 8을 제외한 다른 버전에서는 `.pem` 파일을 선택합니다. + +- **EC2 종료 시 EBS 삭제 여부에 대한 옵션**: `Delete on termination` +- **User Data** + - 입력한 스크립트는 인스턴스가 처음 실행될 때 생애 주기상 단 한 번만 실행됩니다. + +--- +# EC2 인스턴스 유형 기본 사항 +- EC2 인스턴스 타입: [AWS 인스턴스 타입](https://aws.amazon.com/ko/ec2/instance-types/) +- AWS 인스턴스 네이밍 규칙: + - 예) `m5.2xlarge` + - `m`: 인스턴스 클래스 + - `5`: 세대 + - `2xlarge`: 인스턴스 클래스의 크기 (크기가 클수록 더 많은 CPU와 메모리 보유) + - CPU, 메모리, 네트워크 성능의 밸런스가 적절합니다. + +## 범용 인스턴스 + +## 컴퓨팅 최적화 인스턴스 + +- 컴퓨터 집약적인 작업에 최적화된 인스턴스 +- **사용 사례**: + - 배치 처리 + - 미디어 트랜스코딩 + - 고성능 웹 서버 + - 고성능 컴퓨팅(HPC) + - 머신러닝 + - 전용 게임 서버 +- 이름은 `C`로 시작합니다. 예) `C5`, `C6` + +## 메모리 최적화 인스턴스 + +- 메모리에서 대규모 데이터셋을 처리하는 유형의 작업에 빠른 성능을 제공합니다. +- **사용 사례**: + - 인메모리 데이터베이스, 고성능의 관계형/비관계형 DB + - 분산 웹 스케일 캐시 저장소 + - BI에 최적화된 인메모리 데이터베이스 + - 대규모 비정형 데이터의 실시간 처리 +- 이름은 `R`로 시작합니다. 예) `R`, `X1`, `Z1` + +## 스토리지 최적화 인스턴스 + +- 로컬 스토리지에서 대규모의 데이터셋에 액세스할 때 적합한 인스턴스 +- **사용 사례**: + - OLTP 시스템 + - 관계형/비관계형 데이터베이스 + - 레디스 같은 인메모리 데이터베이스 + - 데이터 웨어하우징 애플리케이션 + - 분산 파일 시스템 +- 이름은 `I`, `D`, 또는 `H1`로 시작합니다. + +전체 EC2 비교 사이트: [Vantage EC2 Instances](https://instances.vantage.sh/) + +--- +# 보안 그룹 및 클래식 포트 개요 +- AWS에서 네트워크 보안을 수행하는 기본 방법입니다. +- EC2 인스턴스의 입출력 트래픽이 허용되는 방식을 제어합니다. +- 허용 규칙만 포함됩니다. +- IP 주소를 기반으로 규칙을 설정하거나 다른 보안 그룹을 참조하여 설정할 수 있습니다. +- 보안 그룹은 EC2 인스턴스의 방화벽입니다. + - 포트에 대한 액세스를 규제합니다. + - 승인된 IP 범위 (IPv4 & IPv6) + - 인바운드 네트워크 + - 아웃바운드 네트워크 + +## 보안 그룹에 대해 알면 좋은 점 +- 여러 인스턴스에 적용 가능합니다. (1:1 관계가 아님) +- 보안 그룹은 특정 지역과 VPC 조합에 제한됩니다. + - 다른 지역으로 전환하는 경우 새로 보안 그룹을 만들어야 합니다. + - 다른 VPC를 생성한 경우 보안 그룹을 새로 만들어야 합니다. +- 보안 그룹은 EC2에만 적용됩니다. +- SSH 액세스를 위해 별도의 보안 그룹을 하나 유지하는 것이 좋습니다. +- 애플리케이션에 타임아웃으로 액세스할 수 없다면 보안 그룹 문제일 수 있습니다. +- 기본적으로 모든 인바운드 트래픽은 차단됩니다. +- 기본적으로 모든 아웃바운드 트래픽은 승인됩니다. + +## 다른 보안 그룹을 참조하는 방법 +- 보안 그룹이 연결된 다른 EC2 인스턴스가 있는 경우, IP에 관계없이 올바른 보안 그룹이 연결되어 있으면 다른 EC2 인스턴스에서 직접 통신할 수 있습니다. + - 항상 IP를 생각하지 않아도 되므로 유용합니다. + +## 클래식 포트 +- **22** = SSH: 리눅스 EC2 인스턴스 로그인 +- **21** = FTP: 파일 공유 및 업로드 +- **22** = SFTP: SSH를 이용한 파일 업로드 +- **80** = HTTP: 보안되지 않은 웹사이트 액세스 +- **443** = HTTPS: 보안 웹사이트 액세스 +- **3389** = RDP: 윈도우 인스턴스 로그인 + +--- + +## SSH 개요 + +- 명령줄 인터페이스 +- **ssh**: macOS, Linux, Windows 10 이상에서 사용 가능 +- **PuTTY**: Windows 10 미만에서 사용 가능 +- **EC2 Instance Connect**: 웹 브라우저로 EC2 인스턴스에 연결 (모든 버전의 macOS, Linux, Windows에서 사용 가능) + - 현재 Amazon Linux 2에서만 작동합니다. + +--- +## EC2 인스턴스 시작하기 +- **Reserved (1 & 3년)** + - **Reserved Instances**: 긴 워크로드 + - **Convertible Reserved Instances**: 긴 워크로드와 유연한 인스턴스 타입 +- **Saving Plans (1 또는 3년)** + - 달러 단위로 특정한 사용량을 약정하는 방식 + - 긴 워크로드에 적합 +- **Spot Instances** + - 짧은 워크로드 + - 저렴하지만 신뢰성이 낮습니다. +- **Dedicated Hosts** + - 물리적 서버 전체를 예약하여 제어 가능 +- **Dedicated Instances** + - 하드웨어를 다른 사용자와 공유하지 않음 +- **Capacity Reservations** + - 원하는 기간 동안 특정 AZ에 용량을 예약할 수 있음. + +## EC2 On-Demand +- **요금**: + - Linux 또는 Windows: 1분 이후 초단위로 요금이 나옵니다. + - 다른 모든 OS: 1시간 단위로 요금이 나옵니다. +- 장기적인 약정이 필요하지 않음 +- 즉시 요금을 지불하지 않아도 됨 +- 단기적, 중단 없는 워크로드가 필요할 때 + +## EC2 Reserved Instances + +- **온디맨드에 비해 최대 72% 할인** 제공 +- **사용 사례**: 사용량이 일정한 애플리케이션 (예: DB) +- **예약 기간**: 1년 또는 3년 +- **결제 옵션**: 전액 선결제, 부분 선결제, 선결제 없음 + +--- + +## EC2 Spot Instances + +- **할인율** 최대 90% +- **사용 사례**: + - 배치 작업 + - 데이터 분석 + - 이미지 처리 + - 모든 종류의 분산형 워크로드 +- **신뢰성이 낮음**: 최대 가격을 초과하면 인스턴스가 종료될 수 있습니다. +--- + +## Spot Fleets + +- 여러 스팟 인스턴스를 관리하는 방법 +- **전략**: + 1. `lowestPrices`: 가장 낮은 가격을 선택 + 2. `diversified`: 가용성과 긴 워크로드에 적합 + 3. `capacityOptimized`: 최적의 용량을 선택 + 4. `priceCapacityOptimized`: 용량이 큰 풀에서 가장 낮은 가격을 선택 \ No newline at end of file diff --git "a/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2306: EC2- \354\206\224\353\243\250\354\205\230\354\212\244 \354\225\204\355\202\244\355\205\215\355\212\270 \354\226\264\354\206\214\354\213\234\354\227\220\354\235\264\355\212\270 \353\240\210\353\262\250.md" "b/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2306: EC2- \354\206\224\353\243\250\354\205\230\354\212\244 \354\225\204\355\202\244\355\205\215\355\212\270 \354\226\264\354\206\214\354\213\234\354\227\220\354\235\264\355\212\270 \353\240\210\353\262\250.md" new file mode 100644 index 0000000..3442eb0 --- /dev/null +++ "b/content/zerofunc/1\354\243\274\354\260\250-\354\204\271\354\205\2306: EC2- \354\206\224\353\243\250\354\205\230\354\212\244 \354\225\204\355\202\244\355\205\215\355\212\270 \354\226\264\354\206\214\354\213\234\354\227\220\354\235\264\355\212\270 \353\240\210\353\262\250.md" @@ -0,0 +1,95 @@ +# 퍼블릭 vs 프라이빗 vs 탄력적 IP +**퍼블릭 IP** +- 퍼블릭 IP는 인터넷 상에서 식별될 수 있습니다. +- 전체 웹에서 유일한 것이어야 합니다. + +**프라이빗 IP** +- 프라이빗 IP는 사설 네트워크 안에서만 식별될 수 있습니다. +- NAT 장치와 프록시 역할을 하는 인터넷 게이트웨이를 통해 인터넷에 연결됩니다. + +**탄력적 IP** +- EC2 인스턴스를 시작하고 중지할 때 공용 IP를 변경할 수 있습니다. +- 삭제하지 않는 한 계속 보유할 수 있습니다. +- 계정당 최대 5개만 사용 가능합니다. +- 탄력적 IP를 사용하는 것은 추천되지 않습니다. +--- +# EC2 배치 그룹 + +- EC2 인스턴스가 AWS 인프라에 배치되는 방식을 제어하고자 할 때 사용합니다. + +세 가지 전략을 사용할 수 있습니다. + +- **Cluster** +- **Spread** +- **Partition** +## Placement Groups Cluster +- EC2 인스턴스가 모두 동일한 가용 영역에 배치됩니다. +- 뛰어난 네트워크 성능을 제공합니다. +- 지연 시간이 짧고 처리량이 많은 네트워크를 확보할 수 있습니다. +- 단점: + - AZ에 장애가 발생하면 모든 인스턴스가 동시에 장애를 일으킬 수 있습니다. +- **사용 사례** + - 빅 데이터 작업이나 애플리케이션의 각 인스턴스 간에 지연 시간이 매우 짧고 처리량이 많은 네트워크가 필요한 애플리케이션. + +## Placement Groups Spread +- 장애 위험을 최소화하려고 합니다. +- 모든 EC2 인스턴스가 다른 하드웨어에 위치하게 됩니다. +- 장점: + - 여러 AZ에 걸쳐 배치되어 있어 동시 실패의 위험이 감소합니다. +- 단점: + - 배치 그룹의 AZ당 7개의 인스턴스로 제한됩니다. + - 크기가 적당하지만 너무 크지 않은 애플리케이션에서만 사용 가능합니다. +- **사용 사례** + - 가용성을 극대화하고 위험을 줄여야 하는 애플리케이션. + - 인스턴스 오류를 서로 격리해야 하는 크리티컬 애플리케이션. + +## Placement Groups Partition +- 여러 가용 영역의 파티션에 인스턴스를 분산할 수 있습니다. +- AZ당 7개의 파티션이 있습니다. +- 파티션은 AWS의 랙을 나타냅니다. +- 파티션이 많으면 인스턴스가 여러 하드웨어 랙에 분산되어 서로 랙 장애로부터 안전합니다. +- 수백 개의 인스턴스를 사용할 수 있습니다. +- 하드웨어 물리적 랙을 공유하지 않으므로 각 파티션은 장애로부터 격리됩니다. +- **사용 사례** + - 파티션들 전반에 걸쳐 데이터와 서버를 퍼뜨려 두도록 파티션 인식 가능한 애플리케이션에 사용합니다. + - HDFS, HBase, Cassandra, Kafka + +--- + +# Elastic Network Interfaces (ENI) + +- ENI는 가상 네트워크 카드입니다. +- EC2 인스턴스가 네트워크에 액세스할 수 있게 해줍니다. +- ENI 구성 요소: + - 기본 프라이빗 IPv4, 1개 이상의 보조 IPv4를 가집니다. + - 1개의 Elastic IP (IPv4) per private IPv4. + - 1개의 퍼블릭 IPv4. + - 1개 이상의 보안 그룹. + - MAC 주소. +- EC2 인스턴스와 독립적으로 ENI를 생성하고 즉시 연결하거나 장애 조치를 위해 EC2 인스턴스에서 이동시킬 수 있습니다. +- ENI는 특정 AZ에 바운드 됩니다. + +--- +# EC2 Hibernate +- **인스턴스 중지 혹은 종료** + - **STOP**: EBS는 다시 시작할 때까지 그대로 유지됩니다. + - **Terminate**: 루트 볼륨이 삭제되도록 설정했다면, 해당 볼륨은 삭제됩니다. 설정하지 않은 다른 볼륨은 인스턴스가 종료되더라도 남습니다. +- RAM에 있던 인메모리 상태는 그대로 보존됩니다. + - 인스턴스 부팅이 더 빠릅니다. + - OS가 완전히 중지되지 않고 멈춰 둡니다. + - RAM에 기록된 인메모리 상태는 루트 경로의 EBS 볼륨에 기록되므로 루트 EBS 볼륨을 암호화해야 하며, 볼륨 용량은 RAM을 저장할 만큼 충분해야 합니다. + - RAM의 내용은 EBS 볼륨에 덤프됩니다. +- **사용 사례** + - 오래 실행되는 프로세스를 중지하지 않고 유지하고 싶을 때. + - RAM 상태를 저장하고 싶을 때. + - 빠르게 재부팅하고 싶을 때. + +## 알아두면 좋은 사항 + +- 지원하는 인스턴스가 많습니다. +- RAM 크기는 최대 150GB입니다. +- Bare Metal 인스턴스에는 적용되지 않습니다. +- AMI: Amazon Linux 2, Linux AMI, Ubuntu, RHEL, CentOS, Windows 등. +- Root Volume: DBS에만 저장이 가능하며 암호화가 필요하고, 덤프된 RAM을 포함할 만큼 크기가 커야 합니다. +- 온디맨드, 예약 인스턴스, 스팟 인스턴스 모두 사용 가능합니다. +- 절전 모드는 최대 60일까지 사용 가능합니다. \ No newline at end of file