Post

[Cloud] AWS EC2의 이해

Amazon EC2 이해


학습 목표 - Amazon EC2에 대해 이해합니다.

  • Amazon EC2 인스턴스를 생성시 필요한 구성 정보를 확인합니다.
  • 인스턴스 유형, 인스턴스 비용 지불 방식, AMI, 키페어, 스토리지 구성 방식

1. Amazon EC2 인스턴스 타입

  • Amazon EC2(Elastic Compute Cloud)는 클라우드에서 사용하는 가상 서버(가상머신)
  • 가상 서버이기 때문에 애플리케이션 서비스에 적합한 하드웨어 리소스(CPU, Memory, 네트워크, 로컬 스토리지 등)를 설정할 수 있음
  • 탄력적(Elastic)으로 Compute 리소스의 크기를 늘리거나 줄일 수 있음
    • 선택하는 인스턴스 유형에 따라 다음 항목이 결정됨
      • 메모리 (RAM)
      • 처리 능력 (CPU)
      • 디스크 공간 및 디스크 유형 (스토리지)
      • 네트워크 성능
  • AWS가 지원하는 EC2 인스턴스 유형

    image.png

    • 범용 인스턴스 : 균형 있는 컴퓨팅, 메모리 및 네트워킹 리소스를 제공
    • 컴퓨팅 최적화 인스턴스 : 고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합한 리소스 제공
    • 메모리 최적화 : 메모리에서 대규모 데이터 세트를 처리하는 워크로드에 적합
    • 스토리지 최적화 인스턴스 : 로컬 스토리지에서 매우 큰 데이터 세트 액세스 할 수 있도록 대용량 스토리지를 제공
    • 가속화된 컴퓨팅 인스턴스 : GPU 또는 FPGA를 사용하여 고성능 컴퓨팅 작업이나 그래픽 작업을 지원
    • 고성능 컴퓨팅 최적화 인스턴스 : 대규모의 복잡한 시뮬레이션 및 딥 러닝 워크로드 지원
    • 기술 문서 : https://aws.amazon.com/ko/ec2/instance-types/

    • 표기 방법

      그림출처 : [docs.aws.amazon.com](http://docs.aws.amazon.com/)

    • Instance Family: 인스턴스 유형을 대표하는 그룹(“C”는 컴퓨팅 최적화, “M”은 메모리 최적화)
    • Instance Generation: 특정 인스턴스의 세대. C7”는 일곱 번째 세대의 컴퓨팅 최적화 인스턴스를 의미
    • Processor family : CPU 종류
    • Instance Size: 할당된 하드웨어 리소스의 크기
    • 참고 : 버스트 가능 성능 인스턴스에 대한 주요 개념 및 정의
      • 기존 Amazon EC2 인스턴스 유형은 고정된 CPU 리소스를 제공하는 반면, 성능 순간 확장 가능 인스턴스는 기본 수준의 CPU 사용률을 제공하면서 기본 수준 이상으로 CPU 사용률을 버스트하는 기능을 제공
      • 이렇게 하면 기준 CPU와 추가 버스트 CPU 사용량에 대해서만 비용을 지불하면 되므로 컴퓨팅 비용이 절감. 기준 사용률과 버스트 기능은 CPU 크레딧에 의해 좌우
      • 각 버스트 가능 성능 인스턴스는 CPU 기준 미만으로 유지되면 지속적으로 크레딧을 얻고, 기준선 이상으로 버스트될 때 크레딧을 지속적으로 소비합니다. 적립되거나 소비되는 크레딧 금액은 인스턴스의 CPU 사용률에 따라 달라집니다.
        • CPU 사용률이 기준 미만인 경우 적립되는 크레딧은 소비되는 크레딧보다 많습니다.
        • CPU 사용률이 기준과 같을 경우 적립되는 크레딧은 소비되는 크레딧과 같습니다.
        • CPU 사용률이 기준을 초과할 경우 소비되는 크레딧이 적립되는 크레딧보다 많습니다.
      • 적립되는 크레딧이 소비되는 크레딧보다 많을 경우의 차액을 획득한 크레딧이라고 하며, 이를 나중에 기준 CPU 사용률 이상으로 버스트하는 데 사용할 수 있습니다. 마찬가지로, 소비되는 크레딧이 적립되는 크레딧보다 많을 경우 인스턴스 동작은 크레딧 구성 모드(표준 모드 또는 무제한 모드)에 따라 달라집니다.
      • CPU 사용률 : 인스턴스에서 현재 사용 중인 할당된 EC2 컴퓨팅 유닛의 비율(%)
      • CPU 크레딧 : vCPU 시간의 단위
        • CPU 크레딧 1개 = vCPU 1개 * 100% 사용률 * 1분
        • CPU 크레딧 1개 = vCPU 1개 * 50% 사용률 * 2분
        • CPU 크레딧 1개 = vCPU 2개 * 25% 사용률 * 2분
      • 기준 사용률 : CPU 크레딧 수가 사용 중인 CPU 크레딧 수와 일치할 때 순 크레딧 밸런스 0에서 CPU를 사용할 수 있는 수준
      • 획득 크레딧 : 인스턴스가 실행 중일 때 지속적으로 적립되는 크레딧. 시간당 적립되는 크레딧 수 = 기준 사용률(%) * vCPU 수 * 60분
      • 획득한 크레딧
        • 스턴스가 기준 사용률에 필요한 것보다 적은 크레딧을 사용하는 경우 사용되지 않은 CPU 크레딧입니다. 즉, 획득한 크레딧 = (적립되는 크레딧 - 기준 미만으로 사용되는 크레딧)입니다. 예: t3.nano가 한 시간 동안 5% 기준보다 적은 2% CPU 사용률로 실행될 경우 획득한 크레딧은 다음과 같이 계산됩니다. 획득한 CPU 크레딧 = (시간당 적립되는 크레딧 - 시간당 소비되는 크레딧) = 6 - 2 vCPU * 2% CPU 사용률 * 60분 = 6 - 2.4 = 시간당 획득한 크레딧 3.6입니다.
      • 시작 크레딧 : 표준 모드로 구성된 T2 인스턴스에만 적용. 시작 크레딧은 새 T2 인스턴스에 할당되는 제한된 수의 CPU 크레딧으로, 표준 모드로 시작할 때 기준 이상으로 버스트할 수 있습니다.
      • 전체 코어의 백분율로 나타낸 기준 사용률

        | 인스턴스 유형 | 시간당 지급되는 CPU 크레딧 | 누적 가능한 최대 지급된 크레딧* | vCPU* | **vCPU당 기준 사용률 | | — | — | — | — | — | | T2 | | | | | | t2.nano | 3 | 72 | 1 | 5% | | t2.micro | 6 | 144 | 1 | 10% | | t2.small | 12 | 288 | 1 | 20% | | t2.medium | 24 | 576 | 2 | 20%** | | t2.large | 36 | 864 | 2 | 30%** | | t2.xlarge | 54 | 1296 | 4 | 22.5%** | | t2.2xlarge | 81.6 | 1958.4 | 8 | 17%** | | T3 | | | | | | t3.nano | 6 | 144 | 2 | 5%** |

        • t2.micro가 한 시간 동안 10% 기준보다 적은 6% CPU 사용률로 실행될 경우 획득한 CPU 크레딧 = (시간당 적립되는 크레딧 - 시간당 소비되는 크레딧(3 - 1 vCPU * 6% CPU 사용률 * 60분 = 6 - 3.6 = 시간당 획득한 크레딧 2.4입니다.
        • t3.nano가 한 시간 동안 5% 기준보다 적은 2% CPU 사용률로 실행될 경우 획득한 CPU 크레딧은 (시간당 적립되는 크레딧 - 시간당 소비되는 크레딧) = 6 - 2 vCPU * 2% CPU 사용률 * 60분 = 6 - 2.4 = 시간당 획득한 크레딧 3.6입니다.
      • CPU 크레딧 누적 한도 : 인스턴스가 누적할 수 있는 획득 크레딧의 최대 한도이고 한도 도달후의 획득 되는 크레딧은 모두 삭제됨
  • 비용 지불 방식
    • 온디맨드(On-Demand)
      • 가장 유연하고 간단한 결제 옵션으로 인스턴스를 사용한 시간(초단위계산)단위로 비용 지불
      • 중단할 수 없는 단기적이고 불규칙한 워크로드에 이상적인데, 주로 소프트웨어 검증 및 테스트 단계에서 많이 사용.
    • 리저브드(Reserved)
      • EC2 인스턴스를 1~3년 정도 약정을 통해 낮은 시간당 요금으로 선불 지불. 온디맨드에 비해 최대 75%까지 할인
      • 사용량이 안정적이거나 예측 가능한 애플리케이션에 가장 적합한데, 비용의 이유로 많이 사용
    • 스팟(Spot)
      • 인스턴스 가격을 입찰하여 구매할 수 있는 방법으로 온디멘드에 비해 최대 90%까지 할인
      • 스팟성으로 더 높은 입찰가가 들어오면 서버가 꺼지게 됨. 때문에 중단을 허용할 수 있는 개발 및 테스트, 배치 처리 작업 등에 적합함
  • EC2 과금 비용 계산 EC2 의 경우 다음 세 가지 요소로 과금됩니다.
  • Running Hour : EC2 인스턴스 사용 시간에 대한 과금( Instance Type, AMI 종류, 과금 모델에 따라 과금적용)
  • Data Transfer : AZ단위, Region 단위, 기타 구간에 따라 각기 다른 단가로 과금.
  • Storage(EBS) : EBS 볼륨 크기와 타입에 따라 과금.

2. AMI(Amazon Machine Image)

  • 인스턴스를 시작하는 데 필요한 소프트웨어 구성(운영 체제, 애플리케이션 서버 및 애플리케이션)이 포함된 템플릿
  • AWS에서는 Windows, Linux, MacOS 와 같은 운영체제부터 미리 구성된 애플리케이션 서비스까지 다양한 종류의 AMI를 지원
  • AMI 목록에서 선택하거나 직접 생성할 수 있음
    • Quickstart AMI : AWS에서 제공하는 사전 구성된 템플릿 AMI
    • 내 AMI : 사용자가 직접 생성하거나 소유한 AMI
    • AWS Marketplace AMI : 솔루션 제공업체가 제작한 상용 AMI 온라인스토어
    • 커뮤니티 AMI : 외부 개인이나 조직에 의해 생성된 공개 AMI. 일부는 보안 위험이 있을 수 있어 신중하게 선택해야 함.
  • 사용자는 워크로드에 맞는 인스턴스 유형과 AMI를 선택하여 원하는 EC2 인스턴스를 만들 수 있음.

    image.png

3. 보안 그룹

  • EC2 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽

보안그룹을 미리 만들어 놓고 할당하거나, 인스턴스 생성 시 생성 가능

Untitled

4. 키 페어(Key Pair)

5. 탄력적 IP

  • 탄력적 IP 주소는 인터넷에서 연결 가능한 퍼블릭 IPv4 주소
  • Amazon EC2를 생성하고 외부 연결을 허용해야한다면 EC2 인스턴스에 탄력적 IP를 할당해야 함.
  • Amazon EC2 인스턴스에 자동 할당되는 퍼블릭 IP는 인스턴스 시작시 만들어지고, 중지 시 삭제
  • 퍼블릭 서브넷에 있는 Amazon EC2 인스턴스에 외부 접속을 허용해야 할 경우 탄력적 IP 추가되어야 함.

    Untitled

6. 스토리지

  • 서버가 동작되려면 운영체제가 로컬 디스크에 운영체제가 설치되어 있어야 함
  • EBS (Amazon Elastic Block Store)는 Amazon EC2 인스턴스에 대한 로컬 스토리지를 제공

    Untitled

  • Amazon EC2 인스턴스 생성 시 디스크 타입, 크기를 선택
  • gp3 볼륨은 gp2 볼륨보다 GB당 비용이 더 낮아 경제적이고 성능도 우수

7. 사용자 데이터(User data) 스크립트 (선택사항)

  • 인스턴스 시작 시 사용자 데이터 스크립트 지정(선택 사항)
  • root 권한으로 실행

    image.png

  • 사용자 데이터 스크립트를 사용하여 인스턴스의 런타임 환경을 사용자 지정(customize)
    • 인스턴스가 처음 시작될 때 스크립트가 실행됨
  • 전략적으로 사용 가능
    • 사용자 데이터 스크립트를 사용하여, 구축 및 유지 관리하는 사용자 지정 AMI의 수를 줄일 수 있음

8. EC2 인스턴스 생명주기

  • 시작(Launching) - EC2 인스턴스를 시작할 때, 사용자는 AMI, 인스턴스 유형, 보안 그룹, 키 페어 등을 지정할 수 있습니다. 이러한 정보를 기반으로 Amazon EC2는 가상 머신을 시작하고 사용자에게 인스턴스 ID를 제공합니다.
  • 실행(Running) -인스턴스 실행상태입니다. 실행 상태에서는 사용자가 인스턴스에 대한 액세스를 할 수 있습니다.
  • 중지(Stopping) - EC2 인스턴스를 중지하면, 해당 인스턴스는 일시적으로 중지됩니다. 이 경우, 인스턴스 내의 모든 데이터는 유지됩니다. 사용자는 인스턴스를 다시 시작할 때 이전 상태로 복원할 수 있습니다.
  • 종료(Terminating) - EC2 인스턴스를 종료하면, 해당 인스턴스는 완전히 삭제됩니다. 이 경우, 인스턴스 내의 모든 데이터는 영구적으로 삭제됩니다. 사용자는 이전에 생성한 AMI와 같은 정보를 기반으로 새로운 인스턴스를 생성할 수 있습니다.

LAB: Amazon EC2 생성

  • Task 1: 사전 구성 : VPC

    image.png

  • Task 2 : Security Group 만들기
    • name : web-sg
    • vpc : lab-vpc
    • 인 바운드 규칙

      유형프로토콜포트소스
      SSHTCP22내 IP
    • 아웃 바운드 규칙

      유형프로토콜포트대상
      모든 트래픽전체전체Anywhere-IPv4

    image.png

  • Task 3: Amazon EC2 Instance 생성
    • 이름 : web
    • 이미지 : Amazon Machine Image(AMI) : Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type
      • login user : ec2-user
    • 유형 : t2.micro
    • 키: lab-key
    • 네트워크 설정
      • VPC : lab-vpc
      • 서브넷 : lab-subnet-public2-ap-northeast-2c
      • 퍼블릭 IP 자동 할당 : 활성화
      • 보안그룹 : 기존 보안 그룹(web-sg)
    • 스토리지: 8GB
    • 고급 세부 정보
      • 종료 방지 활성화
      • 사용자 데이터
      1
      2
      3
      4
      5
      
        #!/bin/bash
        yum install httpd -y
        systemctl enable httpd
        systemctl start httpd
        echo '<html><h1>Hello From Your Web Server!</h1></html>' > /var/www/html/index.html
      
  • Task 4: 인스턴스 생성 후 접속 확인, 생성된 인스턴스 모니터링
    • 생성된 인스턴스 모니터링
      • 세부정보, 상태 및 경보, 모니터링, 보안, 네트워킹, 스토리지, 태그
        • 세부 모니터링을 활성화하면 Amazon EC2 콘솔에 인스턴스에 대한 1분 기간의 모니터링 그래프가 표시
      • [작업] - 모니터링 및 문제해결 - 인스턴스 스크린샷, 시스템 로그 가져오기

        image.png

    • 웹브라우저를 통해 “퍼블릭IP주소”로 접속 TEST
  • Task 5: 보안 그룹 업데이트 및 웹 서버 액세스
    • 인 바운드 규칙 - 편집 - 규칙추가

      유형프로토콜포트소스
      SSHTCP22내 IP
      HTTPTCP80Anywhere-IPv4
    • 웹브라우저를 통해 “퍼블릭IP주소”로 접속 TEST

      image.png

  • Task 6 : 인스턴스 크기 조정 : 인스턴스 유형 및 EBS 볼륨 크기 변경
    • 인스턴스 유형 변경

      image.png

    • 인스턴스 - EBS 스토리지 크기 변경

      image.png

      image.png

  • Task 7 : 종료 방지 확인 및 해제
    • 종료 방지 해제
    • EC2 인스턴스 삭제
    • 보안그룹 삭제

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.