EC2

이기태·2024년 3월 27일
0

AWS

목록 보기
3/62


=> 인스턴스 시작할때 한번만 실행되는 스크립트

인스턴스

public ip: EC2 인스턴스에 접근하기 위해 사용할 주소
private ip: AWS 네트워크에서 내부적으로 인스턴스에 접근하는 주소


EC2(Elastic Compute Cloud)

서비스로서의 인프라

기능

1) 가상 머신 임대(EC2)
2) 가상드라이버에 데이터 저장(EBS, Elastic Block Store)
3) 분산 세스템, 로드벨런서(ELB, Elastic Load Balancing)
4) 서비스 확장(ASG, Auto Scaling Group)

EC2 구성 옵션

OS, CPU, RAM, Storage, Network, Firewall, Bootstrap script(인스턴스 구성을위한 스크립트)

  • bootstrap: 부팅작업을 자동으로 실행.(EC2 User Data)
    머신이 시작될때 미리 작성한 명령을 인스턴스가 처음 시작될 때 한번 실행
    ex) updates, s/w install, 파일 다운로드, 등등
    EC2 User Data 스크립트는 루트 계정에서 시작되기때문에 sudo명령이 필요하다.

EC2 인스턴스 타입

ex) m5.2xlarge
m: 인스턴스 클래스
5: 세대, 버전
2xlarge: 인스턴스 사이즈

벨런스형(T,M)

  • 웹 서버나 코드 저장소 역할로 적절
  • CPU, Mem, Network 대역폭등이 균형을 이룸.
  • T, M으로 시작. ex: t2.micro

CPU 최적화 인스턴스 (C)

  • 높은 사양을 요구하는 작업에 적절.
    1) 데이터 일괄 처리
    2) 미디어 트랜스코딩
    3) 높은 사양의 웹 서버
    4) High Performance Computing(HCP)
    5) 머신러닝
    6) 게임 서버 등등등등등

메모리 최적화 인스턴스(R,X,Z)

  • 대규모 데이터 셋 처리
    1) 고성능 관계형/비관계형 DB
    2) 일래스틱 캐시(분산 웹 스케일 저장소)
    3) BI에 최적화된 인메모리 DB
    4) 대규모 비정형 데이터 실시간 처리를 실행하는 애플리케이션

스토리지 최적화 인스턴스(I,D,H1)

  • 로컬 스토리지에서 대규모 데이터셋에 액세스할때 적합
    1) 고주파 온라인 트랜잭션 처리(OLTP)
    2) 관계/비관계형 DB(NoSQL)
    3) 메모리 DB, 캐시
    4) 데이터 웨어하우징 앱
    5) 분산 파일 시스템

보안 그룹 소개

  • 보안 그룹은 네트워크 보안에 핵심이다.
    EC2에 인바운드 아웃바운드를 설정해 트래픽을 제어.
  • 보안 그룹은 허용 규칙만 포함한다.
  • 보안 그룹은 IP나 다른 보안 규칙을 참조할 수 있다.

규제 목록

1) 포트를 통해 액세스 통제
2) 인증된 IP주소 범위를 확인해 액세스 통제
3) 외부에서 들어오는 인바운트 네트워크 통제
4) 인스턴스에서 나가는 아웃바운드 통제(보통 아웃바운드는 모든 트래픽 허용)

보안 그룹에 대해 알아두어야 할 점

  1. 여러 인스턴스에 연결이 가능하다.
  2. 리전과 VPC의 결합으로 통제된다.
  3. 보안그룹은 EC2 외부에 있다. 그래서 트래픽 차단시 EC2 인스턴스를 찾을 수 없다.
  4. 별도의 SSH 액세스를 위한 보안 그룹을 유지하자.(권장)
  5. 만약 타임아웃으로 접근을 하지 못하면 보안 그룹의 문제일 가능성이 크다.
  6. 연결 거부 응답은 보안 그룹은 실행이 잘되어 트래픽은 통과했지만 애플리케이션에 문제가 있는 것.
  7. 인바운드는 디폴트로 다 차단이 되어있다.
  8. 아웃바운드는 디폴트로 다 허용 되어있다.

보안 그룹이 다른 보안 그룹 참조

IP에 상관없이 올바른 보안 그룹에 연결 되어있다면 접근 가능하다.

포트 번호

SSH: 22
FTP: 21
SFTP: 22
HTTP: 80
HTTPS: 443
RDP: 3389 - 윈도우 원격 속

