EC2 (Amazon Elastic Computer Cloud)

EBAB!·2023년 7월 7일
0

AWS 자격증 준비

목록 보기
4/16
post-thumbnail

EC2 기초

EC2 (Amazon Elastic Computer Cloud) 아마존 정의 : 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스입니다. 개발자가 더 쉽게 웹 규모의 클라우드 컴퓨팅 작업을 할 수 있도록 설계되었습니다.

EC2 장점

온디맨드 가격 모델

  • 가격이 초 단위로 결정
  • 서비스 요금을 미리 약정하거나 선입슴이 필요 없음

빠른 구축 속도와 확장성

  • 몇 분이면 전 세계에 인스턴스 수백여대를 구축 가능

다양한 구성방법 지원

  • 머신러닝, 웹서버, 게임서버, 이미지처리 등 다양한 용도에 맞는 최적화된 서버 구성 가능
  • 다양한 과금 모델 사용 가능

여러 AWS 서비스와 연동

  • 오토스케일링, Elastic Load Balance(ELB), CloudWatch

사용 사례

  • 데이터베이스, 웹 서버, 머신 러닝, 어플리케이션의 백엔드 서버, 데이터 프로세싱, 기타 서버가 필요한 모든 작업

요금 구성

  • 인스턴스 요금
  • 데이터 전송
  • EBS
  • 기타 서비스
    • Carrier IP(awveLength), Elastic IP 등
  • 연동 서비스
    • ELB, CloudWatch 등

EC2 가격 정책

요금 순서 : S < R < O < D

EC2의 요금 모델은 EBS와는 별도 : EBS는 사용한 만큼 지불

기타 데이터 통신 등의 비용은 별도로 청구 : AWS 바깥으로 나가는 트래픽에 대해서만 요금을 부과On-Demand

  • 실행하는 인스턴스에 따라 시간 또는 초당 컴퓨팅 파워로 측정된 가격을 지불
  • 약정은 필요 없음
  • 수요 예측이 힘들거나 유연하게 사용하고 싶을 때
  • 한번 써보고 싶을 때

Spot Instance

  • AWS에서 보유중인 남는 인스턴스를 저렴한 가격으로 제공
  • 경매 형식으로 가격을 저렴하게 지정
  • 최대 90%정도 저렴
  • 단 언제 도로 내주어야 할 지 모름
    • 내가 지정한 가격보다 현재 가격이 낮다면 사용, 높아진다면 반환
  • 시작, 종료가 자유롭거나 추가적인 컴퓨팅 파워가 필요한 경우
    • 분산 아키텍쳐가 필요
    • 주로 빅데이터 처리, ML등 많은 인스턴스가 필요한 작업에 사용

Reserved Instances-RI

  • EC2 인스턴스를 일정 기간 약정하여 요금을 할인 받는 방식
  • 온디맨드 EC2 사용 요금을 할인 받는 방식으로 적용
  • 할인 받고 싶은 EC2 인스턴스와 같은 리전, 유형 구매 필요
  • 미리 일정 기간(1~3년) 약정해서 사용
  • 최대 75%정도 저렴
  • 수요 예측이 확실할 때
  • 총 비용을 절감하기 위해 어느정도 기간의 약정이 가능한 사용자
  • 종류
    • 결제 방법 기준
      • 전체 선결제 : 모든 금액을 기간 시작 전에 결제 → 가장 저렴
      • 부분 선결제 : 비용 중 일부만 시작 전에 결제 → 나머지 비용은 할인 가격으로 시간당 청구
      • 선결제 없음 : 모든 비용을 할인 가격으로 시간당 청구
    • 범위 기준
      • 리전 : 리전 전체에 사용할 수 있는 예약 인스턴스
      • 영역 : 특정 가용영역에서만 사용할 수 있는 예약 인스턴스
        • 클래스 기준
          • 표준 : 큰 할인 혜택, 단 교환 불가능 (수정만 가능)
          • 컨버터블 : 낮은 할인 혜택. 다른 인스턴스 패밀리 예약 인스턴스로 교환 가능

약정 기간이 길 수록 더 큰 할인율 적용

리전별로 적용 : 다른 리전과 공유 불가

