EC2 (2)

Jihun Kim·2022년 2월 19일
0

aws solutions architect

목록 보기
6/57
post-thumbnail

SSH로 EC2 머신에 접속하기

  • SSH로 접속하기 위해 다운로드 받은 pem key를 사용해야 한다.
  • 그 전에 생각해야 하는 점은 해당 key가 permission 0644라는 점이다.
    - 이 경우 키가 개방되어 있어 개인키가 누출될 가능성이 있다.
    - 이를 그대로 놔두면 bad permissions 에러가 뜬다.
    - 따라서, chmod 0400을 실행한다.
     $ chmod 0400 <pem 파일 위치와 이름>
  • 권한을 변경했으면 pem key를 참조하기 위해서 -i 옵션을 추가해 머신에 접속한다.
$ ssh -i <pem 파일 위치와 이름> ec2-user@<public ip address> 

IAM Role 생성

  • EC2 인스턴스에 SSH로 접속한 후 aws configure 설정을 하면 안된다.
    - 그러면 aws iam list-users 명령을 통해 IAM 보안 정보를 모두 확인할 수 있어 보안상 문제가 있다.
  • 그 대신, IAM Role을 생성해야 한다.
    - IAMReadOnlyAccess 정책을 연결해 DemoRoleForEC2(It can be whatever you want)라는 Role을 생성한다
  • 콘솔에서 EC2 > Instances > Action > Security > Modify IAM Role 을 클릭한다.
    - 그러면 아래와 같은 창이 나타나고 위에서 생성해 둔 DemoRoleForEC2를 클릭한다.
  • Role 생성 후 머신에 접속해 aws iam list-users를 실행하면 IAM 유저 정보를 받을 수 있다.


EC2 인스턴스 구매 옵션

  • On-demand
  • Reserved(최소 1년)
    - Reserved Instances: long workloads
    - Convertible Reserved Instances: long workloads with flexible instances
    - Scheduled Reserved Instances: 예를 들어 매주 목요일 3-6시 사이로 예약 가능(이 기능은 Deprecated이지만 시험에 나올 수는 있다.)
  • Spot Instances: 워크로드가 짧고 저렴하지만 잃을 수 있으며 안정성이 떨어진다.
  • Dedicated Hosts: 전체 물리적 서버를 예약하고 인스턴스 배치를 제어할 수 있다.

EC2 On Demand

  • 사용한 만큼 지불한다.
  • 주문형, 전형적인 클라우드
  • OS 별 과금 정책
    - 리눅스, 윈도우: 초 당 과금(첫 1분 이후)
    - 다른 OS: 시간 당 과금
  • 비용이 많이 들지만 선결제가 없고 장기 약정이 없어 언제든지 원할 때 중지할 수 있다.
  • 앱의 동작을 예측할 수 있는 단기 및 중단 없는 워크로드에 사용하기 좋다.

Reserved Instances

  • 온 디맨드에 비해 75% 할인을 제공한다.
  • 예약 기간: 1년(+discount) , 3년(+++discount)
  • 구매 옵션: 선불X(다달이 지불), 부분 선결제(+discount), 전체 선결제(++discount)
  • 인스턴스 타입 예약 가능
  • 정기적으로 이용할 어플리케이션에 대해 사용하는 것이 좋다(ex) RDS)

Convertible Reserved Instance

  • 인스턴스 유형 변경이 가능하다.
  • 최대 54%까지 할인 가능

Scheduled Reserved Instances(현재 제공되지 않음)

  • 하루, 일주일 혹은 한 달 동안만 예약한 기간 동안 사용할 수 있다.
  • 그러나, 1 ~ 3년은 사용해야 한다.