인스턴스 구매 옵션

  • 온디맨드 인스턴스
    단기적이고 중단없는 짧은 워크로드, 애플리케이션의 거동을 예측할 수 없을때 사용한다. 초단위의 비용을 예측 가능
  • 예약(1년, 3년)
    1) 예약 인스턴스: 사용량이 일정한 애플리케이션, 긴 워크로드에 적합(DB같은거), 할인을 받음
    2) 전환형 예약 인스턴스: 유연한 인스턴스를 사용한 긴 워크로드, 할인율은 예약 인스턴스보다 적지만 인스턴스 타입, os, 등등을 변경할 수 있다.
  • 절약 플랜(1,3년)
    사용량, 장시간 작업량에 대한 약정, 장기간 사용하면 할인 받을 수 있음.
    사용량 한도를 넘기면 온디맨드 가격으로 청구된다.
    절약 플랜을 이용하면 특정 인스턴스와 패밀리, 리전으로 고정된다.
    그러나, 사이즈는 유연해 사이즈,os는 선택 가능
  • 스폿 인스턴스
    짧은 워크로드, 인스턴스가 고장에 대한 회복력이 있으면 유용
    빈 인스턴스가 있으면 사용 가능?
    싸지만 최대 가격을 넘기면 인스턴스 손실될 위험이 있어 신뢰도가 낮다.
    ex) 배치 작업, 데이터 분석, 이미지 처리, 모든 종류의 분산형 워크로드, 시작/종료 시간이 유연한 워크로드
  • 전용 호스트
    전용으로 사용할 수 있는 물리적 서버를 전체를 예약해 인스턴스 배치를 제어할 수 있다.
    ex) 법규 준수 요구사항을 충족하고 기존 서버 바인딩 소프트웨어 라이센스를 사용 할 수 있다.
    ex) 고가의 s/w 라이센스가 필요한경우 BYOL인 경우, 규정이나 법규를 준수해야하는 회사를 갖고 있는 경우
    전용 호스트는 온디맨드로 초당 비용을 지불하거나, 1년 또는 3년 동안 예약할 수 있다.
    가장 비싼 옵션
  • 전용 인스턴스
    전용 하드웨어에서 실행되는 인스턴스. 다른 사용자가 나의 하드웨어를 공유하지 않음.
    같은 계정에서 다른 인스턴스와 함께 하드웨어를 공유할 수 있다. => 전용 인스턴스가 아닌 다른 인스턴스가 섞여 들어갈 수 있다.
    인스턴스 배치에 대한 통제권이 없다.
    ex) 보안이 중요한 애플리케이션, 라이선스 제약이 있는 소프트웨어, 규제 준수가 필요한 환경
  • 용량 예약
    원하는 기간동안 특정한 AZ에서 온디맨드 인스턴스를 예약할 수 있다. 그리고 필요할 때마다 용량에 접근 할 수 있음.
    기간 약정 없음. -> 언제든 용량을 예약하고 취소 가능.
    청구 할인 없음 -> 할인 받고 싶다: 지역별 예약 인스턴스와 결합하거나 절약 플랜과 결합한다.
    용량 예약이 유일한 목적
    인스턴스 실행하는지 실행하지 않는지에 무관하게 온디맨드 요금 부과
    ex) 특정한 AZ(가용 영역)에 있어야하는 단기적이고 중단 없는 워크로드에 적합

[전용 호스트 vs 전용 인스턴스]
EC2는 물리적인 서버위에 여러개의 가상 인스턴스들이 있어 그 인스턴스를 할당해주는 방식
전용 인스턴스, 전용 호스트를 사용하는 이유는 두 가지정도
물리적인 서버에 여러개의 가상 인스턴스들이 있는데 인스턴스간 다른 사용자가 사용 중일때 간섭이 있을 수 있다. A,B사용자가 인스턴스를 사용중일때 B 사용자가 성능을 극한으로 끌어올려 사용중이라면 A사용자는 속도가 느려지는 일이 발생 할 수 있다.
두번째로 라이선스 이슈인데
오라클 같은 소프트웨어를 사용하기위해 라이선스를 가져오는 과정에서 인스턴스는 가상 환경이기 때문에 진짜 CPU가 아니다. 그래서 라이선스가 꼬이거나, 라이선스 기준이 실제 물리 CPU,GPU등의 디바이스 기준이면 사용 하지 못할 수 있다.

  • 전용 인스턴스: 단일 고객 전용 하드웨어의 VPC에서 실행되는 인스턴스, 물리적으로 인스턴스 단위로 격리된 서버에서 EC2를 실행
    원하는 서버에 배치하지는 못하지만 AWS가 서버에 배치해주면 그 배치된 서버는 온전히 사용자만 사용 한다.
    라이선스 이슈를 해결하지 못한다. => 전용 서버가 아니기 때문
    인스턴스 배치 컨트롤 불가능
    리전당 + 인스턴스당 비용 지불
  • 전용 호스트: 자신이 원하는 서버를 선택해 자신만의 물리적인 서버를 할당해준다.
    microsoft, oracle같은 소프트웨어 라이선스를 사용 할 수 있게 해줌. => 라이선스 이슈 해결(BYOL, Bring Your Own License) -> AWS License Manager 서비스 활용
    인스턴스 배치 컨트롤 가능
    인스턴스 끼리의 통신 속도가 빠름
    호스트당 비용 지불

