AWS EC2

김파란·2025년 2월 6일

AWS

목록 보기
2/12

EC2

  • 아마존에서 가장 인기있는 서비스로 어디에나 사용되고 있다
  • AWS에서 제공하는 IaaS이다
  • EC2는 하나의 서비스라고 볼 수 없고 여러가지를 포함하고 있다
    • AWS에서 가상머신을 빌리는 것을 EC2 인스턴스라고 한다
    • 데이터를 가상 드라이브 또는 EBS 볼륨에 저장할수 있다
    • 로드 밸런서로 분산시킬 수 있다 (ELB)
    • 오토 스케일링 그룹으로 통해 서비스를 확장시킬 수 있다 (ASG)

EC2 size & 설정 옵션

  • OS: Linux, Windows, Mac OS
  • 컴퓨터 성능과 코어의 양도 선택할 수 있다 (CPU)
  • 메모리 양도 선택할 수 있다 (RAM)
  • 용량도 선택할 수 있다 (EBS & EFS)
    • 하드웨어에 연결할 수도 있다 (EC2 Instance Store)
  • 연결할 네트워크도 선택할 수 있다 (어떤 종류의 공용 IP)
  • 방화벽 규칙, 보안그룹도 선택할 수 있다
  • 인스턴스를 구성하기 위한 부트스트랩 스크립트가 있다
    • 인스턴스를 실행할 때 자동으로 실행하는 명령어를 의미한다
    • 업데이트, 소프트웨어 설치, 파일 다운 등 뭐든지 할 수 있다

1. 생성

  • 운영체제 선택하고 보안그룹, 키페어 등을 설정하면 된다

2. 타입

  • EC2 Instance에는 여러가지 타입이 있다
    • 범용, 컴퓨터 최적화, 메모리 최적화, 가속화된 컴퓨팅 등이 있다
  • m5.2xlarge를 예로 들어보자
    • m: 인스턴스 클래스로 General Purpose이다
    • 5: 인스턴스 세대로 AWS에서 계속 개선해서 만들어 출시한다
    • 2xlarge: 인스턴스 클래스에서 사이즈를 말한다. small, large등 커질수록 더 많은 메모리와 CPU를 가지게 된다

3. 보안그룹

  • 방화벽으로 네트워크 보안을 수행하는데 기본이 된다
  • EC2 인스턴스 안팎으로 트래픽이 허용되는 방식을 제어한다
  • 허용규칙만 있어서 무엇이 들어가고 나갈 수 있는지만 제어한다
  • 보안그룹은 서로 참조할 수 있다
  • 보안그룹은 특정 지역과 VPC 조합에만 제한된다
    • 따라서 다른 지역 전환또는 VPC를 변경하는 경우 새 보안 그룹을 생성해야 한다

4. 구매옵션

  • On-Demand Instance
    • 필요한 대로 인스턴스를 실행할 수 있어서 단기적인 작업에 좋다
    • 비용을 예측할 수 있고 초 단위로 요금을 지불하면 된다
  • Reserved: 1년 또는 3년
    • 장기간 작업을하는데 유용하다
    • 전환형 예약 틴스턴스: 시간이 지나면 인스턴스 타입을 변경하는 등 유연하게 사용할 수 있다
  • Saving Plans(절약 계획): 1년과 3년
    • 특정한 인스턴스 유형을 약정하는 게 아닌 달러 단위로 특정한 사용량을 약정한다
  • Spot Intances: 매우 짧게 사용을 위한 것이다
    • 인스턴스가 손실될 수 있어서 신뢰성은 낮다
  • Dedicated Hosts: 전용 호스트
    • 물리적 서버 전체를 예약해서 인스턴스 배치를 제어할수 있다
  • Dedicated Instances: 전용 인스턴스
    • 다른 고객이 나의 하드웨어를 사용하지 않는 것이다
  • Capacity Reservations: 용량 예약
    • 원하는 기간동안 특정한 AZ에 용량을 예약할 수 있다