Dedicated(전용 호스트)

  • 가상화된 서버에서 EC2를 빌리는 것이 아닌 지정된 물리 서버에서 EC2 대여
  • 실제 물리적인 서버를 임대받아 사용
  • 라이선스 이슈 (Windows Server 등)
  • 규정에 따라 필요한 경우
  • 퍼포먼스 이슈 (CPU Steal 등)

EC2의 구성

EC2 인스턴스

  • EC2에서 컴퓨팅을 담당
    • 다양한 유형과 크기로 구성
    • 저장을 담당하는 EBS와 네트워크로 연결
  • 저장 방법에 따른 분류
    • EBS 연동 : EBS 볼륨이 따로 있고 네트워크 연결
    • 인스턴스 스토어 : 인스턴스 스토리지 볼륨이 인스턴스와 함께 존재
      • 이 경우, 인스턴스가 사라지면 스토리지 볼륨도 함께 사라짐
      • 빠름
  • 하나의 가용영역(AZ) 안에 존재

인스턴스 유형

  • 인스턴스의 역할에 따라 CPU, 메모리, 스토리지, 네트워크 등을 조합한 구성
  • 각 인스턴스 유형 별로 사용 목적에 따라 최적화
  • 각 인스턴스 유형 별로 사용 목적에 따라 최적화
    • ex. 메모리 위주, CPU위주, 그래픽카드 위주 등등
  • 유형별로 이름을 부여
    • t유형, m유형, inf유형 등
    • 같은 유형의 인스턴스들을 인스턴스 패밀리라 부름
  • 타입 별 세대별로 숫자 부여
    • ex. m5 = m인스턴스의 5번째 세대
  • 아키텍쳐 및 사용 기술에 따라 접두사
    • ex. t4g = t4 인스턴스 중 AWS Graviton 프로세스(g)를 사용

인스턴스 크기

  • 같은 인스턴스 패밀리에서 다양한 크기가 존재
  • 인스턴스 cpu 갯수, 메모리 크기, 성능 등으로 사이즈 결정
  • 크기가 클수록 → 메모리 CPU, 네트워크 대역폭, EBS와의 통신 가능 대역폭 많아짐


EBS

Amazon의 EBS 의미 : EBS(Amazon Elastic Block Store)는 클라우드 Amazon EC2 인스턴스에 사용할 영구 블록 스토리지 볼륨을 제공합니다. 각 EBS 볼륨은 가용 영역 내에 자동으로 복제되어 구성 요소 장애로부터 보호해주고, 고가용성 및 내구성을 제공합니다.

  • 가상의 하드 드라이브. EC2 인스턴스가 종료되어도 계속 유지 가능
    • 루트 볼륨으로 사용 시 EC2가 종료되면 같이 삭제됨
    • 단 설정을 통해 EBS만 따로 존속 가능
  • 용량을 범위에 따라 자유롭게 설정 가능
  • 하나의 EBS를 여러 EC2 장착 가능 (EBS Multi Attach)
  • EC2 인스턴스와 같은 가용영역에 존재
    • 즉, 하나의 가용영역 안에서만 존재
  • 가용성을 목표로 가용영역 안에 자동으로 분산 저장

유형

  • 범용 (General Purpose or GP) : SSD
  • 프로비저닝 된 IOPS (Provisioned IOPS or Io) : SSD
  • 쓰루풋 최적화 (Throughput Optimized HHD or ST) : HDD
  • 콜드 HDD (SC) : HHD
  • 마그네틱 (Standard) : HDD


Amazon EBS 스냅샷

  • 특정 시간에 EBS 상태를 저장한 데이터
  • 필요시 스냅샷을 통해 특정 시간의 EBS를 복구 가능
  • S3에 보관
    - 증분식 저장 : 바뀐 부분만 저장
    - ex. 10TB에 1MB를 10번 수정 → 총 스냅샷 크기는 10TB + 10MB
    - 증분식이 아니라면 10TB x 10

AMI (Amazon Machine Image)

  • EC2 인스턴스를 실행하기 위해 필요한 정보를 모은 템플릿
  • 구성
    • 1개 이상의 EBS 스냅샷
    • 사용 권한 (어떤 AWS 어카운트가 사용할 수 있는지)
    • 블록 디바이스 매핑(EC2 인스턴스를 위한 볼륨 정보 = EBS가 무슨 용량으로 몇 개 붙는지)
  • 저장 유형에 따른 생성 방법
    • EBS : 스냅샷을 기반으로 루트 디바이스 생성
    • 인스턴스 저장 : S3에 저장된 템플릿을 기반으로 생성