스팟 인스턴스

온디맨드보다 최대 90% 할인 가능

작동 방법

  • 인스턴스에 지불할 최대 스팟 가격을 정의한다.
  • 정의된 가격을 초과하면 두 가지 옵션이 있다.
    옵션은 2분의 유예 기간을 줌.
  1. 인스턴스 중지 -> 스팟 가격이 다시 최대 가격 아래로 내려가면 인스턴스를 다시 시작
  2. 스팟 블록 -> 지정된 기간 동안 스팟 인스턴스를 차단.(1~6시간동안 중단 없이 해당 블록 사용 가능.)

사용 사례

  • 배치 작업 및 데이터 분석, 장애 복원력이 뛰어난 워크로드에 사용

스팟 인스턴스 종료 방법

스팟 인스턴스를 시작하려면 스팟 요청을 통해 시작한다.
스팟 요청: 원하는 인스턴스 수, 최대 가격, 시작 사양, 유효기간, 요청 유형 정의

  • 요청 유형

      1. 일회성 요청
        스팟 요청이 완료되는 즉시 인스턴스 시작 -> 스팟 요청은 사라짐
      1. 영구 인스턴스 요청
        스팟 요청이 유효한 기간 동안 인스턴스가 스팟 가격 기준으로 중단된 경우 스팟 요청이 다시 실행되고 유효성이 확인되면 스팟 인스턴스 다시 시작.

-> 인스턴스를 완전히 종료하고 다시 시작하지 않으려면 스팟 요청을 취소하고 그 다음 스팟 인스턴스를 종료한다.
=> 인스턴스 먼저 종료하면 스팟 요청으로 다시 돌아가 인스턴스를 다시 시작함.

스팟 플릿(플릿: 무리)

스팟 인스턴스 세트를 정의하는 방법, 선택적으로 온디맨드 인스턴스 세트도 정의

  • 런치 풀 정의
    다양한 인스턴스 유형, 다양한 OS, 다양한 가용성 영역 정의

스팟 플릿은 가장 적절한 런치 풀을 선택한다. 즉, 스팟 플릿에 스팟 인스턴스를 할당하는 전략을 정의

기억 해 둬야할 것

    1. 최저 가격
      스팟 플릿은 가장 낮은 가격인 풀에서 인스턴스를 시작하기 때문에 비용이 최적화된다.
      => 워크로드가 짧은 경우 좋은 옵션이다.
    1. 다양한 방법으로 스팟 인스턴스를 실행할 수 있다.
      이 경우 스팟 인스턴스는 사용자가 정의한 모든 풀에 분산된다.
      => 가용성과 긴 워크로드에 적합하다.
      왜? 하나의 풀이 사라져도 다른 풀에선 활성화 되어있기 때문
      그러면 원하는 인스턴스 수에 맞는 최적의 용량을 가진 풀을 갖게 된다.
  • 용량 최적화
  • 가격 용량 최적화
    사용 가능한 용량이 가장 큰 풀을 선택하고 그 중 가격이 가장 낮은 풀을 선택하는 전략
    => 대부분 워크로드에 가장 적합

정리

스팟 플릿을 사용하면 여러 개의 런치 풀과 여러 인스턴스 유형을 정의할 수 있다.
스팟 플릿에서 최저가 할인 또는 최저가 전략을 사용하면 자동으로 가장 낮은 가격의 스팟 인스턴스팟 플릿은 스팟 인스턴스를 기반으로 추가 비용을 절감할 수 있다.

간단한 스팟 인스턴스를 요청: 원하는 인스턴스 유형과 AZ를 정확히 알고 있는 경우이다.
스팟 플릿을 요청: 조건을 만족하는 모든 인스턴스 유형과 모든 AZ를 선택 하라는 것.
=>
스팟 인스턴스 요청: 원하는 인스턴스 유형, AZ를 알고 요청?
스팟 플릿 요청: 원하는 스팟 인스턴스 유형, AZ를 선택하면 그에 맞게 요청을 해주겠다.?

0개의 댓글

관련 채용 정보