1). EC2 On Demand

  • Linux 또는 Windows의 경우 1년후에 비용이 청구되고 다른 OS는 1시간 단위로 청구가 이뤄진다
  • 비용이 가장 많이 들지만 장기적인 약정도 필요없다
  • 단기적이고 중단 없는 워크로드가 필요할 때 또는 애플리케이션 가동을 예측할 수 없을 때 유용하다

2). EC2 Reserved Instances

  • 예약 인스턴스는 On Demand에 비해 72% 할인을 제공한다
  • 인스턴스 타입, Region, Tenancy, OS등을 예약한다
  • 예약 기간을 1년이나 3년으로 지정해서 할인을 더 받을 수 있고 선결제, 부분 선결제, 후결제 중에 선택할 수 있다
  • 범위를 특별한 리전이나 존으로 예약할 수 있고 사용량이 일정한 애플리케이션(DB)에 사용하는 것이 좋다
  • 예약 인스턴스를 마켓플레이스에서 사거나 팔 수 있다

전환형 예약 인스턴스

  • 인스턴스 타입, Region, Tenancy, OS, 범위등을 변경할 수 있다
  • 유연성이 더 크기 때문에 할인율이 떨어져 66% 정도이다

3). EC2 Saving Plans

  • 장기간 사용하면 할인을 받을 수 있다
  • 예약 인스턴스와 마찬가지로 70%할인을 받을 수 있는데, 1년 또는 3년 동안 시간당 10달러로 약정을 하게 된다
  • 사용량이 한도를 넘어서면 절약 플랜은 On Demand 가격으로 받는다
  • 특정한 인스턴스와 패밀리, Region으로 고정된다
    • 예를들어 M5와 Region은 고정이고, OS, Instance Size, Tenancy는 변경가능하다

4). EC2 Spot Instances

  • 할인폭이 제일 커서 온디맨드에 비해 최대 90%까지 할인이 된다
  • Spot Instace에 대해 지불하려는 최대 가격을 정의하고 Spot가격이 이를 뛰어넘으면 인스턴스가 손실된다
  • Batch Jobs, Data analysis, Image Processing등에 사용하면 좋다
    • 중요한 작업이나 데이터베이스에는 적절하지 않다

5). EC2 Dedicated Hosts

  • 전용으로 사용되는 EC2 인스턴스 용량이 있는 실제 물리적 서버를 받게 된다
  • 온디맨드로 초당 비용을 지불하거나 1년 또는 3년동안 예약할 수 있다
  • 실제 물리적 서버를 예약하기 때문에 AWS에서 가장 비싼 옵션이다

6). EC2 Dedicated Instances

  • 전용 하드웨어에서 실행되는 인스턴스이다
  • 같은 계정에서 다른 인스턴스와 함께 하드웨어를 공유할 수 있고, 인스턴스 배치에 대한 통제권은 없다

7). EC2 Capacity Reservations

  • 원하는 기간동안 특정한 AZ에서 온디맨드 인스턴스를 예약할 수 있다
    • 필요할 떄마다 그용량에 접근할 수 있다
  • 기간 약정은 없고 언제라도 용량을 예약하고 취소할 수 있다

5. 배치그룹

  • EC2 인스턴스가 AWS 인프라에 배치되는 방식을 제어할 때 사용한다
  • AWS의 하드웨어와 직접적인 상호작용을 하지는 않지만 각각 어떻게 배치되기를 원하는지 AWS에게 알려준다
  • 3가지 전략이 있다
    • Cluster: 인스턴스 그룹화하여 단일 가용 영역내에서 지연 시간이 짧은 하드웨어 설정한다
    • Spread: 분산 배치그룹으로 다른 하드웨어에 분산되지만 가용영역별로 7개 인스턴스만 가질 수 있다
    • Partition: 분산 배치그룹과 비슷하게 인스턴스를 분산하지만 여러 파티션에 인스턴스가 분할되어 있고 이 파티션은 가용 영역내의 다양한 하드웨어 랙 세트에 의존한다

