From 6a0d8caeacaa08e2d7c0889db9e73f9041507c32 Mon Sep 17 00:00:00 2001 From: ghktndyd Date: Mon, 17 Feb 2025 12:27:27 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=EC=84=B9=EC=85=983=20=ED=95=84=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 8 ++++++++ .idea/aws-saa.iml | 9 +++++++++ .idea/misc.xml | 6 ++++++ .idea/modules.xml | 8 ++++++++ .idea/vcs.xml | 6 ++++++ .../\354\204\271\354\205\2303" | 20 +++++++++++++++++++ 6 files changed, 57 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/aws-saa.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2303" diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..c3f502a --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# 디폴트 무시된 파일 +/shelf/ +/workspace.xml +# 에디터 기반 HTTP 클라이언트 요청 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/aws-saa.iml b/.idea/aws-saa.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/aws-saa.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..4444b22 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..91e99f7 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2303" "b/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2303" new file mode 100644 index 0000000..6586e86 --- /dev/null +++ "b/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2303" @@ -0,0 +1,20 @@ +AWS는 리전, Availabilty Zones(가용 구역), 데이터 센터, 엣지 로케이션, 전송 지점이라는 개념이 존재 + +리전은 전세계에 존재하고, 각각의 리전들은 네트워크로 연결되어 있다. 각각의 리전에는 AZ 라는 가용 영역이 존재한다. + +리전에는 이름이 있다. us-east-1 등등 + +리전은 데이터센터의 집합 + +리전을 선택하는 기준 +1. 법률 준수: 각 나라의 사용자 정보들은 그 나라의 리전에 있는 게 좋다. +2. 지연 시간: 가까운 리전을 선택해야 지연 시간이 줄어든다. +3. 리전에 서비스 존재 여부: 모든 리전이 모든 서비스를 가진 건 아니다. +4. 요금: 각 리전은 요금이 다 다르다. + +가용영역은 리전 내에 존재한다. 보통은 3개 최대는 6개 +리전은 코드가 존재한다. ap-southeast-2a 등등 +각각의 가용영역은 하나 또는 두 개의 데이터센터로 구성된다 + +전송지점 (엣지 로케이션) +엣지 로케이션은 전세계에 많다. 즉, 세계 어디서 AWS의 서비스를 이용하든지 전송 지점이 많기에 지연시간이 줄어든다. \ No newline at end of file From a6989f1a48ad65b45107d5cae2cf950c7481236e Mon Sep 17 00:00:00 2001 From: ghktndyd Date: Mon, 17 Feb 2025 17:58:21 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=EC=84=B9=EC=85=984=20=ED=95=84=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\204\271\354\205\2304" | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2304" diff --git "a/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2304" "b/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2304" new file mode 100644 index 0000000..19880c3 --- /dev/null +++ "b/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2304" @@ -0,0 +1,114 @@ +## IAM + +- IAM: Identity and Access Management의 약자 + +- 루트 계정은 계정 생성 당시에만 사용해야 한다. + +- 그룹 별로 나눠서 권한 관리를 해야 한다. + +- 한 사용자는 여러 그룹에 속할 수 있으며, 그룹에는 그룹을 포함할 수 없다. + +- IAM의 권한 정책은 JSON 문서로 정의할 수 있다. + +- AWS에서는 최소 권한의 원칙을 준수하며 관리해야 한다. (필요한 권한만 주자) + +- IAM은 글로벌 서비스 (리전 필요 X) + +### IAM 정책 + +- IAM 정책은 그룹 단위로 설정 가능하고, 개인 단위로도 설정 가능하다. 개인 단위 설정을 인라인 설정이라고 한다. +- AWS에서는 Json 문서 형태로 정의한다. + - IAM 정책 구조 요소는 정책 버전을 포함한다. + - 정책 식별 ID도 존재하지만 선택사항이다. + - **effect**: 특정 API에서 접근하는 것을 허용할지 안 할지를 선택한다. + - **principal**: 특정 정책이 적용될 사용자, 계정, 혹은 역할로 정의된다. + - **action**: effect 기반으로 허용 및 거부 될 api의 목록이다. + - **resource**: 적용될 action의 목록이다. + - condition: 언제 정책이 실행될지 정의한다. + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": "*", + "Resource": "*" + } + ] +} + +%%AWS에서 "`*`" 은 모든 것을 의미%% +%%위 권한은 모든 것을 허용한다는 의미다.%% +``` + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "iam:GenerateCredentialReport", + "iam:GenerateServiceLastAccessedDetails", + "iam:Get*", + "iam:List*", + "iam:SimulateCustomPolicy", + "iam:SimulatePrincipalPolicy" + ], + "Resource": "*" + } + ] +} +%%`Get *`: Get Api들은 모두 허용%% +``` + +### IAM 방어 정책 + +- IAM을 방어하는 첫번째 방법은 비밀번호 설정이 있다. +- IAM 권한 유저들이 비밀번호를 변경 가능하거나 불가능하게 설정 가능하고, 비밀번호의 변경 주기, 혹은 재사용 가능 여부도 설정 가능하다. + +- IAM을 방어하는 두번째 MFA다. +- MFA는 Multi Factor Authentication이다. 다중 인증 +- AWS에서는 필수이며 사용이 매우 권장된다. +- MFA는 알고 있는 비밀번호와 보유한 장치를 같이 써서 보안을 강화한다. +- 이점은 비밀번호를 도난 당하거나 잃어버려도 해커가 나의 물리적 장치를 소유하지 않으면 무용지물이란 것이다. +- MFA 장치 + - 1. **가상 MFA 장치** (여러 유저 소유 가능) + - 2. 유니버셜 세컨드 팩터 (여러 유저 가능) + - 3. 하드웨어 보안 토큰 + +### Access Keys +- SDK나 CLI를 써야 한다면 액세스 키를 발급 받아야 함 +- CLI = Command Line Interface +- CLI를 쓰면 AWS 서비스에 바로 접근 가능하고, 스크립트로 일부 작업을 자동화 가능 +- 때문에 관리 콘솔을 대신하여 사용하기도 한다. + +### 클라우드쉘 +- 서울 리전에서는 사용 불가능, 사용하려면 도쿄에서 하자 +- 안 써도 그만 + +### IAM Roles (역할) +- AWS 서비스들 중 몇 가지는 우리 계정에서 실행해야 한다. +- 마찬가지로 어떤 권한이 필요하다. 이 권한을 위해서 IAM Role이 필요하다. +- 이것은 사람이 사용하도록 만든 게 아니고 AWS 서비스에 의해서 사용되도록 만들어졌다. +- 예를 들어서 EC2 인스턴스에서 어떤 작업을 실행하기 위해서는 **권한**이 필요한데, 이때 **이 권한이 IAM Role**이다. + +### IAM 정책 보안 보고서 +- 계정에 대한 정보를 확인 가능 +- 비밀번호를 안 바꿨거나, 사용하지 않는 계정을 찾아내는데에 매우 유용 +- Access Management 에서는 내 사용자들이 AWS의 어느 서비스에 접근했는지 알 수 있다. + +### IAM 모범 사례 +- 루트 계정 사용하지 않기 +- AWS 유저 = 실제 사람 1명 +- 보안이 그룹 수준에서 유지되도록 하자 +- MFA 사용하기 +- AWS 서비스에 권한을 부여할 땐 IAM Role을 사용하자 +- 액세스 키는 개인만 알자 +- Credential Report로 사용하지 않는 계정이나 보안이 취약한 계정을 관리하자 + +``` +IAM 정책은 시드, 효과, 원칙, 조치, 리소스, 조건으로 구성된다. +버전은 IAM 정책 자체의 일부이고, 문장의 일부가 아니다. +``` \ No newline at end of file From d0ba45ee6d6360f2df363b2ab1c4965cf9f65c16 Mon Sep 17 00:00:00 2001 From: ghktndyd Date: Mon, 17 Feb 2025 18:50:43 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EC=84=B9=EC=85=985=20=ED=95=84=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\204\271\354\205\2305" | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2305" diff --git "a/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2305" "b/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2305" new file mode 100644 index 0000000..6ccd2f6 --- /dev/null +++ "b/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2305" @@ -0,0 +1,128 @@ +### 예산 설정 +- 돈이 너무 많이 나오지 않도록 설정 +### EC2 +- Elastic Compute Cloud의 약자 +- AWS의 Infrastructure as Service (IAAS) - 이아스라고 발음 +- EC2는 하나의 서비스가 아니다. 여러 개의 서비스를 포함하고 있다. +- 가상머신을 EC2에서 임대하면 그게 **EC2 인스턴스** +- 데이터를 **EBS**에 보관 가능 +- **ELB**로 로드밸런서 역할 가능 +- **ASG**로 오토 스케일링 가능 +- Linux가 제일 인기 많음 +- 원하는대로 컴퓨팅 사양을 설정하여 EC2 대여 가능 +- EC2 부팅할 때 자동화 하는 작업 = 부트스트래핑 (설치, 실행 등) +- **여기서 스크립트는 시작할 때 한 번만 실행** +- EC2 스크립트의 모든 명령문은 sudo로 실행 (루트 계정) + +### EC2 인스턴스 유형 +- 7가지가 있음 + - 범용 (general purpose) + - 컴퓨팅 최적화 (compute optimized) + - 메모리 최적화 (memory optimized) + - 가속화된 컴퓨팅 (accelerated computing) + - 스토리지 최적화 (storage optimized) + - HPC 최적화 (HPC optimized) + - 인스턴스 기능 (instance features) + - 인스턴스 성능 측정 (measuring instance performance) + +``` +m5.2xlarge +- m은 인스턴스 클래스 (m이라면 범용) +- 5는 세대 (5세대) +- 2xlarge (인스턴스 크기) +``` + +#### 범용 +- 웬만해서는 다 잘 어울림 +- 클래스 코드: `t`, `m` + +#### 컴퓨팅 최적화 +- 배치 처리와 같은 일괄 처리 +- 미디어 트랜스 코딩, 고성능 웹서버, HPC, 머신러닝, 게임 서버 +- 클래스 코드: `c` + +#### 메모리 최적화 +- 대규모 데이터셋 처리할 때 +- 고성능이 필요한 관계형 DB, 비관계형 DB 서버, 분산 웹 스케일 캐시 저장소로 + +#### 스토리지 최적화 +- 로컬 스토리지에서 대규모 데이터셋 처리시 +- Redis 같은 메모리 DB의 캐시나 데이터 웨어하우징과 같은 분산 파일 시스템 + +### 보안 그룹 +- EC2 인스턴스 안팎으로 트래픽이 허용되는 방식을 제어 +- 허용 규칙만 포함 +- IP를 기준으로 설정 +- 보안그룹은 서로 참조 가능 +- 보안그룹은 **EC2의 방화벽** +- 보안그룹은 + 1. 포트의 허용을 규제함 + 2. 승인된 IP 범위를 보여줌 (IPv4인가 IPv6인가) + 3. 인바운드 네트워크 제어 (외부에서 인스턴스로) + 4. 아웃바운드 네트워크 제어 (인스턴스에서 외부로) + +- 기본적으로 모든 아웃바운드는 열려있다. +- 하지만 인바운드는 보안그룹에서 허용하는 IP와 포트로 요청이 들어와야 한다. +- 하나의 인스턴스는 여러 개의 보안그룹을 가질 수 있다. +- 보안그룹은 리전과 VPC로 통제된다. 이 말은 리전 변경시 새로운 보안그룹을 생성해야 하거나 VPC를 생성해야 한다. +- 보안그룹은 EC2 외부에 있다. +- SSH 액세스를 위한 보안그룹은 따로 유지하는 것이 좋다. +- **만약 타임아웃으로 애플리케이션에 접근이 안 된다면 보안그룹 문제일 가능성이 높다.** +- 하지만 연결이 거부됐다는 응답은 보안그룹을 통과했지만 애플리케이션에 문제가 발생했을 가능성이 높다는 뜻 + +### 클래식 포트 +- 22: SSH +- 21: FTP +- 22 SFTP +- 80: HTTP +- 43: HTTPS +- 3389: RDP + +### EC2 인스턴스 옵션 +- 그 동안은 AWS의 온디멘드 인스턴스를 썼다. +- 만약 오래 쓸 거라면 Reserved 인스턴스가 있다. 기간은 1년 또는 3년이다. +- Convertible Reserved Instance도 있다. 쓰다가 전환하고 싶으면 이걸 쓰자. +- Savings Plans는 달러 단위로 특정 사용량을 정의해서 쓴다. +- Spot Instance는 짧게 쓸 때 쓰자. +- Dedicated는 전용 인스턴스가 필요할 때 + +#### 온디멘드 +- 온디멘드는 1시간 이후에 초단위로 비용 발생 +- 돈 많이 듦. + +#### 예약 (Reserved) +- 온디멘드에 비해서 72% 할인 +- 특정한 인스턴스 타입을 예약한다. +- 부분 선결제, 전부 선결제, 선결제 없음 중 선택 가능 +- 데이터베이스 같은 거 할 때 +- 전환형 예약 인스턴스도 있음 + +#### 절약 (Saving) +- 온디멘드에 비해 70% 할인 가능 +- 시간당 10달러 +- 1년, 3년 택 +- 사용량을 초과하면 온디멘드로 바뀜 + +#### 스팟 (Spot) +- 온디멘드에 비해 90% 할인 +- 최대 가격 지정하고, 그 가격이 넘어간다면 인스턴스가 초기화 됨.. +- 배치 작업, 데이터 분석, 이미지 처리 등에 사용 +- 중요한 작업을 쓰는 인스턴스로 쓰지 말 것 + +#### EC2 Dedicated Hosts (EC2 전용 호스트) +- 실제 데이터센터 내의 물리적 서버 하나 임대 +- 전용 호스트 사용시 준수 요건을 쉽게 달성하고, 서버 결합 소프트웨어 라이센스의 사용이 가능 +- 3년 계약 +- 제일 비쌈 + +#### EC2 Dedicated Instances (전용 인스턴스) +- 전용 하드웨어에서 실행되는 EC2 인스턴스 +- 같은 계정의 다른 인스턴스와 하드웨어 공유 +- 인스턴스 배치에 통제권 없음 +- 전용 인스턴스는 나만의 인스턴스를 나만의 하드웨어에 갖는다. +- 전용 호스트는 하드웨어 서버 하나를 다 갖는다. + +#### EC2 용량 예약 +- 용량을 예약하는 게 유일한 목적 +- 용량을 예약하면 실행 안 해도 요금 청구 +- 단기적인 워크로드를 갖고, 특정 AZ에 있는 작업에 유용 From 54f34f5a1c06891b02e0f04d3ea8716dfbd4280b Mon Sep 17 00:00:00 2001 From: ghktndyd Date: Mon, 17 Feb 2025 19:13:54 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=ED=99=95=EC=9E=A5?= =?UTF-8?q?=EC=9E=90=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1\354\243\274\354\260\250/\354\204\271\354\205\2303.md" | 0 .../1\354\243\274\354\260\250/\354\204\271\354\205\2304.md" | 0 .../1\354\243\274\354\260\250/\354\204\271\354\205\2305.md" | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2303" => "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2303.md" (100%) rename "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2304" => "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2304.md" (100%) rename "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2305" => "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2305.md" (100%) diff --git "a/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2303" "b/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2303.md" similarity index 100% rename from "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2303" rename to "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2303.md" diff --git "a/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2304" "b/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2304.md" similarity index 100% rename from "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2304" rename to "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2304.md" diff --git "a/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2305" "b/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2305.md" similarity index 100% rename from "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2305" rename to "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2305.md" From be6784f9bc2c5d7c85d21b7db150e5a152b34f6c Mon Sep 17 00:00:00 2001 From: ghktndyd Date: Mon, 17 Feb 2025 19:14:16 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EC=84=B9=EC=85=986=20=ED=95=84=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\204\271\354\205\2306.md" | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 "content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2306.md" diff --git "a/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2306.md" "b/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2306.md" new file mode 100644 index 0000000..3d0c00f --- /dev/null +++ "b/content/ghktndyd/1\354\243\274\354\260\250/\354\204\271\354\205\2306.md" @@ -0,0 +1,63 @@ +### 공용 IP (Public) vs 사설 IP (Private) + +- 네트워크는 IPv4, IPv6로 나눠짐 +- IPv4는 온라인에서 많이 쓰임, IPv6는 사물 인터넷에서 많이 쓰임 +- 공용 IP는 서로의 공용 IP로 통신할 수 있다. +- 사설 네트워크는 사설 IP로 통신하는데 사설 IP는 범위가 존재한다. +- 사설 네트워크 내의 모든 컴퓨터들은 사설 IP로 통신한다. +- 공용 게이트웨이인 인터넷 게이트웨이를 쓴다면 사설 네트워크의 컴퓨터들도 다른 서버들과 통신 가능하다. +- **공용 IP가 있다면 모든 인터넷 통신 가능하고, 사설 IP로는 사설 네트워크 내에서만 액세스할 수 있다.** + +- 공용 IP는 인터넷 상에서 유일해야 한다. +- 사설 IP는 오직 사설 네트워크 안에서만 유일하면 된다. +- 두 개의 사설 네트워크는 두 개의 똑같은 사설 IP가 있을 수 있다. +- 사설 IP가 외부로 통신하려면 인터넷 게이트웨이 같은 장치가 필요하다. +- **인스턴스의 고정 IP를 쓰려면 탄력적 IP가 필요하다.** +- 계정당 탄력적 IP는 5개까지 쓸 수 있다. +- 탄력적 IP는 사용하지 않는 게 권장된다. +- 대신 공용 IP를 써서 DNS 이름으로 통신하는 게 좋다. (Route53에서 가능) +- 나중에는 로드밸런서로 공용 IP를 아예 사용하지 않을 수도 있다. + +- EC2 기기에 SSH를 할 땐 공용 IP만 사용 가능 +- EC2를 껐다가 키면 IP가 변경될 수 있다. + +### 배치 그룹 (Placement Groups) + +- EC2 인스턴스가 AWS 인스턴스에 배치되는 전략을 설정 +- 세 가지 전략이 존재 + - **클러스터 배치 그룹:** 단일 가용 영역 내에서 지연 시간이 짧은 하드웨어 설정으로 인스턴스를 그룹화 + - **분산 배치 그룹:** 인스턴스가 다른 하드웨어에 분산 (Critical Applcations) + - **분할 배치 그룹:** 인스턴스를 분할하는 것과 유용하게 파티션을 분리함. + +#### 클러스터 배치 그룹 + +- **모든 EC2 인스턴스가 같은 가용 영역** +- 모든 인스턴스 간에 초당 10Gb의 대역폭 확보 +- 이 말은 즉 성능이 좋음 +- 하지만 가용 영역에 장애 발생시 모든 EC2 인스턴스가 장애가 발생 +- 빅데이터 작업 등 지연시간이 매우 짧아야 하는 작업 + +#### 분산 배치 그룹 + +- 실패 위험 최소화 +- 모든 EC2 인스턴스가 각기 다른 하드웨어 +- 장점은 여러 가용 영역에 걸쳐 있기에 동시 실패 위험이 적음 +- 단점은 배치 그룹의 가용 영역당 7개의 인스턴스로 제한된다. +- 가용성을 극대화하고, 위험하지 않아야 하는 애플리케이션에서 사용 +- **배치그룹 당 가용 영역의 인스턴스 수는 7개임을 기억** + +#### 분할 배치 그룹 + +- 여러 가용 영역의 파티션에 인스턴스를 분리 +- 가용 영역당 최대 7개의 파티션 +- 각 파티션에는 EC2 인스턴스가 존재할 수 있음 +- 각 파티션은 AWS의 랙인데, 파티션이 많으면 인스턴스가 랙 실패로부터 안전하다. +- 각 파티션을 실패로부터 격리된다. 즉 파티션 하나가 다운되더라도 다른 파티션은 정상 + +### Elastic Netword Interfaces (ENI) + +- VPC의 논리적 구성 요소이자 가상 네트워크 카드 +- ENI가 EC2 인스턴스에 접근하도록 해줌 +- ENI는 주요 사설 IPv4와 보조 사설 IPv4를 가질 수 있다. +- EC2에 얼마든지 보조 IPv4를 추가 가능 +- ENI에 하나 이상의 보안그룹 설정 가능 \ No newline at end of file