본문 바로가기

프로그래밍/AWS Solutions Architect

AWS SAA - EC2

Amazon EC2

  • 아마존에서 가장 인기 있는 서비스
  • EC2 = Elastic Compute Cloud = AWS의 서비스형 인트라스트럭처 IaaS(Infrastructure as a Service)
  • EC2가 포함 하는 것
    • 가상 머신 임대 (EC2)
    • 가상 드라이브에 데이터를 저장 (EBS)
    • 로드 분산 (ELB)
    • 서비스 확장을 auto-scaling group으로 할 수 있음 (ASG)

EC2 선택 옵션

  • OS
    • Linux
    • Windows
    • Mac OS
  • 가상머신에 사용할 컴퓨팅 성능과 코어의 양 (CPU)
  • random-access memory (RAM)
  • 저장 공간
    • 네트워크를 통해 연결 (EBS & EFS)
    • 하드웨어 (EC2 Instance Store)
  • 네트워크 카드
    • 속도
    • 공용 IP
  • 방화벽 규칙
    • security group
  • Bootstrap script
    • EC2 User Data

EC2 User Data

  • 가상 머신이 처음 시작할 때 한 번만 실행되고 다시는 실행되지 않음
  • 부팅 작업을 작동화하기 때문에 부트스트래핑이라는 이름을 가지게 됨
  • 사용할 수 있는 곳
    • 업데이트
    • 소프트웨어 설치
    • 파일 다운로드
    • etc
  • Root 계정에서 실행되므로 모든 명령문은 sudo로 해야 한다.

EC2 인스턴스 유형

  • AWS 명명 규칙
    • m5.2xlarge
      • m : 인스턴스 클래스(여기서는 범용의 인스턴스)
      • 5 : 인스턴스의 세대
      • 2xlarge : 인스턴스 클래스 크기
        • small로 시작해 large, 2xlarge, 4xlarge 등이 있음
  • 범용의 인스턴스(General Purpose)
    • 컴퓨팅, 메모리, 네트워킹 간의 균형이 잘 맞음
    • 사용처
      • 웹 서버나 코드 저장소와 같은 다양한 작업에 적합
    • M으로 시작함
  • 컴퓨팅 최적화 인스턴스 (Compute Optimized)
    • 컴퓨터 집약적인 작업에 최적화된 인스턴스
    • 사용처
      • 일부 데이터의 일괄 처리
      • 미디어 트랜스코딩 작업시 혹은 고성능 웹 서버가 필요할 때
      • 고성능 컴퓨팅이라는 HPC 작업을 할 때, 머신 러닝이나 전용 게임 서버가 있을 때 사용
    • C로 시작함 (C5, C6 등)
  • 메모리 최적화 인스턴스 (Memory Optimized)

    • 메모리에서 대규모 데이터셋을 처리하는 유형의 작업에 빠른 성능을 제공
    • 사용처
      • 인 메모리 데이터베이스가 되는 고성능의 관계형 또는 비관계형의 데이터베이스
      • 일래스릭 캐시를 예로 들 수 있는 분산 웹 스케일 캐시 저장소에도 사용
      • 비즈니스 인텔리전스(BI)에 최적화된 인 메모리 데이터베이스와 대규모 비정형 데이터의 실시간 처리를 실행하는 애플리케이션에도 사용
    • R로 시작함
    • 대용량의 경우 X1, Z1도 있음
  • 스토리지 최적화 인스턴스 (Storage Optimized)

    • 로컬 스토리지에서 대규모의 데이터셋에 액세스할 때 적합한 인스턴스
    • 사용처
      • 고주파 온라인 트랙잭션 처리인(OLTP) 시스템
      • 관계형, NoSQL 데이터베이스
      • Redis와 같은 메모리 데이터베이스의 캐시
      • 데이터 웨어하우징 애플리케이션
      • 분산 파일 시스템
    • I, G 또는 H1으로 시작함

