본문 바로가기
Infra, Cloud/AWS

[AWS] Session Manager를 이용하여 EC2 인스턴스에 접근하기

by J4J 2023. 7. 17.
300x250
반응형

안녕하세요. J4J입니다.

 

이번 포스팅은 Session Manager를 이용하여 EC2 인스턴스에 접근하는 방법에 대해 적어보는 시간을 가져보려고 합니다.

 

 

 

Session Manager란 ?

 

Session Manager는 종합 관리형 AWS System Manager 기능으로 SSH를 사용하는 것 없어 EC2 인스턴스에 접근할 수 있도록 도와줍니다.

 

AWS에서 Session Manager의 장점들로 얘기하는 것들은 다음의 것들이 있습니다.

 

  • 인스턴스에 접속하기 위한 인바운드 설정이 필요 없음
  • Bastion 호스트를 유지할 필요 없음
  • SSH 키 관리를 할 필요 없음
  • Session 활동에 대한 로깅 처리

 

 

 

즉, 그동안 인스턴스에 접근할 때 해왔던 불필요한 작업들을 단순하게 AWS에 접속하여 AWS CLI 클릭 한 번으로 대체할 수 있도록 도와주는 기능입니다.

 

 

반응형

 

 

Public Subnet 인스턴스 접근

 

public subnet 안에 있는 인스턴스에 접근할 때는 다음의 것들만 적용되어 있으면 됩니다.

 

  • 인스턴스에 AmazonSSMManagedInstanceCore 역할 권한 부여
  • 인스턴스 Outbound 443 오픈

 

 

 

[ 1. IAM 접속 ]

 

IAM 접속

 

 

 

[ 2. 역할 생성 ]

 

왼쪽에서 역할 메뉴를 선택한 뒤 오른쪽에 있는 역할 만들기 버튼을 클릭해 줍니다.

 

역할 만들기

 

 

 

신뢰할 수 있는 엔터티 선택에서는 다음과 같이 선택해 줍니다.

 

신뢰할 수 있는 엔터티 선택

 

 

 

권한 추가에서는 AmazonSSMManagedInstanceCore 권한을 추가해 줍니다.

 

권한 추가

 

 

 

이름 지정, 검토 및 생성에서는 역할 이름과 설명을 입력해 준 뒤 최종 생성을 해 주시면 됩니다.

 

이름 지정, 검토 및 생성

 

 

 

[ 3. EC2 접속 ]

 

EC2 접속

 

 

 

 

[ 4. 보안 그룹 생성 ]

 

왼쪽에서 보안 그룹 메뉴를 선택한 뒤 오른쪽에 있는 보안 그룹 생성 버튼을 클릭합니다.

 

보안 그룹 생성

 

 

 

다음과 같이 보안 그룹 이름, 설명, VPC를 자유롭게 입력 및 선택을 해주고 인바운드와 아웃바운드 설정도 동일하게 해주시면 됩니다.

 

기본 세부 정보

 

인바운드, 아웃바운드 규칙

 

 

 

[ 5. 인스턴스 생성 ]

 

왼쪽에서 인스턴스 메뉴를 선택한 뒤 오른쪽에 있는 인스턴스 시작 버튼을 클릭해 줍니다.

인스턴스 시작

 

 

 

상세 내용들은 다음과 같이 자유롭게 입력해 주시면 되고 아래 없는 내용들은 따로 설정하지 않은 것들입니다.

 

다만 필수로 확인해야 하는 것은 "네트워크 설정"에서 서브넷이 public으로 되어있는지, 보안 그룹은 위에서 생성한 걸로 설정했는지와 "고급 세부 정보"에서 IAM 인스턴스 프로파일에 위에서 생성한 IAM role을 설정했는지입니다.

 

이름 및 태그

 

애플리케이션 및 OS 이미지

 

인스턴스 유형

 

키 페어

 

네트워크 설정

 

스토리지 구성

 

고급 세부 정보

 

 

 

[ 6. 인스턴스 연결 확인 ]

 

인스턴스를 생성하고 상태 값이 "실행 중"으로 변경되면 Session Manager를 이용하여 연결을 해보겠습니다.

 

왼쪽에서 인스턴스 메뉴를 선택한 뒤 생성한 인스턴스를 체크해 주고 오른쪽에 있는 연결 버튼을 클릭해 줍니다.

 

인스턴스 연결

 

 

 

Session Manager 탭을 클릭한 뒤 약간의 시간이 지나면 다음과 같이 연결 버튼이 활성화가 돼야 정상적인 상황입니다.

 

