private EC2에 접속할 때 public IP가 없이 aws 콘솔에서 접속하고자 할 때, 아래 순서대로 진행되어야 한다.

  1. Private EC2에 AWS Systems Manager Agent(SSM Agent) 설치됨 (Ubuntu는 기본 설치됨)
  2. EC2 인스턴스 Role에 아래 정책 추가:
    1. AmazonSSMManagedInstanceCore
  3. Private Subnet이 NAT Gateway를 통해 인터넷 아웃바운드 가능해야 함
    (→ SSM 서비스에 접속하기 위해 필요)
  4. AWS 콘솔 → EC2 → 인스턴스 선택 → Connect → Session Manager 탭 → Connect

 

그런데 이런 에러 메시지가 떴다.

 

SSM 에이전트가 온라인 상태가 아닙니다

 

 

나를 포함한 많은 사람들이 맞닥뜨릴 상황 같아서 기록해본다.

 

더 자세하고 정확한 내용은 물론 도큐먼트에 있다! 하지만 좀더 내가 보기 편하게 정리해본다.

https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/session-manager-troubleshooting.html

 

 

 

 

➤ 체크리스트

 

1) EC2에 IAM Role이 붙어 있는지 확인

IAM Role에 반드시 아래 정책이 포함되어 있어야 함:

  • AmazonSSMManagedInstanceCore

확인 방법:

  • EC2 콘솔 → 인스턴스 선택 → Security → IAM Role

 

2) Routing Table에 RT 확인

Private Subnet에 연결된 RT 안에 아래 라우트가 등록되어 있어야 한다

  • 0.0.0.0/0   → nat
  • 10.0.0.0/16 → local          (VPC 내부 통신)

 

Public Subnet에 연결된 RT 안에 아래 라우트가 등록되어 있어야 한다

  • 0.0.0.0/0   → igw  (인터넷으로 나가는 기본 경로)
  • 10.0.0.0/16 → local          (VPC 내부 통신)

 

3) 엔드포인트 확인

VPC> PrivateLink 및 Lattice> endpoints 에서 다음 3개 엔드포인트 생성:

com.amazonaws.ap-northeast-2.ssm
com.amazonaws.ap-northeast-2.ec2messages
com.amazonaws.ap-northeast-2.ssmmessages

 

 

4) 보안그룹 규칙 확인

Inbound

  • https 443 10.0.0.0/16

Outbound

  • All type, All target, All port, 0.0.0.0/0

 

5) ACL 규칙 확인

Inbound

  • All type, All target, All port, 0.0.0.0/0

Outbound

  • All type, All target, All port, 0.0.0.0/0

 

6) DNS 호스트명 설정 문제

VPC 콘솔 → 해당 vpc 선택 → Actions(작업) → Edit VPC settings(VPC 설정 수정) → Enable DNS hostnames 체크

 

+ Recent posts