1. 강의 내용
학습 범위
- 1. 소개 ~ 6. EC2 - 솔루션스 아키텍트 어소시에이트 레벨
2. 강의 정리
1) AWS에 접근하는 방법
1. AWS Management Console
: 웹 브라우저를 통해 AWS 서비스에 접근하는 GUI 환경
2. AWS CLI
: 터미널로 AWS 서비스를 관리할 수 있는 도구
3. AWS SDK
: 애플리케이션에서 AWS 서비스에 접근할 수 있도록 제공되는 라이브러리
// AWS SDK for Java v2
dependencies {
implementation 'software.amazon.awssdk:s3:2.x.x' // S3
}
2) IAM Role & Policy
1. IAM Role
: 특정 AWS 서비스에 액세스할 수 있도록 권한을 부여하는 AWS IAM 개체
IAM Role은 직접 권한을 가지지 않고, 정책(Policy)을 연결해야 AWS 리소스에 접근할 수 있다.
즉, IAM Role 자체는 권한이 없으며 연결된 Policy가 Role에 권한을 부여한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow", // 권한 정의
"Principal": {
"Service": "ec2.amazonaws.com" // Role을 수행할 주체
},
"Action": "sts:AssumeRole" // 등록한 Role에 접근할 수 있도록 함
}
]
}
2. IAM Policy
: 특정 사용자, 그룹 또는 서비스가 AWS 리소스에 대한 Access or Deny 규칙을 정의하는 JSON 문서
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow", // 권한 정의
"Action": [ // 수행 작업
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::my-example-bucket/*" // 정책이 적용될 AWS 리소스
}
]
}


3) EC2
1. EC2의 주요 기능
- 가상 머신 대여
- 스토리지 옵션 제공
- EBS(Elastic Block Store): 네트워크를 통해 연결된 가상 드라이브로, 데이터가 인스턴스 종료 후에도 유지됨.
- EFS(Elastic File System): 여러 인스턴스에서 공유할 수 있는 파일 스토리지
- EC2 Instance Store: EC2 내의 스토리지에 저장되며, 인스턴스가 종료되면 데이터가 사라짐.
- 부하 분산
- ELB(Elastic Load Balancer): 여러 개의 EC2 인스턴스에 트래픽을 분산하여 부하를 줄이고, 고가용성을 보장함.
- 자동 확장
- ASG(Auto Scaling Group): 트래픽이나 사용량이 증가하면 EC2 인스턴스를 Scale out하고, 감소하면 자동으로 종료하여 비용을 최적화함.
- Auto-Scaling Group을 사용한 서비스 확장 (ASG)
2. EC2 User Data
: EC2 인스턴스를 생성할 때, EC2 User Data 스크립트를 사용할 수 있다.
이는 인스턴스가 처음 시작될 때, 실행할 초기 명령어를 등록하여 자동으로 실행하도록 한다.

4) 인스턴스 유형
https://aws.amazon.com/ko/ec2/instance-types/
1. 범용 인스턴스 (General Purpose)
특징
- CPU, 메모리, 네트워크 등의 자원을 균형 있게 제공
- 웹 서버, 애플리케이션 서버, 개발/테스트 환경 등에 사용
예시 인스턴스
인스턴스 유형 | vCPU | RAM | 네트워크 성능 | 사용 사례 |
t3.micro | 2 | 1GB | 최대 5Gbps | 저비용 웹 서버, 개발 및 테스트 |
t3.medium | 2 | 4GB | 최대 5Gbps | 중간 규모 애플리케이션 |
m5.large | 2 | 8GB | 최대 10Gbps | 데이터베이스, 기업 애플리케이션 |
m6g.xlarge | 4 | 16GB | 최대 12Gbps | ARM 기반 워크로드, 컨테이너 |
2. 컴퓨팅 최적화 인스턴스 (Compute Optimized)
특징
- 높은 성능의 CPU 제공
- 컴퓨팅 집약적인 애플리케이션에 적합
- 과학적 연산, 비디오 인코딩, 고성능 웹 서버, 머신러닝에 활용
예시 인스턴스
인스턴스 유형 | vCPU | RAM | 네트워크 성능 | 사용 사례 |
c5.large | 2 | 4GB | 최대 10Gbps | 고성능 웹 서버, 온라인 게임 서버 |
c6g.xlarge | 4 | 8GB | 최대 12Gbps | ARM 기반 애플리케이션 |
c5.4xlarge | 16 | 32GB | 최대 25Gbps | 머신러닝, 과학적 계산 |
3. 메모리 최적화 인스턴스 (Memory Optimized)
특징
- 대용량 메모리를 필요로 하는 워크로드에 최적화
- 인메모리 데이터베이스, 캐싱 서버, 고성능 분석 작업에 적합
예시 인스턴스
인스턴스 유형 | vCPU | RAM | 네트워크 성능 | 사용 사례 |
r5.large | 2 | 16GB | 최대 10Gbps | 인메모리 데이터베이스(Redis, Memcached) |
r6g.2xlarge | 8 | 64GB | 최대 25Gbps | 빅데이터 분석, 고성능 캐싱 |
x1e.8xlarge | 32 | 976GB | 최대 25Gbps | SAP HANA, 고급 분석 |
4. 스토리지 최적화 인스턴스 (Storage Optimized)
특징
- 높은 디스크 I/O 성능 제공
- 대규모 데이터 처리, 분산 파일 시스템, 데이터 웨어하우스에 적합
예시 인스턴스
인스턴스 유형 | vCPU | RAM | 스토리지 | 사용 사례 |
i3.large | 2 | 16GB | 1 x 475GB NVMe SSD | 고속 데이터베이스, NoSQL 데이터베이스 |
i3en.12xlarge | 48 | 384GB | 4 x 7.5TB NVMe SSD | 빅데이터 분석, 데이터 웨어하우스 |
d2.8xlarge | 36 | 244GB | 24 x 2TB HDD | Hadoop, 로그 처리 |
(추가)
5. 가속 컴퓨팅 인스턴스 (Accelerated Computing)
특징
- GPU 또는 FPGA를 사용하여 높은 병렬 연산 성능 제공
- 머신러닝, 딥러닝, 그래픽 렌더링, 고성능 컴퓨팅(HPC)에 적합
예시 인스턴스
인스턴스 유형 | vCPU | GPU | RAM | 사용 사례 |
g4dn.xlarge | 4 | NVIDIA T4 | 16GB | 머신러닝 추론, 영상 처리 |
p3.8xlarge | 32 | 4x NVIDIA V100 | 244GB | 딥러닝 모델 훈련 |
f1.2xlarge | 8 | 1x FPGA | 122GB | FPGA 기반 하드웨어 가속 |
6. 고성능 컴퓨닝 인스턴스 (HPC, High Performance Computing)
특징
- 고성능 컴퓨팅 및 과학적 연구에 최적화
- 높은 네트워크 성능과 함께 제공됨
예시 인스턴스:
인스턴스 유형 | vCPU | RAM | 네트워크 성능 | 사용 사례 |
hpc6a.48xlarge | 192 | 768GB | 최대 100Gbps | 유체 역학 시뮬레이션 |
c6gn.16xlarge | 64 | 128GB | 최대 100Gbps | 대규모 병렬 연산 |
5) EC2 Instance Role
EC2 인스턴스에서 "AWS CLI"를 설정할 때, 자격 증명 정보를 입력하지 않도록 하는 것이 중요하다. 이를 위해 적절한 IAM 역할(IAM Roles)을 생성하고, 해당 역할을 인스턴스에 부여해야 한다.
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: ap-northeast-2
Default output format [None]: json

6) Spot Instance
EC2 Spot Instance
: AWS의 EC 인스턴스를 매우 저렴한 가격에 사용할 수 있도록 제공되는 유형이다. AWS가 특정 시점에는 사용되지 않는 리소스를 Spot 인스턴스로 제공하여, 사용자가 기존의 온디맨드 가격보다 훨씬 저렴하게 인스턴스를 사용할 수 있도록 한다.
특징
- AWS에서 가장 비용 효율적인 인스턴스 유형
- On-demand 인스턴스 대비 최대 90% 비용 절감 가능
- 현재 Spot 가격이 설정한 최대 가격보다 높아지면 언제든지 종료
- 기본적으로 2분 전 알림 제공
- 장애에 강한(복원력이 있는) 워크로드에 적합
→ 중요한 애플리케이션 운영에는 부적합- 배치 작업
- 데이터 분석
- 이미지 처리
- 분산 처리 작업
- 시작 및 종료 시간이 유연한 워크로드
7) Spot Fleets
: AWS EC2의 Spot 인스턴스를 자동으로 관리하고 최적의 비용으로 인프라를 운영할 수 있도록 해주는 서비스이다. Spot Fleet을 사용하여 단순히 한두 개의 Spot 인스턴스를 실행하는 것이 아니라, 여러 개의 Spot 인스턴스와 On-Demand 인스턴스를 조합하여 자동으로 용량을 조정할 수 있다.
특징
- Spot Fleets = 여러 개의 Spot 인스턴스 + (선택적으로) On-Demand 인스턴스의 조합
- 스팟 플릿은 설정한 가격 제한 내에서 목표 용량을 충족하려고 시도함
- 가능한 실행 풀(Launch Pools) 정의:
- 인스턴스 유형 (예: m5.large)
- 운영 체제(OS)
- 가용 영역(Availability Zone)
- 여러 개의 실행 풀을 설정할 수 있어, 플릿이 최적의 풀을 선택할 수 있음
- 플릿이 목표 용량을 충족하거나 최대 비용에 도달하면 인스턴스 실행을 중지
- Spot 인스턴스를 할당하는 전략
- lowestPrice: 가장 저렴한 풀에서 인스턴스 할당 (비용 최적화, 단기 작업에 적합)
- diversified: 모든 풀에 분산하여 배치 (가용성이 중요하고 장기적인 작업에 적합)
- capacityOptimized: 인스턴스 수요를 충족할 수 있는 최적의 풀 선택
- priceCapacityOptimized (권장됨): 가장 많은 인스턴스를 제공할 수 있는 풀을 먼저 선택한 후, 그중에서 가장 저렴한 풀을 선택 (대부분의 워크로드에 적합)
8) EC2 Dedicated Hosts / Instances
EC2 Dedicated Hosts
: AWS에서 제공하는 물리적인 서버를 한 명의 사용자가 온전히 독점적으로 사용할 수 있는 서비스이다. 일반적인 EC2 인스턴스는 여러 사용자가 공유하는 서버에서 가상화된 형태로 실행되지만, 전용 호스트는 물리적 서버 전체를 하나의 사용자만 사용할 수 있도록 제공된다.
EC2 Dedicated Instances
: 일반적인 EC2 인스턴스는 여러 사용자가 동일한 하드웨어를 공유하지만, 전용 인스턴스는 특정 사용자의 계정 내에서만 실행되도록 보장된다. 다만, 같은 계정 내의 다른 전용 인스턴스와 하드웨어를 공유할 수도 있다.
Dedicated Instances | Dedicated Hosts | |
전용 물리 서버 사용 | O | O |
같은 계정 내에서 하드웨어 공유 가능 | O | X (완전히 독점) |
과금 방식 | 인스턴스 단위 과금 ($2/리전 추가 요금) | 호스트 단위 과금 |
소켓, 코어, 호스트 ID 가시성 | X | O |
호스트와 인스턴스 간의 연결 유지 | X | O (호스트와 인스턴스의 일관성 유지 가능) |
인스턴스의 하드웨어 위치 지정 | X (자동 배치) | O (사용자가 직접 배치 가능) |
자동 인스턴스 배치 | O | O |
추가 용량 요청 가능 | X | O |
'DevOps > AWS' 카테고리의 다른 글
AWS SAA 4주차 (1) (0) | 2025.03.14 |
---|---|
AWS SAA 3주차 (0) | 2025.03.08 |
AWS SAA 2주차 (0) | 2025.03.01 |
Linux에서의 swap 메모리 설정 (0) | 2024.07.23 |
AWS Secrets Manager 적용하기 (0) | 2024.07.17 |