Cloud

[AWS/Cloud] 강의 노트 : EC2 기초

728x90
반응형

 


EC2 기초

  • Elastic Compute Cloud
  • AWS에서 제공하는 서비스형 인프라스트럭처
  • 하나의 서비스를 지칭하는 것이 아님
    • EC2 인스턴스 : 임대한 가상 머신
    • EBS 볼륨 : 데이터를 저장하는 가상 드라이브
    • ELB : 로드를 분산
    • ASG : 서비스를 확장

 

EC2 옵션

  • OS : Linus, Window, Mac OS
  • CPU 개수, RAM 용량
  • 네트워크를 통해 연결할 스토리지 필요 여부
    • EBS & EFS : 네트워크 연결
    • EC2 Instance Store : 하드웨어
  • EC2 인스턴스에 연결할 네트워크의 종류 선택
  • 방화벽 규치
  • 인스턴스를 구성 : 부트스트랩 스크립트

 

EC2 User Data

  • EC2 사용자 데이터 스크립트를 사용 → 인스턴스 부트스트래핑 가능
    • 부트스트랩 : 머신이 작동될 때 명령을 시작하는 것
    • 스크립트는 처음 시작할 때, 한 번만 실행
    • EC2 사용자 데이터에는 특정한 목적이 있는데, 부팅 작업을 자동화하기 때문에 부트스트래핑이라는 이름이 붙음
    • 인스턴스 부팅으로 자동화하고 싶은 작업?
      • 업데이트, 설치, 다운로드 등
  • 사용자 데이터 스크립트에 작업을 추가할 수록, 부팅 시 인스턴스가 할 일이 늘어남
  • EC2 사용자 데이터 스크립트는 루트 계정에서 실행
  • → 모든 명령문은 sudo로 해야 함

 

EC2 인스턴스의 종류

  • ..

 


EC2 인스턴스 유형 기본 사항

목적에 따른 분류

  1. General Purpose : 일반적인 목적
  2. Compute Optimized(C) : 컴퓨터 집약적인 작업
    • 일부 데이터의 일괄 처리, 고성능 웹 서버, HPC, 머신러닝, 전용 게임 서버 등
  3. Memory Optimized(R) : 대규모 데이터셋 처리
    • 고성능의 데이터베이스, 분산 웹스케일 캐시 저장소, BI에 최적화된 인 메모리 데이터베이스, 대규모 비정형 데이터의 실시간 처리
  4. Accelerate Computing
  5. Storage Optimized(I, G, H) : 로컬 스토리지에서 대규모 데이터 셋에 액세스 할 때 적합
    • OLTP, NoSQL 데이터베이스, Redis 같은 메모리 데이터베이스의 캐시, 데이터 웨어하우징 애플리케이션, 분산 파일 시스템
  6. Instance Features
  7. Measuring Instance Performance

 

보안 그룹 및 클래식 포트 개요

  • 보안 그룹 : AWS에서 네트워크 보안을 실행하는 데 핵심
    • EC2 인스턴스에 들어오고 나가는 트래픽을 제어
  • 허용 규칙만 포함
  • IP 주소를 참조해 규칙을 만들 수 있다. 보안 그룹끼리 서로 참조 가능
  • 보안 그룹
    • EC2 인스턴스의 방화벽
    • 포트로의 액세스를 통제 → 인증된 IP 주소의 범위를 확인 (IPv4, IPv6)
    • 인바운드, 아웃바운드 네트워크 통제

 

보안 그룹 다이어그램

 

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

  • 여러 인스턴스에 연결 가능
  • 보안 그룹과 인스턴스 간의 일대일 관계는 없다
  • 보안 그룹은 지역과 VPC 결합으로 통제됨 → 지역을 전환하면 새 보안 그룹을 생성하거나 다른 VPC를 생성해야 함
  • 보안 그룹은 EC2 외부에 존재 → 트래픽이 차단 여부를 EC2 인스턴스에서 확인할 수 없다
  • SSH 액세스를 위해 하나의 별도 보안 그룹을 유지하는 것이 좋다
  • 연결에 실패하면 타임아웃이 발생하거나, 어떤 포트에 연결을 시도하는데 컴퓨터가 멈추고 대기만 한다면? ⇒ 보안 그룹의 문제
  • 연결 거부 오류가 발생하면(거부 응답을 받으면) ⇒ 보안 그룹은 실행되어 트래픽을 통과했지만, 애플리케이션에 문제가 생긴 것
  • 기본적으로 모든 인바운드 트래픽은 차단, 아웃바운드 트래픽은 허용

 