보안 그룹 (Security Groups)

  • AWS 클라우드에서 네트워크 보안을 실행하는데 핵심이 된다.
  • EC2 인스턴스에 들어오고 나가는 트래픽을 제어한다.
  • 허용 규칙만 포함한다.
  • IP 주소를 참조해 규칙을 만들 수 있고 다른 보안 그룹을 참조하는 것이 가능하다.
  • EC2의 방화벽이다.

보안 그룹의 규제

  • 포트로의 액세스를 통제한다.
  • 인증된 IP 주소의 범위를 확인한다. (IPv4, IPv6)
  • 외부에서 인스턴스로 들어오는 인바운드 네트워크를 통제한다.
  • 인스턴스에서 외부로 나가는 아웃바운드 네트워크를 통제한다.

보안 그룹에 대해 알아야 할 것

  • 여러 인스턴스에 연결 할 수 있다.
    • 보안 그룹과 인스턴스 간의 1:1 관계는 없다.
    • 인스턴스에도 여러 보안 그룹을 연결할 수 있다.
  • 보안 그룹은 지역과 VPC 결합으로 통제되어 있다.
    • 지역을 전환하면 새 보안 그룹을 생성하거나 다른 VPC를 생성해야 한다.
  • SSH 액세스를 위해 하나의 별도 보안 그룹을 유지하는 것이 좋다.
  • 타임아웃으로 애플리케이션에 접근할 수 없으면 보안 그룹의 문제이다.
    • 어떤 포트에 연결을 시도하는데 컴퓨터가 계속 멈추고 대기하면 보안 그룹의 문제이다.
    • 연결 거부 오류가 발생하면 보안 그룹은 실행됐고 트래픽이 통과했지만 애플리케이션에 문제가 생겼거나 실행되지 않는 등 문제가 발생한다.
  • 기본적으로 모든 인바운드 트래픽은 차단되어 있고 모든 아웃바운드 트래픽은 허용된다.

알아야 할 포트

  • Port 22
    • SSH (Secure Shell) : 리눅스에서 EC2 인스턴스로 로그인하도록 함
    • SFTP (Secure File Transfer Protocol) : SSH를 사용해 파일을 업로드 하기 때문
  • Port 21
    • FTP (File Transfer Protocol) : 파일 전송 프로토콜
    • 파일 공유 시스템에 파일을 업로드하는데 사용됨
  • Port 80
    • HTTP : 보안이 되지 않는 사이트에 액세스
  • Port 443
    • HTTPS : 보안 사이트에 액세스
  • Port 3389
    • RDP (Remote Desktop Protocol) : 윈도우 인스턴스에 로그인하도록 함

EC2 인스턴스 종류

  • On-Demand Instances
    • 예측이 가능한 가격을 가진 단기 워크로드 용 인스턴스
  • 예약 인스턴스 (Reserved)
    • 최소 1년 이상 사용해야 함
    • 단순한 예약 인스턴스(Reserved Instances)
      • 데이터베이스 같은 장기 워크로드에 사용 됨
    • 전환형 예약 인스턴스 (Convertible Reserved Instances)
      • 시간이 지난 후 다른 종류의 인스턴스로 바꿀 수 있는 유연형 인스턴스
  • 스팟 인스턴스 (Spot Instances)
    • 저렴한 단기 워크로드 용 인스턴스
    • 손실 가능성이 있으며 신뢰성이 낮음
  • 전용 호스트 (Dedicated Hosts)
    • 물리적 서버 전체를 예약
    • 인스턴스 배치를 제어

EC2 On Demand

  • 사용한 만큼 지불
    • Linux 혹은 Windows 머신은 실행되고 1분 후 비용이 초당 청구됨.
    • 다른 OS에서는 실행 중일 때 시간당으로 계산
  • 가격은 높지만, 선결제나 장기 약정이 필요 없다.
  • 사용 해지, 중지, 시작이 언제든 가능하다.
  • 애플리케이션 작동 방식을 예측할 수 없는 연속적인 단기 워크로드에 적합하다.