Spot Instances

  • AWS에서 가장 높은 할인률인 최대 90%까지의 할인을 제공한다(온 디맨드에 비해).
  • 만약 지불하려는 가격이 현물 가격보다 낮은 경우 언제든지 잃을 수도 있다.
    - 즉, 현물 가격이 시간에 따라 변하며 해당 인스턴스에 최대 금액으로 지불할 용의가 있다는 것을 뜻하므로 잃을 수도 있음
  • 이 경우 장애에 대한 복원력이 있는 워크로드에 사용해야 한다.
    - 일괄 작업(배치)
    - 데이터 분석
    - 이미지 변환
    - 분산 워크로드(서버가 분산 방식으로 작용할 수 있어 한 서버가 실패하면 다른 서버로 실패에 대응할 수 있는 경우)
    - 시작 및 종료 시간이 유연한 워크로드가 있는 경우 적합함
  • 중요한 작업이나 데이터베이스를 실행하는 것은 지양하자.

(스팟성으로 남는 서버를 사용한다고 보면 된다.)


EC2 Dedicated Hosts(전용 호스트)

  • EC2 인스턴스 용량으로 된 물리적 서버
  • 사용자 전용으로 사용된다.
  • AWS의 데이터 센터에 있는 전체 서버를 빌리게 된다.
  • 전용 호스트 사용시 기존 서버 바인딩 소프트웨어 라이센스를 사용할 수 있어 규정 준수 요구 사항을 해결하고 비용을 절감할 수 있다.
  • 3년 예약 기간 동안 사용자의 계정에 할당 된다.
  • 물리적 서버이기 때문에 비쌈
  • 복잡한 라이센스 모델이 있는 소프트웨어를 갖고 있거나 자체 라이센스를 갖고 있는 경우 유용함
  • 강력한 규제 또는 규정 준수 요구 사항이 있는 회사의 경우 적합하다.
    - 즉, AWS의 다른 고객들이 해당 서버를 사용할 수 없도록 해야 하는 경우에 적합하다.
    - 기본적으로 AWS의 서버는 다른 사용자들과 공유 된다. 그런데 이웃의 서버를 볼 수 없도록 하는 보안이 있지만 때로는 규정이나 규정 준수로 인해 자신에게만 물리적인 서버가 있는지 확인해야 할 수도 있다.

EC2 Dedicated Instances(전용 인스턴스)

  • 사용자의 전용 하드웨어에서 실행되는 EC2 인스턴스를 위한 것이다.
  • 동일한 계정의 다른 인스턴스와 하드웨어를 공유할 수 있다.
  • 인스턴스 배치 방법을 제어할 수는 없다.
    - 즉, 전용 하드웨어가 있지만 기본 하드웨어에 접근할 수는 없다.
    - 이는 전용 호스트의 소프트 버전에 가깝다.

전용 호스트와 전용 인스턴스의 차이
아마 시험에서 이 둘의 차이를 묻지는 않을 것이지만 알아 두면 좋기는 하다.

  • 둘 다 전용 물리적 서버를 사용할 수 있다.
  • 전용 호스트를 사용햐면 호스트 별로 청구되는 반면, 전용 인스턴스의 경우 인스턴스 별로 청구된다.
  • 전용 호스트는 기본 하드웨어에 대한 많은 접근을 제공하기 때문에 소켓 코어나 호스트 ID 등에 접근할 수 있어 전용 호스트에서 사용할 수 있는 서버 바인딩 라이센스를 얻을 수 있다.
  • 전용 인스턴스는 자동 인스턴스 배치만이 허락 된다.

즉, 전용 호스트는 서버에 바인딩된 라이센스, 전용 인스턴스가 있는 경우 더 많은 기능을 사용할 수 있다.



EC2 스팟 인스턴스

  • 온디맨드와 비교해 최대 90%까지 할인 받을 수 있다.
  • 최대 스팟 가격과 현재 스팟 가격을 비교해서 내가 지정한 최대 스팟 가격 > 현재 스팟 가격인 경우에 사용할 수 있다.
    - 스팟 가격은 책정 가격과 용량에 따라 시간 단위로 변한다.
    - 만약에 스팟 가격 > 내 최대 가격 이 되는 경우 2분 동안의 유예 기간이 주어진다(이 기간 동안 사용자는 인스턴스를 중지하거나 종료할 수 있다).
  • Spot Block(현재는 AWS에서 사용 불가)
    - 스팟 인스턴스를 지정한 기간 (1~6시간) 동안 사용할 수 있다.
    - 문서에 따르면, 중단 없이 해당 기능을 사용할 수 있다.
    - 그러나 드문 경우에 인스턴스가 회수될 가능성도 있다.

