Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

채록채록

[AWSCloudClubs] EC2 본문

Cloud Computing

[AWSCloudClubs] EC2

김책은 2024. 9. 18. 16:02


서비스형 인프라스터럭쳐(Iaas)이지, 하나의 서비스가 아니다. 
클라우드는 필요할 때마다 언제든지 컴퓨팅을 대여할 수 있고 EC2가 그 예시일 뿐!
조코딩 해커톤 때 잘 몰랐어서 ai를 위해서 어떤 인스턴스를 빌려야할지, gpu는 어떻게 쓸 수 있는지 엄청 난관이었는데.. 이런 사이트를 참고했더라면 좀 더 방법을 수월하게 찾을 수 있었을 것 같다.

instances.vantage.sh 에서 사용가능한 모든 인스턴스 목록을 확인할 수 있다.

시험에서는 워크로드에 적합한게 어떤 타입의 인스턴스인지 물어볼 것이다.


Amazon EC2

  1. 가상머신을 ec2에서 대여한다. = ec2 인스턴스
  2. 데이터를 가상 드라이브 또는 ebs 볼륨에 저장한다
  3. 일래스틱 로드밸런서로 로드 분산
  4. asg을 통해 서비스를 확장한다.

→ 원하는 대로 가상머신을 선택하여 aws에서 빌릴 수 있다.

  1. os선택
  2. 가상머신에 사용할 컴퓨팅 성능과 코어의 양(cpu의 개수) 선택
  3. 램의 양 선택
  4. storage space 네트워크를 통해 연결할 스토리지가 필요하거나(ebs, efs), 하드웨어 attach가 필요하거나(ec2 인스턴스 스토어)
  5. 이시투 인스턴스에 연결할 네트워크 선택 (네트워크 카드) speed of card, public ip addr
  6. security group : 인스턴스의 firewall(방화벽) 규칙 
    1. EC2 인스턴스 안팎으로 트래픽이 허용되는 방식을 제어한다.
    2. Inbound traffic : 외부(www)에서 EC2로 들어가는 것이 허용되는지
    3. Outbound traffic : EC2 인스턴스에서 외부의 일부, 인터넷으로 나가는 것이 허용되는지
    4. 포트에 대한 엑세스 규제
      1. port : 트래픽이 인스턴스로 통과할 수 있도록 허용하는 것
    5. 승인된 ip 범위 규제(인터넷의 두 종류의 ip)
    6. 보안그룹과 인스턴스 사이에는 1:1 관계가 없다.
    7. 보안그룹은 특정 지역과 VPC 조합에만 제한된다.
    8. 보안그룹의 보안그룹을 참조하는 방법
      1. EC2 인스턴스의 ip와 관계없이 올바른 보안 그룹이 연결되어있기 때문에 다른 인스턴스와 통신할 수 있다.
        = ip 계속 생각할 필요없음.

EC2 인스턴스에 대한 ssh, http쿼리 등을 시도할 때 타임아웃을 보게되면, 100% EC2 보안 그룹 규칙 때문이다.

ssh 엑세스를 위해서만 별도의 보안 그룹을 하나 유지하는 것이 좋다고 한다. 

  1. 인스턴스를 구성하기위한 bootstrap script : 부팅 작업을 자동화
    1. ec2 user data : 사용자 데이터는 스크립트 즉 약간의 명령을 ec2 인스턴스에 제공하는 것
      1. only first launch. 즉, 인스턴스가 처음으로 실행될 때, 인스턴스의 전체 수명주기 중에 단 한 번만 실행될 것
      2. bash 스크립트
    2. 머신이 작동될때 명령을 실행하는 것
      1. 소프트웨어/패키지 설치 및 업데이트, 필요한 파일을 인터넷에서 다운로드 등
      2. ex : 몇 가지를 업데이트하고 http 웹 서버를 머신에 설치하고 다음으로 html파일을 쓰는 등 = 그 파일이 웹서버가 되는 것

EC2 Instance Types

  1. General Purpose
    1. web servers, code repositories
  2. Compute Optimized
    1. compute-intensive tasks
    2. (ex : Batch processing worloads, Media transcoding, High performance web servers, High performance computing, Scientific modeling&machine learning, Dedicated gaming servers)
  3. Memory Optimized
    1. 메모리(RAM)에서 대규모 데이터셋을 처리하는 유형의 작업
    2. ex : 관계형/비관계형 In-memory 데이터베이스, Distributed web scale cache stores(ex : elastic cache)
  4. Storage Optimized
    1. 로컬 스토리지에서 대규모의 데이터셋에 엑세스할 때 적합한 인스턴스
    2. ex : High frequency online transaction processing systems, 관계형/비관계형 데이터베이스, cache for in-memory databases(ex: Redis)

EC2 인스턴스에 IAM API 키(access key id, secret access key) 를 절대 입력하면 안된다. 그 대신 IAM Role로 EC2 인스턴스에 AWS credential(자격증명)을 제공한다. → EC2 인스턴스에 접속해서 인스턴스에 입력된 credential(자격증명정보) 를 회수해갈 수 있기 때문

