Session Manager로 Private EC2 인스턴스에 접속해 보기

Session Manager로 Private EC2에 접속해 보는 과정을 정리해 봤습니다.
2021.10.02

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 Session Manager로 Private EC2에 접속해 보는 과정을 정리해 봤습니다.

Session Manager로 Private EC2 인스턴스에 접속하는 과정은 다음과 같습니다.

  • VPC 생성
  • 서브넷 생성
  • 라우팅 테이블 생성
  • EC2 인스턴스 생성
  • SSM Role 생성
  • 엔드포인트 생성
  • Session Manager로 Private EC2 인스턴스에 접속

환경 구성

VPC 생성

먼저 VPC로 들어와서「VPC 생성」버튼을 클릭합니다.

VPC 이름과 CIDR을 입력하고 VPC를 생성합니다.

서브넷 생성

다음은 서브넷으로 들어와서「서브넷 생성」버튼을 클릭합니다.

VPC는 이전에 만든 sm-test-vpc를 선택합니다.

이어서 서브넷 이름을 입력하고, 적절하게 CIDR를 입력한 다음 서브넷 생성을 마칩니다.

라우팅 테이블 생성

라우팅 테이블에서「라우팅 테이블 생성」버튼을 클릭합니다.

라우팅 테이블의 이름을 입력하고, sm-test-vpc를 선택한 다음「라우팅 테이블 생성」버튼을 클릭합니다.

서브넷 연결 탭에서「서브넷 연결 편집」버튼을 클릭합니다.

sm-private-subnet을 선택하고「연결 저장」버튼을 클릭합니다.

EC2 인스턴스 생성

먼저 EC2 인스턴스에서는 ssm agent가 설치 되어있어야 합니다. 기본적으로 제공하고 있는 AMI에는 ssm agent가 포함되어 있기 때문에 별도로 설치할 필요는 없습니다.

  • 네트워크 ; sm-test-vpc
  • 서브넷 : sm-private-subnet
  • 퍼블릭 IP 자동 할당 : 비활성화

VPC Endpoint를 사용할 생각이기 때문에 HTTPS 트래픽을 허용해야 합니다. EC2 인스턴스가 속해 있는 VPC내에서 HTTPS 트래픽을 허용합니다.

보안 그룹 설정을 끝마쳤다면, 키 페어 없이 EC2 인스턴스를 생성합니다.

Session Manager 설정

IAM Role 생성

EC2에서 Session Manager를 사용하기 위해서는 권한이 필요합니다.

IAM에서 역할 만들기로 들어갑니다.

AWS 서비스에서 EC2를 선택하고 다음으로 넘어갑니다.

「AmazonEC2RoleforSSM」을 선택해서 역할을 생성합니다.

그리고 EC2 인스턴스에 조금전 만든 역할을 연결합니다.

엔드포인트 생성

엔드포인트를 생성할 때, 프라이빗 DNS 이름 활성화를 하기 위해서 VPC에서「DNS 호스트 이름」을 활성화 합니다.

VPC에서「엔드포인트 생성」버튼을 클릭합니다.

먼저 서비스 이름에 ssm을 검색해서 선택합니다. 그리고 조금전 생성한 VPC와 서브넷을 선택합니다.

「프라이빗 DNS 이름 활성화」를 체크합니다. 여기서 프라이빗 DNS 이름 활성화에 따라서 통신의 흐름이 달라집니다.

그리고 ssmmessages, ec2messages 또 한 엔드포인트를 생성합니다.

Session Manager로 EC2 인스턴스 실행

EC2 인스턴스에서 Session Manager 탭으로 들어가 보면, 연결 버튼이 활성화 되어 있는 것을 볼 수 있습니다.

연결 버튼을 클릭하면 Private EC2 인스턴스에 접속할 수 있습니다.

또 한 Session Manager로 들어가 보면, 대상 인스턴스로 Private EC2 인스턴스가 생성되어 있는 것을 볼 수 있습니다. 여기서 세션 시작 버튼을 클릭해서 Private EC2 인스턴스로 접속할 수 있습니다.

참고