EC2 Reserved Instances

  • On-Demand와 비교하면 약 75%의 비용을 절약할 수 있다.

  • 예약 기간이 있어 1년 혹은 3년 중에서 선택할 수 있다.

  • 3년의 기간을 선택하면 AWS에서 더 큰 할인을 제공한다.

  • 선 결제를 원하지 않을 경우 매달 비용을 지불해야 하고 부분 또는 전체 선결제도 가능하다.

  • 전체 선결제는 당일 결제해야 하지만 큰 할인을 받을 수 있다.

  • 애플리케이션이 안정된 상태로 사용되는, 즉 데이터베이스 등에 쓰인다.

  • Convertible Reserved Instance (전환형 예약 인스턴스)

    • 시간이 지나면 EC2 인스턴스의 유형을 바꿀 수 있다.
    • 할인율이 줄어들어 최대 54%까지 할인된다.
  • Scheduled Reserved Instances (정기 예약 인스턴스)

    • 예약한 특정한 시간대에 EC2 인스턴스를 시작해야 하는 경우
    • 하루, 한 주, 혹은 한 달의 일부만 이용하는 방식
    • 1~3년을 계약해야 한다.

EC2 Spot Instances

  • On-demand와 비교하면 최대 90%까지 할인
  • 지불하고자 하는 가격이 현재 스팟 인스턴스의 가격보다 낮으면 인스턴스가 언제든 중단될 수 있음
  • 스팟 가격은 점진적으로 변하는데 스팟 인스턴스 사용에 최고가를 지불할 의사가 있을 때에만 사용할 수 있음
  • AWS에서 가장 비용 면에서 효율적인 인스턴스
  • 서비스 중단에도 복구가 쉬운 워크로드에만 사용이 가능한 인스턴스
  • 적합한 워크로드
    • Batch Job
    • Data analysis
    • Image processing
    • Any distributed workloads (분산된 워크로드)
    • Workloads with a flexible start and end time (시작 및 종료 시점이 탄력적인 워크로드)
  • 대단히 중요한 작업 또는 데이터베이스 작업에서는 절대 사용하면 안된다.

EC2 Dedicated Hosts

  • EC2 인스턴스를 갖춘 유저 중심의 물리적 서버
    • AWS 데이터 센터 내 하나의 서버 전체를 임대하는 것
  • compliance requirements(준수 요건) 처리가 쉽고 existing server-bound software licenses (기존의 서버 결합 소프트웨어 라이센스)의 사용이 가능하다.
  • 3년 동안 임대해야 한다.
  • 전체 서버를 독자적으로 이용하게 되니 비용은 더 올라간다.

EC2 Dedicated Instances

  • 전용 하드웨어에서 실행되는 EC2 인스턴스를 의미
  • 같은 계정의 다른 인스턴스와 하드웨어를 공유하며 인스턴스가 어떻게 배치될지는 관여할 수 없음
  • 전용 호스트와 전용 인스턴스의 차이점
    • 전용 호스트는 호스트당 청구가 되고 전용 인스턴스는 인스턴스당 청구가 됨
    • 전용 호스트는 하드웨어의 근본에 접근 권한을 많이 제공해 다양한 서버 결합 라이센스를 받을 수 있음 (소켓, 코어, 호스트 ID등에 접근 권한이 있어서)
    • 전용 인스턴스는 자동 인스턴스 배치만 제공

'프로그래밍 > AWS Solutions Architect' 카테고리의 다른 글

AWS SAA - Elastic Load Balancer(ELB)  (0) 2022.05.12
AWS SAA - Scalability & High Availability  (0) 2022.05.12
AWS SAA - EC2 Instance Storage  (0) 2022.05.12
AWS SAA - EC2 (2)  (0) 2022.05.11
AWS SAA - IAM  (0) 2022.05.09