다이어그램

  • 보안 그룹의 다른 보안 그룹을 참조하는 방법
  • 보안 그룹 1의 인바운드를 보안 그룹 2에 허용했다면
    • 허용된 그룹 내에 있거나, 같은 보안 그룹이면 통신 가능
    • 그렇지 않으면 거부

 

시험을 위해 알아야 하는 포트

  • 22 : SSH (Linux → EC2)
  • 21 : FTP (파일 전송 프로토콜), 파일 공유 시스템에 파일을 업로드하는데 사용
  • 22 : SFTP(Secure File Transfer Protocol), SSH를 사용해서 업로드하기 때문에 SSH와 같은 포트 사용
  • 80 : HTTP, 보안되지 않은 사이트에 액세스
  • 443 : HTTPS, 보안 사이트에 액세스, 현재 표준
  • 3389 : RDP(Remote Descktop Protocol), 윈도우 인스턴스에 로그인할 때 사용

 

SSH (Secure Shell) 개요

  • Linux는 SSH를 서버에 사용해 연결
    • SSH : 명령줄 인터페이스 도구, Mac, Linux에서 사용
    • Putty : SSH와 동일, window에서 사용
    • EC2 Instance Connect : 웹 브라우저에 사용
  • SSH 프로토콜을 사용 → EC2 인스턴스에 연결하도록 함

EC2 인스턴스 구매 옵션

  • On-demand : 단기적인 워크로드에 좋다
  • Reserved
    • Reverved Instance : 1년 or 3년 단위 장기간의 워크로드
    • Convertible Reserved Instance : 시간이 지나면 인스턴스 타입을 변경, 유연한 인스턴스
  • Saving Plans
    • 1년 or 3년
    • 달러 단위로 사용량을 약정
    • 사용량 한도를 넘어가면 온디맨드 가격으로 청구
  • Spot Instance
    • 아주 짧은 워크로드
    • 지불 최대 가격을 넘으면 언제든지 손실될 위험 → 낮은 신뢰성
      • 중요 작업이나 데이터베이스에는 적합하지 않다
  • Dedicated hosts : 실제 물리적 서버 전체를 예약, 전용 호스트
  • Dedicated Instacne : 다른 고객이 하드웨어를 공유하지 않음, 전용 인스턴스
  • Capacity Reservations : 원하는 기간 동안 특정 AZ에 용량을 예약할 수 있다

스팟 인스턴스

  • 온디맨드 방식에 비해 비용 절감
  • 정의한 최대 가격보다 현재 스팟 가격이 높아지는 경우 - 2분 간의 유예 시간 제공
    1. 인스턴스 중단
      • 작업을 멈추고, 인스턴스를 중단→ 중단했던 부분부터 이어서 작업 → 스팟 가격이 최대 가격보다 낮아지는 때에 인스턴스 재시작
    2. 인스턴스 종료
  • Spot Block 전략 → 서비스 중지

 

스팟 인스턴스의 종료

  • 원리 …

 

Spot Fleets

  • 한 세트의 스팟 인스턴스 + 선택적 온디맨드 인스턴스 조합
  • 정의된 비용 제한 내에서 용량을 맞추기 위해 노력
    • 사용 가능한 런치풀(Launch Pool)을 통해 실행
    • 플릿이 적절한 런치풀을 선택
  • 원하는 비용 용량에 도달한 경우 → 인스턴스 실행을 중단
  • 스팟 인스턴스를 할당해 줄 전략을 정의하게 됨
    1. lowestPrice 전략
      • 스팟 플릿이 가장 적은 비용을 가진 풀에서부터 인스턴스를 실행
      • 비용 최저, 짧은 워크로드 시 적합
    2. diversified 전략
      • 기존에 정의한 모든 풀에 걸쳐 분산이 된다
      • 긴 워크로드에 적합, 가용성이 뛰어남
        • 하나의 풀이 중단되더라도 다른 풀이 활성화되어 있기 때문
    3. capacityOptimized 전략
      • 인스턴스의 개수에 따라서 최적 용량으로 실행, 적절한 풀을 찾아주는 옵션
    1.  
    1.