D1-04. AWS EC2 Instant

D1-04. AWS EC2 Instant

in

1. EC2 Instant

EC2 인스턴스는 AWS 클라우드 상에서 동작하는 가상 머신(Virtual Machine) 입니다.
사용자는 몇 번의 클릭만으로 원하는 사양의 가상 서버를 프로비저닝하고, 마치 물리 서버를 직접 운영하는 것처럼 완벽한 제어 권한을 가질 수 있습니다.

1-1. 특징

  • 가상화: 물리 서버의 자원을 가상으로 분할하여 사용합니다.
  • 유연성: 다양한 인스턴스 유형(CPU, 메모리, 스토리지, 네트워크 용량)을 선택할 수 있습니다.
  • 확장성: 필요에 따라 인스턴스 수를 늘리거나 줄일 수 있습니다.
  • 종량 과금: 사용한 만큼만 비용을 지불합니다.

2. EC2 Key Pairs

EC2 Instant를 구축하게 되면, SSH 서비스로 안전하게 접근할 수 있는 Key Pairs가 생성됩니다.
EC2 Key Pairs는 Public Key 와 Private Key 두 부분으로 구성됩니다.

EC2 Instant 생성 시 Public Key는 ~/.ssh/authorized_keys 파일에 저장되며, Private Key는 사용자 다운로드 후 EC2 Instant 에서 삭제됩니다.
주의할 점은 Private Key는 재발급이 불가능하여, 분실 시 복구가 되지 않습니다.

2-1. 특징

  • Public Key: AWS가 보관하며 EC2 인스턴스에 저장
  • Private Key: 사용자만 보유하며, AWS는 생성 후 즉시 삭제
  • 지원 형식: ED25519, RSA 2048-bit

2-2. 주의 사항

1). EC2 Management Console에서 Key pairs 제거

키 페어를 EC2 콘솔에서 삭제해도 EC2 인스턴스에서는 Public Key가 자동으로 제거되지 않습니다.
즉, Private Key를 가진 사람은 여전히 인스턴스에 접속 가능합니다.

2). AMI의 Public Key

Public Key가 포함된 AMI로 EC2 Instant를 생성하면서 새 Key pairs를 선택 시 AMI의 Public Key와 EC2의 Public Key 모두 가지게 됩니다.
즉, AMI와 EC2의 Private Key 중 어느 것에 해당하는 프라이빗 키로도 접속 가능합니다.

2-3. Public Key 노출 시 대응 방안

  • Step 1. 모든 EC2 Instant에서 노출된 Public Key 제거
    각 Instant의 SSH authorized_keys 파일에서 해당 Public Key 삭제
  • Step 2. 새 키 페어 생성
    EC2 콘솔에서 새로운 Key pairs 생성
  • Step 3. 새 Public Key 추가
    모든 EC2 Instant의 authorized_keys 파일에 새 Public Key 추가

자동화된 대응 방안
AWS Systems Manager(SSM) Run Command로 키 교체 작업 자동화를 만들어서 대응할 수 있습니다.


3. EC2 Instance Connect API

EC2 Instance Connect는 EC2 브라우저 기반 SSH 접속 방식입니다.
API 호출 기반으로 임시 SSH Key 생성·사용하며, EC2 Instance Connect Agent가 인스턴스 내에서 동작합니다.

주의할 점은 AWS IP 주소 대역을 방화벽에 허용해줘야 사용이 가능합니다.

3-1. 동작 과정

  • Step 1. 사용자가 콘솔/CLI에서 Instance Connect 요청
    AWS 페이지나 CLI를 통해 EC2 Instance Connect API에 연결 요청합니다.
  • Step 2. EC2 Instance Connect API
    EC2 Instance Connect API는 임시 Key Pairs을 생성합니다.
  • Step 3. Instance Metadata 반영
    생성된 퍼블릭 키가 EC2 Instance Metadata에 임시로 60초 동안만 반영됩니다.
  • Step 4. SSH 연결 수립
    EC2 Instance Connect API가 생성된 Private Key를 사용해 인스턴스에 SSH 연결을 시도합니다.
  • Step 5. 인증 과정
    인스턴스의 SSH 프로세스는 다음 두 곳에서 인증 키를 확인합니다.
    • authorized_keys 파일
    • EC2 Instance Metadata
  • Step 6. 연결 완료
    키가 일치하면 SSH 연결이 성립되고 사용자는 인스턴스에 접속할 수 있게 됩니다.
  • Step 7. 접근 기록
    EC2 Instance Connect 연결은 AWS API를 통해 이루어지므로 CloudTrail에 자동으로 기록됩니다.

3-2. 특징

  • 임시 키 사용: Public Key는 60초 동안만 유효하므로 보안성이 높습니다.
  • Metadata 보호: EC2 Instance Metadata는 AWS만 접근할 수 있어 외부에서 임의로 키를 삽입할 수 없습니다.
  • CloudTrail 로깅: CloudTrail에 자동으로 기록되어, 책임 추적에 용이합니다.

4. EC2 Serial Console

EC2 Serial Console은 네트워크 연결 없이도 EC2 인스턴스에 접근할 수 있는 특별한 터미널 기능입니다.

온프라미스 서버에 직접적인 시리얼 포트를 통한 접속하는 것과 같습니다.
즉, 클라우드 인스턴스에 대한 저수준(low-level) 접근을 가능하게 합니다.

4-1. 사용 목적

  • 부팅 문제 해결
  • 네트워크 구성 문제 해결
  • 재부팅 관련 이슈 분석

4-2. 특징

  • 시리얼 포트 접근
    인스턴스의 시리얼 포트를 통해 접근하므로 네트워크 기능이 필요 없습니다.
  • 지원 인스턴스
    Nitro 기반 EC2 인스턴스에서만 작동합니다.
  • 인증 방식
    사용자 이름과 비밀번호를 사용하여 로그인합니다.
    주의할 점은 이 기능을 사용하기 전에 반드시 사용자와 비밀번호를 설정해야 합니다.
  • 세션 제한
    각 EC2 인스턴스당 하나의 시리얼 콘솔 세션만 활성화할 수 있습니다.
  • 기본 설정
    강력한 접근 권한을 제공하기 때문에 기본적으로 비활성화되어 있습니다.
    EC2 Console 설정에서 활성화할 수 있습니다.