보안 그룹

AWS 설명 : 보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 합니다.

  • EC2의 방화벽 역할을 하는 서비스
  • Port 허용
    • 기본적으로 모든 포트는 비활성화
    • 선택적으로 트래픽이 지나갈 수 있는 Port와 Source를 설정 가능
    • Deny는 불가능
  • 인스턴스 단위
    - 하나의 인스턴스에 하나 이상의 보안 그룹 설정 가능
    - 인스턴스에 여러 보안 그룹이 적용될 경우 모든 보안 그룹의 규칙을 적용 받음


EC2의 연결 방법

SSH/RDP 연결

연결 방법 : SSH 연결

동작 방식 : SSH

연결 인증 방식 : SSH 키 페어로 인증

  • SSH 키페어
    • 인스턴스에 연결할 때 자격 증명 입증에 사용하는 보안 자격 증명 집합
      • 프라이빗 키, 퍼블릭 키로 구성
    • 재발급 불가능
      • 분실 시 , EBS를 분리해서 다른 인스턴스에 연결 혹은 스냅샷을 통해 재생성 필요
    • 리전 단위
      • 다른 리전에서 사용하기 위해서는 import 필요

주요기능 : 기본적인 SSH 통신 (Linux)

연결 방법 : RDP연결

동작 방식 : RDP

연결 인증 방식 : 아이디, 패스워드 접속

주요 기능 : 기본적인 통신 (windows)

EC2 인스턴스 연결

연결 방법 : EC2 인스턴스 연결

동작 방식 : 임시 SSH키를 생성해서 EC2로 밀어 넣어 연결하는 방식

연결 인증 방식 : IAM 인증

주요 기능 : 기본적인 SSH 통신

이 외에 Session Manager, EC2 직렬 콘솔 방법이 있음.


EC2의 권한 부여

IAM 자격 증명을 등록

  • IAM 사용자를 생성하고 IAM 자격 증명을 발급받아 EC2에 등록
    • IAM 사용자의 모든 권한을 받음
  • AWS Configure를 통해 자격 증명을 파일로 등록
  • 관리가 어렵고 바꾸기 힘듬
    - ex. EC2 100대의 자격 증명을 교체하는 상황

IAM 역할을 부여 (권장)

  • 권한이 부여된 IAM 역할을 만들고 EC2에 부여
  • 관리가 쉽고 교체가 쉬움
  • 내부적으로 지속적으로 자격증명을 변경
    • 뛰어난 보안성
  • ex. EC2 + EC2 서비스 관리 역할(Role) = 서비스 관리 EC2


ENI(Elastic Network Interface)와 탄력적 IP

ENI - AWS 설명 : 탄력적 네트워크 인터페이스는 VPC에서 가상 네트워크 카드를 나타내는 논리적 네트워킹 구성 요소입니다.

  • EC2의 가상의 랜카드
  • IP주소와 Mac 주소를 보유
  • 하나의 인스턴스에 여러 개의 ENI를 연동 가능
    • 하나의 인스턴스가 한 개 이상의 아이피를 보유 가능
  • 인터느스 유형 및 사이즈에 따라 최대 보유 가능한 IP주소가 변동
  • 내부적으로는 보안 그룹은 ENI에 장착

Elastic IP

EC2 - ENI 구조는 연결되어 있기에 EC2가 종료되면 ENI도 종료가 되며 IP가 해제되고 재실행 시 IP의 주소가 바뀜.

→ Elastic IP address는 ENI로부터 독립적이기에 EC2 인스턴스 실행이 멈춰도 고정적인 IP를 유지 가능.

  • EC2의 퍼블릭 IP를 고정해주는 서비스
    • 즉 인스턴스를 중지 → 재시작 해도 고정적인 IP를 확보 가능
  • 사용할 때는 무료, 단 확보하고 사용하지 않을 경우 비용 발생
  • EC2 이외에 다른 서비스(예:NLB)에도 사용 가능
  • 내가 보유한 IP 주소를 AWS에서 사용 가능
  • 리전 단위
  • 할당 방법 : EC2 → 탄력적 IP → 탄력적 IP 주소 할당 → 탄력적 IP 주소 연결 → 인스턴스 선택
  • 비용
    • 실행 중인 인스턴스에 연결된 각 추가 IP 주소에 대해 시간당 0.005 USD(비례 할당으로 계산)
    • 실행 중인 인스턴스에 연결되지 않은 탄력적 IP 주소에 대해 시간당 0.005 USD(비례 할당으로 계산)
    • 매달 처음 100개의 재매핑에 대해 탄력적 IP 주소 재매핑당 0.00 USD
    • 매달 100개의 추가 재매핑에 대해 탄력적 IP 주소 재매핑당 0.10 USD



