AWS SAA 1주차

2025. 2. 22. 20:56·DevOps/AWS

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 리소스
    }
  ]
}

 

IAM > Roles > Create role > Select trusted entity > Add Policies > Role(Trust policy)

 


 

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 인스턴스를 할당하는 전략
    1. lowestPrice: 가장 저렴한 풀에서 인스턴스 할당 (비용 최적화, 단기 작업에 적합)
    2. diversified: 모든 풀에 분산하여 배치 (가용성이 중요하고 장기적인 작업에 적합)
    3. capacityOptimized: 인스턴스 수요를 충족할 수 있는 최적의 풀 선택
    4. 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
'DevOps/AWS' 카테고리의 다른 글
  • AWS SAA 3주차
  • AWS SAA 2주차
  • Linux에서의 swap 메모리 설정
  • AWS Secrets Manager 적용하기
wch_t
wch_t
  • wch_t
    끄적끄적(TIL)
    wch_t
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (171)
      • Architecture (0)
      • Algorithm (67)
        • Math (5)
        • Simulation (1)
        • Data Structure (4)
        • DP (7)
        • Brute Fource (10)
        • Binary Search (6)
        • Greedy (2)
        • Graph (11)
        • Mst (1)
        • Shortest path (10)
        • Two Pointer (1)
        • Tsp (3)
        • Union Find (2)
        • Mitm (1)
      • CS (2)
        • 데이터베이스 (5)
        • 네트워크 (5)
      • DB (6)
      • DevOps (17)
        • AWS (9)
        • Docker (1)
        • CI-CD (5)
      • Error (1)
      • Project (0)
        • kotrip (0)
      • Spring (59)
        • 끄적끄적 (5)
        • 기본 (9)
        • MVC 1 (7)
        • MVC 2 (11)
        • ORM (8)
        • JPA 1 (7)
        • JPA 2 (5)
        • Spring Data Jpa (7)
      • Test (2)
      • TIL (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    TempTable
    docker: not found
    form_post
    spring-cloud-starter-aws-secrets-manager-config
    Sxssf
    백준 3015 파이썬
    response_mode
    apache poi
    aws secrets manager
    scope
    백준 17299 파이썬
    백준 17289 파이썬
    Merge
    view algorithm
    애플
    Jenkins
    docker
    spring-cloud-starter-bootstrap
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
wch_t
AWS SAA 1주차
상단으로

티스토리툴바