1). Placement Groups Cluster

  • 모든 인스턴스간에 초당 약 10기가의 대역폭을 확보하여 향상된 네트워크를 활성화할 수 있다
    • 지연시간이 짧고 처리량이 많은 네트워크를 확보할 수 있다
  • 단점으로는 가용영역에 장애가 발생하면 모든 인스턴스가 장애가 난다

2). Placement Groups Spread

  • 분산배치그룹은 실패 위험을 최소화하려고 한다
  • 모든 EC2 인스턴스가 다른 하드웨어에 있어, 고가용성을 유지한다
  • 단점의 그룹에 제한이 있어 가용영역당 7개의 인스턴스밖에 사용할 수 없다

6. 절전모드

  • EC2는 삭제하면 EBS도 삭제된다 (같이 삭제 체크했다면)
    • 그렇지 않으면 그대로 남는다
  • 시작하게되면 OS가 부팅되고 User Data Script도 실행된다
    • 애플리케이션, 캐시도 실행되야 하니 시간이 다소 걸리게 된다
  • 절전모드에서는 RAM에 있는 메모리는 보존되서 부팅이 빠르게 진행된다
    • RAM은 EBS볼륨에 기록되기 때문에 루트 EBS 볼륨을 암호화해야 하고 볼륨 용량도 RAM에 저장하기에 충분해야 한다
  • EBS에만 저장이 되고 암호화된 EBS가 필수이다. 최대 60일

실행방식

  1. Instance가 실행될 때는 RAM에 Data가 들어있다
  2. 절전모드를 하면 Ram에 있는 데이터를 EBS에 적재한다
  3. Instance가 Stop이 되고 기존 Ram은 지워진다
  4. 다시 실행하면면 EBS에 있는걸 Ram에 적재시키고 EBS에 있던 데이터는 삭제시킨다

3). Placemnet groups Partition

  • 파티션은 AWS의 랙을 나타낸다
  • 파티션이 많을수록 인스턴스가 여러 하드웨어 랙에 분산되어 랙 실패로부터 안전하다
  • 파티션은 동일한 리전의 여러 가용 영역에 걸쳐있을 수 있다
  • 분산배치와 다른점은 최대 수백개의 EC2 인스턴스를 얻을 수 있다
  • 파티션별로 하드웨어가 분리되어 있기 때문에 파티션1이 고장나도 파티션2는 정상작동한다

SSH

  • 클라우드에서 실행 시 까다로운 부분 중 하나는 유지 보수나 조치를 위해서 서버 내부와 연결하는 것이다
  • Linux에서는 SSH를 통해 컴퓨터에 접속할 수 있다
  • AWS에서는 EC2 Instance Connect를 통해 연결할 수 있다
// 파일 이름에 공백이 있는 경우 큰따옴표로 감싸기
ssh -i ".\EC2 Tutorial2.pem" ec2-user@3.38.103.155

1). EC2 Instance Connect

  • Amazon EC2 대시보드에서 간단하게 접속할 수 있다
  • EC2 Connect로 접속한다음 aws-cli 명령을 하기 위해 configure로 설정하게 되면 누구라도 EC2에 접속해 정보들을 빼갈 수 있다
    • 이때 IAM의 Role을 이용하면 된다

ENI

  • 탄력적 네트워크 인터페이스 (Elastic Network Interface)
  • VPC의 논리적 구성요소이며 가상 네트워크 카드를 나타낸다
  • EC2 인스턴스가 네트워크에 액세스할 수 있게 도와준다
  • 여러가지 속성을 가진다
    • 주요 사설 IPv4와 하나 이상의 보조 IPv4를 가질 수 있다
    • 각 ENI는 사설 IPv4당 탄력적 IPv4를 갖거나 혹은 하나의 공용 IPv4를 가질 수 있다
    • ENI에 하나 이상의 보안그룹을 연결할 수 있다
    • MAC address도 연결할 수 있다
  • ENI는 특정 가용영역(AZ)에 종속된다

0개의 댓글