스팟 인스턴스 종료 방법

  • 스팟 사용을 요청할 경우 원하는 인스턴스의 수, 지불할 수 있는 최대 가격 런치 사양 AMI, 언제까지 사용할 지 등을 정의할 수 있다.
  • 요청 유형
    - 일회성 요청: 스팟 요청이 완료되는 즉시 인스턴스가 런칭 된다. 그러면 사용자의 스팟 요청은 사라지게 된다.
    - 사후 인스턴스에 대한 영구 요청: 요청한 기간 동안 인스턴스가 유효하길 바랄 때 사용한다. 즉, 현물 가격에 따라 인스턴스가 중지되거나 중단되면 현물 요청이 다시 실행 된다. 그리고 확인 되면 스팟 인스턴스를 다시 시작한다.
  • 스팟 인스턴스를 취소하기 원할 경우
    - 스팟 인스턴스가 OPEN, active 또는 disabled state여야 한다.
  • 스팟 요청을 취소하고 싶을 경우
    - 이전에 런칭했던 인스턴스들은 종료되지 않는다.
    - 따라서, 스팟 인스턴스를 완전히 종료하고 싶다면 스팟 요청을 취소한 다음 연결된 스팟 인스턴스들을 종료해야 한다. 만약 스팟 요청을 취소하지 않고 인스턴스만 취소한 경우 스팟 요청은 해당 요청 만큼 다시 인스턴스를 실행할 가능성이 있기 때문이다.

Spot Fleets(스팟 집합)

  • 일련의 스팟 인스턴스 + (선택적) 온디맨스 인스턴스들로 구성된다.
  • 이는 돈을 절약하는 궁극적인 방법이다.
  • 스팟 집합은 가격 제약 조건에 따른 목표 용량을 충족하려고 노력할 것이다.
    - 가능한 런칭 풀에서 런칭됨: 다른 인스턴스 유형, 다른 OS, 다른 AZ를 가질 수 있다(이는 사용자가 전부 정의할 수 있다).
    - fleet이 사용자가 정의한 런칭 풀 중 가장 적합한 런칭 풀을 선택해 준다.
    - 만약 스팟 집합이 예산 또는 원하는 용량에 도달하면 인스턴스 런칭이 중지 된다.
  • 스팟 집합에 스팟 인스턴스를 할당하는 전략
    - 저렴한 가격을 고려: 어떤 스팟 집합이 가격이 가장 낮은 풀에서 인스턴스를 런칭하고 많은 비용 최적화를 제공하는 지를 판단해야 한다(사용자가 짧은 워크로드를 갖고 있다면 사용하기 적합한 옵션).
    - 다양한 방법을 사용: 스팟 인스턴스는 이전에 정의한 모든 풀에 분산되기 때문에 가용성과 긴 워크로드에 좋다. 왜냐하면 풀 하나가 사라져도 다른 풀은 여전히 활성 상태이기 때문이다.
    - 최적의 용량 사용: 인스턴스 수를 기반으로 최적의 용량으로 시작할 수 있도록 최적화된 용량을 확보하고 이에 적합한 풀을 선택해야 한다.

스팟 집합은 사용자를 위해 최저가로 스팟 인스턴스를 요청한다!



Launch type 실습

위에서 Reserved Instances가 매년 돈을 지불하며 온디맨드에 비해 75% 할인이 제공된다고 하였으나, AWS에서는 Saving Plans를 이용해 절약하는 방법을 사용하기를 추천한다.

Saving Plans

  • 1 ~ 3년의 기간 동안 시간 당 금액을 지불해 유연하게 인스턴스 런칭을 할 수 있도록 도와준다.
    - 인스턴스 타입, AZ에 유연성을 제공한다.


오답노트

아래 문제에서 OLTP 데이터베이스를 처리하는 경우 용량이 매우 크기 때문에 스토리지 최적화 인스턴스 유형을 선택해야 한다.

profile
쿄쿄

0개의 댓글