만약 활성화가 되지 않았다면 다른 설정 값에 문제가 있는 것이니 설정을 한번 더 확인해 주셔야 합니다.

 

Session Manager 연결

 

 

 

연결 버튼을 클릭하면 다음과 같이 브라우저를 통해 인스턴스에 접근하는 것을 확인할 수 있습니다.

 

SSM 인스턴스 접속 완료

 

 

 

 

Private Subnet 인스턴스 접근

 

private subnet 안에 있는 인스턴스에 접근할 때는 당연히 public subnet에 접근할 때 필요했던 것들은 기본적으로 가지고 있어야 하며 추가적으로 vpc endpoint 설정이 이루어져야 합니다.

 

위에 설정한 것들 중에서 인스턴스만 private subnet에 들어가도록 재 생성을 하고 vpc endpoint를 위한 설정을 추가적으로 해보겠습니다.

 

 

 

[ 1. 인스턴스 재 생성 ]

 

왼쪽에서 인스턴스 메뉴를 선택한 뒤 오른쪽에 있는 인스턴스 시작 버튼을 클릭해 줍니다.

인스턴스 시작

 

 

 

상세 내용들은 위에서 했던 것처럼 입력해 주시면 되고  "네트워크 설정"에서 서브넷이 private으로 되어있는지만 한번 더 확인하여 생성해 줍니다.

 

이름 및 태그

 

애플리케이션 및 OS 이미지

 

인스턴스 유형

 

키 페어

 

네트워크 설정

 

스토리지 구성

 

고급 세부 정보

 

 

 

[ 2. vpc 접속 ]

 

vpc 접속

 

 

 

[ 3. 보안 그룹 생성 ]

 

왼쪽에서 보안 그룹 메뉴를 선택한 뒤 오른쪽에 있는 보안 그룹 생성 버튼을 클릭합니다.

 

보안 그룹 생성

 

 

 

다음과 같이 이름, 설명, VPC를 입력 및 설정해 주시면 되고 이번에는 ec2 인스턴스에서 443 포트를 접근할 수 있도록 인스턴스가 속한 VPC의 CIDR 대역으로 인바운드 설정을 해줍니다.

 

VPC CIDR

 

기본 세부 정보

 

인바운드, 아웃바운드 규칙

 

 

 

 

[ 4. 엔드포인트 생성 ]

 

왼쪽에서 엔드포인트 메뉴를 선택한 뒤 오른쪽에 있는 엔드포인트 생성 버튼을 클릭합니다.

 

엔드포인트 생성

 

 

 

다음과 같이 자유롭게 설정들을 해주시면 되고 따로 없는 내용들은 설정하지 않은 것들입니다.

 

다만 필수로 확인해야 되는 사항은 "서비스"에서 com.amazonaws.{Region}.ssm을 선택해 주고 "서브넷"에서 private subnet에 해당되는 모든 서브넷을 선택했는지입니다.

 

엔드포인트 설정

 

서비스

 

VPC

 

서브넷

 

보안 그룹

 

 

 

위의 엔드포인트를 제외하고 2개를 더 만들어주셔야 합니다.

 

하나는 서비스가 "ssmmessages"인거 다른 하나는 "ec2messages"인거 입니다.

 

"ssm" 서비스를 만들었던 것과 동일하게 설정하여 모두 만들어주시면 됩니다.

 

ssmmesasges VPC

 

ec2messages VPC

 

 

 

[ 5. 인스턴스 연결 확인 ]

 

생성한 VPC 엔드포인트들이 다음과 같이 모두 "사용 가능" 상태로 바뀐 것을 먼저 확인해 줍니다.

 

VPC 엔드포인트 상태 확인

 

 

 

상태를 확인했으면 public subnet때와 동일하게 Session Manager의 연결 버튼이 활성화가 되는지 확인해 줍니다.

 

다만 연결 버튼 활성화가 바로 되지는 않습니다.

 

제 기준으로는 5분 내로 활성화가 이루어졌습니다.

 

Session Manager 연결

 

 

 

연결을 눌러보면 다음과 같이 접속도 정상적으로 되는 것을 확인할 수 있습니다.

 

Session Manager 접속 확인

 

 

 

 

 

 

 

 

이상으로 Session Manager를 이용하여 EC2 인스턴스에 접근하는 방법에 대해 간단하게 알아보는 시간이었습니다.

 

읽어주셔서 감사합니다.

 

 

 

728x90
반응형

댓글