EC2 Instances Purchasing Options

  • On-Demand Instances
  • Reserved
    • ex : database
  • Saving Plans
    • 1년 혹은 3년동안 구체적인 시간당 지출 금액을 약정할 수 있다.
    • 유연하게 인스턴스를 생성할 수 있다.
    • ex : Batch jobs, Data analysis, Image processing, workloads that are resilient to failures, Distributed workloads, Flexible workloads
    • spot price가 정의된 max price를 초과하면 유예기간 2분 내에 2가지를 선택할 수 있다.
      • stop/terminate instance : spot price가 max price 아래로 내려가면 인스턴스를 다시 시작하고 중단했던 곳부터 재개한다.
      • spot block : 지정된 기간(1~6h)동안 spot instance를 차단한다. 그동안 중단 없이 해당 블록을 사용할 수 있다. 일반적으로 spot block에서는 인스턴스가 회수되지 않기 때문이다.
    • Spot request type
      • one-time request : 스팟 요청이 완료되는 즉시 인스턴스 시작, 스팟 요청은 사라진다.
      • persistent request : spot request이 유효한 기간 동안은 이 인스턴스 수도 유효하다. 인스턴스가 spot price 등의 이유로 중지되어도 spot request가 활성상태라면 다시 실행되는 것.Spot Instances
    • Spot Fleets
      • spot instance set을 정의하는 방법
      • 사용자가 정의한 max prices를 제한으로 목표 용량을 충족하기 위해 최선을 다한다.
      • spot fleets에 spot instance를 할당하는 전략
        • lowestPrices : 가장 낮은 가격의 launch pool에서 인스턴스를 시작한다. (short workload)
        • diversified : distributed across all pools. 한 pool이 사라져도 다른 pool이 여전히 활성화되어있게 하기 위해 (availiablity, long workloads)
        • capacityOptimized : 원하는 인스턴스 수에 맞는 최적의 용량을 가진 pool을 갖게 된다.
        • priceCapacityOptimized : 먼저 사용 가능한 용량이 가장 큰 풀을 선택하고, 그 중 가격이 가장 낮은 풀을 선택하는 전략.
    • 간단한 spot instance requst : 원하는 인스턴스 유형과 AZ를 정확히 알고 있는 경우.
    • Spot Fleets : 조건을 만족하는 모든 인스턴스 유형과 AZ를 선택하라는 것.
      • Spot Fleets를 사용하면 여러 개의 launch pool과 여러 인스턴스 유형을 정의할 수 있다. 그리고 적절한 spot instance를 기반으로 추가 비용을 절감할 수 있다.
    • Cancelling a Spot Request does not terminate instances
      → 먼저 spot request를 취소하고, 그 다음에 관련 spot instances를 종료해야한다.
      → spot request를 취소하려면 open / active / disabled 상태여야 한다.
  • Dedicated Hosts
    • 전용으로 사용되는 EC2 인스턴스 용량이 있는 실제 물리적 서버
      • low level의 하드웨어까지 접근할 수 있는 호스트를 사용할 수 있게 해준다.
    • ex : socket/core/VM 에 software license가 있는 SW인 경우 (ft. license manager)
  • Dedicated Instances
    • 전용 하드웨어에서 실행되는 인스턴스
    • 같은 계정에서 다른 인스턴스와 함께 하드웨어를 공유할 수 있다.

Dedicated Instances : 자신만이 인스턴스를 자신만의 하드웨어에 갖는다는 것. 따라서, Dedicated(전용) 호스트는 높은 수준의 규정 준수가 필요한 기업, 혹은 복잡한 라이선스 모델을 가진 소프트웨어에 적합하고, 가장 비싸다고 한다. 
Dedicated Hosts : 물리적 서버 자체에 대한 접근권을 갖고 low level의 하드웨어에 대한 visibility를 갖는다는 것

  • Capacity Reservations
    • ensure capacity is available when EC2 launch
    • 그러면 그 인스턴스의 제공이 보장되지만, 그 인스턴스 생성 여부와는 관계없이 예약에 대해 비용을 지불해야 한다.

오답노트

Q. EC2 예약 인스턴스를 예약할 수 있는 기간은 얼마인가?
A. 인스턴스는 1년, 혹은 3년의 기간으로만 예약할 수 있으며, 그 사이의 기간으로는 예약할 수 없다.

Q. 온프레미스에 호스팅된 OLTP 데이터베이스를 갖춘 전자 상거래 애플리케이션이 있습니다. 이 애플리케이션은 인기가 좋아, 데이터베이스가 초당 수천 개의 요청을 지니게 됩니다. 여러분은 데이터베이스를 EC2 인스턴스로 이전하려 합니다. 이렇게 높은 빈도를 보이는 OLTP 데이터베이스를 처리하기 위해서는 어떤 EC2 인스턴스 유형을 선택해야 할까요?
A. 스토리지 최적화
→ 스토리지 최적화 EC2 인스턴스는 로컬 스토리지의 대규모 데이터 세트에 대해 높은 수준의, 그리고 순차적인 읽기/쓰기 엑세스 권한이 필요한 워크로드에 적합하다.
→ 컴퓨팅 최적화 EC2 인스턴스는 고성능 프로세서(ex : 배치처리, 미디어 트랜스코딩, 고성능 컴퓨팅, 과학적 모델링 및 머신 러닝, 전용 게이밍 서버 등)가 필요한 집중 컴퓨팅 워크로드에 적합하다.
→ 메모리 최적화 EC2 인스턴스는 메모리에 대규모 데이터 세트가 필요한 워크로드에 적합하다.

Q. 스팟 플릿은 스팟 인스턴스의 집합이며, 선택적으로 ___________ 이다.
A. 스팟 플릿은 스팟 인스턴스의 집합이며, 선택적으로 온디맨드 인스턴스이다. 스팟 플릿은 가장 낮은 가격으로 스팟 인스턴스를 자동으로 요청할 수 있게 해준다.