EC2 Auto Scailing

배경 지식

수직 확장 (Vertical Scale, Scale Up)

  • 인스턴스 성능을 업그레이드 → 성능이 16배 증가한다면 비용은 그 이상으로 증가
    • 과학 기술적으로 더 어려운 작업이기 때문
  • 아주 큰 스케일의 확장 불가능

수평 확장 (Horizontal Scale, Scale Out) (지향점)

  • 인스턴스 갯수를 추가 → 성능이 16배 증가한다면 비용도 16배
  • 아주 큰 스케일의 확장 가능

Auto Scailing

AWS 설명 : Auto Scailing은 애플리케이션을 모니터링하고 용량을 자동으로 조정하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지합니다. Auto Scailing을 사용하면 몇 분 만에 손쉽게 여러 서비스 전체에서 여러 리소스에 대해 애플리케이션 규모 조정을 설정할 수 있습니다.

  • EC2 뿐만 아니라 DDB, Spot Fleet, Aurora, ECS 에서도 서비스

EC2 Auto Scailing 목적

  • 정확한 수의 EC2 인스턴스를 보유하도록 보장
    • 그룹의 최소 인스턴스 숫자 및 최대 인스턴스 숫자 : 최소/최대 숫자 이하/이상으로 내려가지 않도록 인스턴스를 추가 삭제하며 유지
  • 다양한 스케일링 정책 적용
    • ex. CPU의 부하에 따라 인스턴스 크기 조정
    • 가용 영역에 인스턴스가 골고루 분산될 수 있도록 인스턴스를 분배

EC2 Auto Scailing 구성

  • 시작 구성/시작 템플릿 : 무엇을 실행시킬 것인가
    • EC2의 유형, 크기
    • AMI
    • 보안 그룹, Key, IAM 역할
    • 유저 데이터
  • 모니터링 : 언제 실행시킬 것인가? & 상태 확인
    • ex. CPU 점유율이 일정 %를 넘어섰을 때 추가 실행
    • ex. 2개 이상이 필요한 스택에서 EC2하나가 죽었을 때
    • Cloud Watch ELB와 연계
  • 설정 : 얼마나 어떻게 실행시킬 것인가?ㅁ
    - 최대/최소 인스턴스 갯수
    - ELB와의 연동


ELB (Elastic Load Balancer)

AWS 설명 : 둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산합니다. 등록된 대상의 상태를 모니터링 하면서 상태가 양호한 대상으로만 트래픽을 라우팅합니다.

Load Balancer의 위치

  • 다수의 EC2에 트래픽을 분산 시켜주는 서비스

  • 총 4가지 종류

    • Application LB

      • 똑똑한 녀석

      • OSI Model Layer 7

      • 트래픽을 모니터링하여 라우팅 가능

    • Network LB

      • 빠른 녀석
      • OSI Model Layer 4
      • TCP 기반 빠른 트래픽 분산
      • Elastic IP 할당 가능 (IP 고정 가능)
    • Classic LB

      • 옛날 녀석
      • 현재 잘 사용되지 않는 타입
    • Gateway LB

      • 먼저 트래픽을 체크하는 녀석
      • OSI Layer 3
      • 가상 어플라이언스 배포/확장 관리를 위한 서비스
  • Health Check : 지겆ㅂ 트래픽을 발생시켜 인스턴스가 살아있는지 체크

  • Auto Scailing과 연동 가능

  • 지속적으로 IP 주소가 바뀌며 IP 고정 불가능 : 항상 도메인 기반으로 사용

EC2 Auto Scailing과 연동

Auto Scailing을 통해 EC2 인스턴스 숫자를 관리하고 ELB를 통해 분산 트래픽 처리

Auto Scailing의 인스턴스 증감과 같이 ELB에 연결


대상 그룹 (Target Group)

