EC2 인스턴스 생성 - 상세 옵션 살펴보기

SummerToday·2024년 9월 18일
0

AWS 아키텍처 관련

목록 보기
7/7
post-thumbnail
post-custom-banner

EC2 인스턴스 생성

필요한 리소스들이 모두 준비되었으므로 EC2 인스턴스를 생성할 수 있다.

  • 애플리케이션 및 OS 이미지(Amazon Machine Image)
    인스턴스에 사용할 운영 체제나 애플리케이션 서버가 포함된 AMI(Amazon Machine Image)를 선택하는 부분이다. 여기에서 사용 가능한 AMI들이 나열되어 있으며, Amazon Linux, macOS, Ubuntu, Windows, Red Hat 등이 포함되어 있다.


  • 인스턴스 유형
    인스턴스에 할당할 하드웨어 자원을 선택하는 섹션이다.

  • 키 페어(로그인)
    인스턴스에 안전하게 접속하기 위한 키 페어를 설정하는 섹션이다.
    필요한 경우 새로운 키 페어를 생성할 수 있는 옵션도 제공된다.


  • VPC
    인스턴스가 속할 VPC(Virtual Private Cloud)를 선택하는 섹션이다.

  • 서브넷
    선택된 VPC 내에서 인스턴스가 속할 서브넷을 선택하는 부분이다.

  • 퍼블릭 IP 자동 할당
    퍼블릭 IP 주소를 자동으로 할당할지 여부를 설정하는 옵션이다.

    퍼블릭 서브넷에 배치할 EC2 인스턴스의 경우, 대부분의 경우 퍼블릭 IP 자동 할당 옵션을 활성화하는 것이 일반적이다.
    퍼블릭 IP가 필요 없는 인스턴스(예: 프라이빗 서브넷에 있는 데이터베이스 서버 등)에서는 해당 옵션을 비활성화한다.

  • 방화벽(보안 그룹)
    인스턴스에 대한 트래픽을 제어하는 방화벽 규칙을 설정하는 섹션이다. 사용자는 새로운 보안 그룹을 생성하거나 기존 보안 그룹을 선택할 수 있다.

  • 디바이스 인덱스 (Device Index)
    네트워크 인터페이스의 순서를 나타낸다. 일반적으로 인덱스 0은 기본 네트워크 인터페이스에 할당되며, 추가적인 인터페이스를 구성할 때는 인덱스가 증가한다.

    • 디바이스 인덱스 0에 할당된 네트워크 인터페이스는 기본 네트워크 인터페이스로 간주된다.

    • 기본 네트워크 인터페이스는 인스턴스가 부팅될 때 자동으로 연결되며, 이 네트워크 인터페이스를 통해 기본적으로 인터넷 연결이나 네트워크 트래픽이 이루어진다.

    • 기본 네트워크 인터페이스는 삭제할 수 없으며, 인스턴스가 종료될 때까지 항상 존재한다.

    • 디바이스 인덱스 1 이상에 할당된 네트워크 인터페이스는 추가 네트워크 인터페이스로 간주된다.

    • 추가 인터페이스는 하나의 인스턴스가 여러 네트워크에 동시에 연결될 수 있도록 하거나, 특정 트래픽을 분리하기 위해 사용할 수 있다.

    • 예를 들어, 하나의 네트워크 인터페이스는 공용 서브넷에 연결하고 다른 인터페이스는 프라이빗 서브넷에 연결하는 구조로 구성할 수 있다.
  • 기본 IP 주소 (Primary IP Address)
    선택된 네트워크 인터페이스에 할당할 기본 IP 주소를 설정한다. AWS에서 제공하는 기본 설정을 따르거나, 사용자가 직접 IP 주소를 지정할 수 있다.

  • 보조 IP 주소 (Secondary IP Addresses)
    인스턴스에 추가로 할당할 수 있는 IP 주소이다. 하나의 네트워크 인터페이스에 여러 개의 IP 주소를 할당할 수 있으며, 각 IP 주소는 추가적인 서비스나 애플리케이션에 사용할 수 있다. 이는 고가용성 구성이나 복수의 네트워크 인터페이스를 필요로 하는 경우에 유용하다

  • IPv6 IP
    선택된 서브넷에서 인스턴스에 IPv6 주소를 할당할 수 있는 옵션이다. IPv4와 달리 IPv6는 훨씬 더 많은 주소 공간을 제공하며, 특정 네트워크에서 IPv6 주소가 필요할 경우 이 옵션을 사용할 수 있다.

  • IPv6 접두사 (IPv6 Prefix Delegation)
    서브넷에 IPv6 CIDR 블록을 설정하여 인스턴스에 자동으로 IPv6 주소를 할당할 수 있는 옵션이다.

    서브넷을 생성할 때 x.x.x.x/y 형식으로 CIDR 블록을 정의하는데, 여기서 IPv6 접두사는 /y 부분을 의미한다.

  • 기본 IPv6 IP 활성 (Enable Primary IPv6)
    기본 IPv6 주소의 활성화 여부를 설정한다. 기본적으로 선택된 서브넷이 IPv6 주소를 지원하는 경우에만 이 옵션이 사용 가능하다.

  • 종료 시 삭제 (Delete on Termination)
    인스턴스가 종료될 때 이 네트워크 인터페이스를 자동으로 삭제할지 여부를 결정하는 옵션이다. 이 옵션을 활성화하면 인스턴스가 종료되면서 관련된 네트워크 인터페이스도 함께 삭제된다. 이는 자원 관리를 단순화하는 데 도움이 된다.


  • Elastic Fabric Adapter (EFA)
    활성화 체크박스를 통해 EFA를 활성화할 수 있다.

    EFA는 고성능 컴퓨팅(HPC) 작업 부하 및 머신 러닝 애플리케이션에서 사용되는 네트워크 인터페이스로, 높은 처리량과 낮은 지연 시간을 제공한다.

  • 네트워크 카드 인덱스
    네트워크 카드 인덱스를 선택할 수 있는 옵션이다.

    인스턴스에 여러 개의 네트워크 인터페이스(ENI)가 있을 때, 각 네트워크 인터페이스를 구분하는 데 사용된다. 여러 네트워크 카드를 지원하지 않는 인스턴스 유형일 경우 이 옵션이 비활성화된다.

  • ENA Express UDP
    ENA Express를 사용하는 동안 UDP(사용자 데이터그램 프로토콜)를 통한 네트워크 전송 성능을 향상시키기 위한 옵션이다.
    선택한 인스턴스가 ENA Express를 지원하지 않기 때문에 현재 이 옵션도 사용 불가능하다.

  • 유휴 연결 추적 제한 시간
    이 옵션은 활성화할 경우, 인스턴스의 유휴 상태에서 연결을 유지하는 시간에 제한을 두는 기능이다. 네트워크 연결이 유휴 상태일 때 이를 추적하고 제한하는 기능으로, 보안 및 성능 최적화에 사용될 수 있다.

    유휴 상태(Idle State)는 네트워크 연결 또는 컴퓨팅 자원이 아무런 작업을 하지 않고 있는 상태를 의미한다. 유휴 상태는 시스템 자원을 사용하지 않으면서도 네트워크 연결을 유지하고 있기 때문에, 적절히 관리되지 않으면 자원 낭비가 발생할 수 있다.


  • 스토리지 구성
    이 섹션은 인스턴스에 연결할 스토리지를 설정하는 부분이다. 스토리지는 EBS(Elastic Block Store) 볼륨으로 제공되며, EC2 인스턴스에 영구적인 블록 스토리지를 제공한다.

  • 볼륨 크기:
    현재 설정된 볼륨의 크기는 8 GiB로 설정되어 있다.
    볼륨 크기를 자유롭게 조정할 수 있으며, 인스턴스의 운영 체제, 애플리케이션, 데이터 등을 저장하는 데 사용된다.

    cf. 프리 티어(Free Tier)를 사용할 경우 최대 30 GiB의 SSD 또는 마그네틱 스토리지를 사용할 수 있다.

    Gib vs Gb

    • 1 GiB = 1,024 MiB (메비바이트) = 1,024^3 바이트 = 1,073,741,824 바이트

    • 1 GB = 1,000 MB (메가바이트) = 1,000^3 바이트 = 1,000,000,000 바이트
  • 스토리지 유형
    EC2 인스턴스에 사용할 수 있는 EBS(Elastic Block Store) 볼륨의 종류를 의미한다.

    유형설명최대 IOPS최대 처리량 (MB/s)주요 사용 사례
    gp3일반 목적 SSD, 성능과 비용 균형16,0001,000다양한 범용 워크로드, 웹 서버, 개발 환경
    gp2일반 목적 SSD, 볼륨 크기 따라 성능 결정16,000250다양한 범용 워크로드, 웹 서버, 개발 환경
    io2고성능 SSD, 높은 IOPS와 신뢰성 제공64,0001,000고성능 데이터베이스, 트랜잭션 많은 애플리케이션
    st1처리량 최적화 HDD, 순차적 읽기/쓰기 용도500500빅 데이터, 데이터 분석, 로그 처리
    sc1저비용 콜드 HDD, 자주 액세스하지 않는 데이터250250아카이브, 백업, 로그 데이터 보관
  • 루트 볼륨
    현재 선택된 스토리지는 루트 볼륨으로 설정되어 있으며, 이 볼륨은 인스턴스가 부팅될 때 운영 체제가 설치되는 볼륨이다.

    루트 볼륨은 인스턴스가 종료될 때 삭제되도록 설정할 수 있으며, 기본적으로는 인스턴스와 함께 유지된다.

  • 새 볼륨 추가
    추가적인 볼륨을 설정하고 싶을 경우, 새 볼륨 추가 버튼을 클릭하여 추가 스토리지를 인스턴스에 연결할 수 있다.

    여러 개의 볼륨을 인스턴스에 연결하여, 다양한 데이터나 애플리케이션을 별도로 저장하는 것이 가능하다.

  • 백업 정보
    백업 관련 정보는 Data Lifecycle Manager 정책에 따라 관리된다. 이 정책에 따라 인스턴스의 백업이 자동으로 생성될 수 있으며, 사용자는 이를 관리할 수 있다.

    백업을 자동화하거나 수동으로 백업할 수 있으며, 이 섹션은 해당 설정을 보여준다.

  • 0x 파일 시스템
    이 항목은 파일 시스템이 아직 설정되지 않았음을 나타낸다. 인스턴스의 스토리지에 파일 시스템이 필요할 경우, 파일 시스템을 설정해야 한다.

    "0x"는 파일 시스템이 없음을 나타내는 특수한 상태 메시지이다.


  • 도메인 조인 디렉터리
    해당 옵션은 디렉터리 서비스를 사용하여 인스턴스를 도메인에 가입시키는 설정이다. 도메인 조인을 통해 인스턴스가 도메인 환경 내에서 인증, 액세스 제어, 디렉터리 기반의 네트워크 설정 등을 지원받을 수 있다.

  • IAM 인스턴스 프로파일
    IAM 인스턴스 프로파일은 EC2 인스턴스에 IAM 역할을 부여하여 해당 인스턴스가 AWS 리소스에 접근할 수 있는 권한을 부여하는 설정이다.

    예를 들어, 인스턴스가 S3 버킷이나 DynamoDB와 통신해야 하는 경우, IAM 인스턴스 프로파일을 통해 권한을 관리할 수 있다.

  • 호스트 이름 유형
    해당 설정은 인스턴스의 호스트 이름을 구성하는 방식이다.

    • IP 이름
      호스트 이름이 IP 주소를 기반으로 자동으로 생성된다.

    • 리소스 이름 기반
      호스트 이름을 리소스 이름을 기반으로 할지 여부를 선택할 수 있다.

  • DNS 호스트 이름
    EC2 인스턴스가 네트워크에서 식별되기 위해 사용되는 도메인 이름을 의미한다.

    호스트 이름 유형은 내부 식별 방식이고, DNS 호스트 이름은 외부 또는 네트워크 상에서 접근 가능한 도메인 이름 설정이라는 차이가 있다.

    • IPv4 DNS 요청 활성화
      이 옵션을 활성화하면 인스턴스에 대한 IPv4 DNS 레코드(A 레코드)가 생성된다.

    • 리소스 기반 IPv4 DNS 요청 활성화
      리소스 이름을 기반으로 한 IPv4 DNS 레코드를 요청할 수 있다.

    • 리소스 기반 IPv6 DNS 요청 활성화
      활성화 시 인스턴스에 대한 IPv6 DNS 레코드(AAAA 레코드)를 생성할 수 있다.

  • 인스턴스 자동 복구
    이 옵션은 인스턴스가 장애로 인해 종료되었을 때, AWS에서 자동으로 복구할지를 설정하는 기능이다. 이 설정을 활성화하면 장애 발생 시 자동으로 인스턴스를 다시 실행할 수 있다.

  • 종료 동작
    인스턴스가 종료될 때의 동작을 설정할 수 있다. 옵션은 중지(Stop) 또는 종료(Terminate)로 선택할 수 있으며, 중지를 선택하면 인스턴스가 완전히 삭제되지 않고 정지 상태로만 유지된다.

  • 최대 절전 중지 방식
    인스턴스의 최대 절전 모드를 활성화할지 여부를 설정하는 옵션이다. 최대 절전 모드는 인스턴스의 상태를 그대로 유지한 채 메모리와 상태를 저장한 후 인스턴스를 중지하고, 필요 시 다시 실행할 수 있게 한다.

  • 종료 방지
    해당 설정을 통해 인스턴스를 실수로 종료하는 것을 방지할 수 있다. 이 옵션을 활성화하면 사용자가 실수로 인스턴스를 종료하지 못하도록 보호해 준다.

  • 중지 방지
    중지 방지는 인스턴스가 의도치 않게 중지되지 않도록 하는 설정이다. 이 옵션을 활성화하면, 인스턴스가 실수로 중지되지 않도록 보호할 수 있다.

  • 세부 CloudWatch 모니터링
    이 옵션을 활성화하면 AWS CloudWatch에서 인스턴스의 세부 모니터링 정보를 더 자주 수집할 수 있다.

    기본 모니터링은 5분 간격으로 이루어지지만, 세부 모니터링을 활성화하면 1분 간격으로 모니터링 데이터를 수집할 수 있다.

  • 크레딧 사양
    이 설정은 T2/T3 인스턴스에 대한 CPU 크레딧 사용 방식을 선택하는 옵션이다.

    • 기본
      인스턴스가 기본 성능 이하로 동작할 때는 CPU 크레딧을 축적하고, 이를 사용하여 성능을 향상시키지만, 크레딧이 다 소진될 시 인스턴스는 다시 기본 성능 수준으로 돌아간다.

    • 무제한
      인스턴스가 초과 CPU 사용량을 처리할 수 있지만, 추가 요금이 발생할 수 있다.

      CPU 크레딧은 인스턴스가 기본 성능 이상으로 CPU를 사용하는 시간을 의미한다. 각 크레딧은 1 CPU 코어를 100%로 1분간 사용할 수 있는 권리를 나타낸다.

      CPU 크레딧이 있는 한, 인스턴스는 CPU 사용량을 급격히 높일 수 있으며, 이를 버스트 성능이라고 한다.

      cf. T2, T3, T3a 인스턴스와 같은 버스트 가능한(변동 가능한) 성능 인스턴스에서 사용하는 개념이다.

  • 배치 그룹
    배치 그룹은 인스턴스의 물리적인 배치 전략을 설정할 수 있는 옵션이다. 이를 통해 인스턴스를 특정 하드웨어 또는 네트워크 인프라에서 배치하여 성능을 최적화할 수 있다.

    • 클러스터 배치
      동일한 물리적 하드웨어에 인스턴스를 배치하여 높은 네트워크 처리량을 보장.

    • 분산 배치
      물리적으로 서로 다른 하드웨어에 인스턴스를 분산 배치하여 장애 내성을 강화.

  • EBS 최적 인스턴스
    EBS 최적화를 활성화하면, 인스턴스가 EBS와 통신할 때 전용 네트워크 대역폭을 사용할 수 있다. 이는 디스크 I/O와 네트워크 트래픽이 서로 영향을 주지 않도록 하여 성능을 최적화할 수 있는 기능이다.

  • 구매 옵션

    • 없음
      표준 온디맨드 인스턴스 형태로 인스턴스를 실행한다.

    • 스팟 인스턴스
      스팟 인스턴스를 선택하면, 온디맨드 가격보다 저렴한 스팟 가격으로 인스턴스를 실행할 수 있다. 이는 AWS가 남는 컴퓨팅 자원을 저렴하게 제공하는 방식이며, 자원이 부족할 경우 스팟 인스턴스가 종료될 수 있다.

  • 용량 예약
    특정 가용 영역에서 용량을 예약하여, 나중에 사용하기 위해 인스턴스 실행 시 용량을 확보할 수 있다. 이를 통해 특정 시점에 필요한 리소스를 미리 확보해 둘 수 있다.

  • 테넌시
    테넌시(Tenancy)는 인스턴스가 공유 하드웨어에서 실행될지, 아니면 전용 하드웨어에서 실행될지를 결정한다.

    • 공유 인스턴스
      여러 고객이 동일한 물리적 서버를 공유하는 방식.

    • 전용 인스턴스 또는 전용 호스트
      하나의 고객만 물리적 서버를 사용할 수 있도록 하여, 보안과 규제 준수를 강화하는 방식.

  • RAM 디스크 ID
    커스텀 RAM 디스크를 사용할 수 있는 설정이다. 특정 커널을 사용할 때 RAM 디스크를 지정할 수 있으며, 해당 옵션은 일반적인 사용자는 거의 설정하지 않는다.

  • 커널 ID
    EC2 인스턴스가 특정 커널을 사용해야 할 때, 이 커널 ID를 지정할 수 있다. AWS의 일반적인 AMI는 커널을 자동으로 설정하지만, 특수한 커널을 사용해야 할 때 이 옵션을 사용한다.

  • Nitro Enclave
    Nitro Enclave는 보안과 데이터 격리를 강화하기 위해 사용되는 AWS 기능이다. 민감한 데이터를 안전하게 처리할 수 있도록 하며, 데이터 보호와 애플리케이션 보안 강화를 위해 사용된다.

  • 라이선스 구성
    이 옵션을 통해 인스턴스에 적용할 소프트웨어 라이선스를 지정할 수 있다. AWS에서 제공하는 라이선스를 사용할지, 사용자가 소유한 라이선스를 가져와서 사용할지를 선택할 수 있다.

  • CPU 옵션
    CPU 옵션 지정을 선택하면, 인스턴스가 사용할 CPU 코어 수와 스레드 수를 사용자 정의할 수 있다.
    이 옵션은 라이선스 비용을 절감하거나, 워크로드 성능 최적화를 위해 인스턴스의 CPU 구성을 조정하는 데 유용하다.

  • 메타데이터 액세스 가능
    EC2 인스턴스에서 인스턴스 메타데이터에 접근할 수 있는지 여부를 결정하는 설정이다. 기본적으로 활성화되어 있으며, 인스턴스 메타데이터는 인스턴스 ID, AMI ID 등과 같은 중요한 정보를 제공한다.

  • 메타데이터 IPv6 엔드포인트
    인스턴스가 IPv6 주소를 사용해 메타데이터 엔드포인트에 접근할 수 있는지 여부를 설정하는 옵션이다. IPv6을 사용하는 네트워크 환경에서 유용하다.

  • 메타데이터 버전
    메타데이터 버전 2를 사용하도록 설정된 상태이다. 메타데이터 버전 2는 더 높은 보안성을 제공하며, 메타데이터 요청에 세션 토큰을 포함하는 방식으로 안전하게 정보를 접근할 수 있다.
    V1과 V2는 메타데이터에 접근하는 방식에 차이가 있으며, V2는 보안 측면에서 개선된 버전이다.

  • 메타데이터 응답 홉 제한(Metadata Response Hop Limit)
    EC2 인스턴스의 인스턴스 메타데이터 서비스(Instance Metadata Service, IMDS)에 접근할 때 적용되는 네트워크 홉(hop)의 최대 수를 설정하는 옵션이다.

    • 인스턴스 메타데이터 서비스(Instance Metadata Service, IMDS)
      AWS EC2 인스턴스에서 실행 중인 애플리케이션이나 사용자 스크립트가 인스턴스와 관련된 정보를 검색할 수 있도록 AWS가 제공하는 서비스이다.

    메타데이터에는 메타데이터는 인스턴스에 대한 정보를 담고 있는 데이터이다. 인스턴스 메타데이터에는 인스턴스 ID, AMI ID, 지역, 퍼블릭/프라이빗 IP 주소, 보안 그룹, 인스턴스 유형 등과 같은 다양한 정보가 포함된다.

    홉 제한을 1로 설정하면 인스턴스 내부에서만 메타데이터 서비스에 접근할 수 있어 보안을 강화할 수 있다. 이렇게 하면 외부 네트워크나 다른 인스턴스에서 메타데이터를 요청하는 시도를 차단할 수 있다.

    홉 제한을 2로 설정하면 더 많은 네트워크 홉을 허용하므로, 외부 네트워크나 다른 인스턴스에서도 메타데이터에 접근할 수 있게 설정할 수 있다. 이는 보안상 위험할 수 있다.

  • 메타데이터에서 태그 허용
    EC2 인스턴스의 메타데이터 서비스(Instance Metadata Service, IMDS)를 통해 인스턴스의 태그 정보를 조회할 수 있는 기능을 말한다. 이 기능이 활성화되면, 인스턴스 태그를 EC2 인스턴스 메타데이터에서 직접 가져와서 사용할 수 있다.

  • 사용자 데이터
    EC2 인스턴스가 시작될 때 실행할 스크립트 또는 명령어를 제공하는 데 사용된다. 인스턴스가 시작될 때 자동으로 실행되어 인스턴스 설정을 초기화하거나 애플리케이션을 설치하는 데 유용하다.

    사용자 데이터가 이미 base64로 인코딩되어 있음 체크박스는 사용자가 제공한 데이터가 이미 Base64로 인코딩되어 있는 경우에 선택하는 옵션이다. 이 경우 AWS는 데이터를 추가로 인코딩하지 않고 바로 사용한다.

    ex. Bash 스크립트 예시
    #!/bin/bash
    yum update -y
    yum install -y httpd
    systemctl start httpd
    systemctl enable httpd


EIP(Elastic IP) 할당 및 연결

고정된 공용 IP 주소를 원할 경우 Elastic IP를 할당하여 인스턴스에 연결할 수 있다.

현 상황에서는 위에서 VPC를 생성할 때 생성된 NAT 게이트웨이에 자동으로 할당된 EIP 2개 존재하고 있다. 여기서 EC2에 할당할 EIP 1개를 더 생성해준다.

위와 같이 EIP 할당 후 [작업] -> [탄력적 IP 주소 연결] 버튼을 눌러 다음과 같이 인스턴스와 연결해준다.

EC2 대시보드에서 보면 아래와 같이 정상적으로 EIP(퍼블릭 IP)가 정상적으로 할당된 것을 확인할 수 있다.


SSH 접속 테스트

  • PuTTYgen을 통한 키 변환
    이전에 받아놓은 .pem키를 putty에서 사용하기 위해 .ppk형식으로 변환해준다.

    Load 버튼을 누르고 파일 형식을 All Files로 바꾼 뒤 이전에 받아 놓은 .pem 키를 선택한다.


    Save private key 버튼을 눌러 .ppk 형식으로 변환한다.


  • putty를 실행하여 Session 탭에서 IP address에 EC2에 할당했던 EIP(43.202.234.7)를 적어주고 SSH 포트 번호인 22번을 적어준다.


    Connection -> SSH -> Auth -> Credential 탭에서 Private key files for authentication에서 Browse 버튼을 눌러 아까 생성한 .ppk 파일을 선택한다.


    Open을 눌러 해당 서버에 접속한다.


    다음과 같이 정상적으로 접속되는 것을 확인할 수 있다.

    cf. 만약 접속이 안된다면 보안 그룹에 자신의 IP를 22번 포트로 들어올 수 있도록 인바운드 규칙을 편집을 해주었는지 다시 한번 확인한다. 또는 EC2가 퍼블릭 서브넷에 배치되어 있지 않고, 프라이빗 서브넷에 배치되어 있는지 확인한다.

    cf. 프라이빗 서브넷에 있는 EC2에 접근하기 위해서는 배스천 호스트를 통해 접근하거나 VPN 연결을 통해 접속해야한다.

profile
IT, 개발 관련 정보들을 기록하는 장소입니다.
post-custom-banner

0개의 댓글