ELB가 라우팅할 대상의 집합

구성

  • 대상종류
    • Instance
    • IP
    • Lambda
    • ALB
  • 프로토콜 (HTTP,HTTPS,gRPC,TCP 등)
  • 기타 설정
    • 트래픽 분산 알고리즘, 고정 세션 등

설정 방법 (로드 밸런서 설정)

  1. EC2 → 대상 그룹 → 대상 그룹 생성
    • 프로토콜은 대체로 HTTP
    • 상태 검사 경로 : 말 그대로 상태를 검사할 URL
    • 이후 인스턴스 선택
  2. EC2 → 로드 밸런서 → 로드 밸런서 유형 선택(ALB)
    • 가용영역 매핑 : 어디 가용영역에 할당될지 (다 선택해도 무방)
    • 나머진 디폴트 값 그대로
  3. 로드 밸런서 활성 상태 후 → 접속
    - 여러 인스턴스에 번갈아가며 트래픽 할당

Auto Scailing 적용

  1. EC2 → 시작 구성 → 시작 구성 생성
    • 사용자 데이터 : 텍스트로
      • 구체적인 설명은 차후 업데이트
  2. EC2 → Auto Scailing 그룹 → Auto Scailing 그룹 생성
    • 시작 템플릿을 시작 구성으로 전환
    • 시작 구성 : 1에서 설정한 시작 구성 선택
    • 기존 로드 밸런서에 연결 : 설정한 로드 밸런서 선택
    • 상태 확인 : 로드 밸런서를 사용할 거면 ELB 선택
    • 태그 : Auto Scailing으로 만들어진 그룹에 이름 부여
  3. 이후 설정에 따라 자동으로 EC2 생성
    • 가끔 Failed가 나는 것은 가용 영역에 인스턴스가 없어서. 무시해도 무방
  4. 리소스 정리는 최소, 최대 용량을 0으로 할 시 자동 정리
    • 만약 종료가 늦게 되다면 : ALB→속성을 보면 ‘등록 취소 지연’ 시간이 존재
      • 바로 종료시 디버깅이 불가능해서 지연 시간이 존재



Amazon EFS, Amazon FSx

EFS AWS 설명 : Elastic File System은 AWS 클라우드 서비스와 온프레미스 리소스에서 사용할 수 있는 간단하고 확장 가능하며 탄력적인 완전관리형 NFS 파일 시스템을 제공합니다. 이 제품은 애플리케이션을 중단하지 않고 온디맨드 방식으로 페타바이트 규모까지 확장하도록 구축되어 파일을 추가하고 제거할 때 자동으로 확장하고 축소하며 확장 규모에 맞게 용량을 프로비저닝 및 관리할 필요가 없습니다.

  • NFS 기반 공유 스토리지 서비스 (NFSv4)
    • 따로 용량을 지정할 필요 없이 사용한 만큼 용량이 증강 ↔ EBS는 미리 크기를 지정
  • 몇 천개의 동시 접속 유지 가능
  • 데이터는 여러 AZ에 나누어 분산 저장
  • Read After Write 일관성

FSx

FSx for Windows File Server

  • EFS의 윈도우즈 버전
  • SMB 프로토콜을 활용
  • Microsoft Active Directory와 통합 등의 관리 기능 사용 가능
  • Linux, MacOS 등의 다른 OS에서 활용 가능

FSx for Lustre

  • 리눅스를 위한 고성능 병렬 스토리지 시스템
  • 주로 머신러닝, 빅데이터 등의 고성능 컴퓨팅에 사용
  • AWS 밖의 온프레미스에서 액세스 가능

설정 방법

  1. EC2 → 보안 그룹 → 보안 그룹 생성
    • 인바운드 규칙 : NFS
    • 이 외는 디폴트
  2. EFS → 파일 시스템 생성
    • 리전 선택
  3. 파일 시스템 → 생성한 파일 시스템 → 아래 블록의 네트워크 → 관리
    • 보안 그룹이 디폴트값이라 이전에 만든 보안그룹으로 교체
  4. EC2 → 시작 구성 → 시작 구성 생성
  5. EC2 → Auto Scailing 그룹 → Auto Scailing 그룹 생성
    • 시작 구성은 4단계의 설정 선택
    • ELB 필요 x
profile
공부!

0개의 댓글

관련 채용 정보