AWS Systems Manager를 활용한 EC2 관리: gossm 설치 및 사용 가이드

김남우 ·2025년 5월 14일
0

AWS

목록 보기
13/13
post-thumbnail

AWS Systems Manager를 활용한 EC2 관리: gossm 설치 및 사용 가이드

gossm 실행 모습

안녕하세요! 오늘은 AWS EC2 인스턴스를 더 쉽고 안전하게 관리할 수 있는 도구인 gossm에 대해 알아보겠습니다. 이 도구를 사용하면 SSH 포트(22)를 열지 않고도 EC2 인스턴스에 연결하고 파일을 전송할 수 있어 보안성을 높일 수 있습니다.

gossm이란?

gossm은 AWS Systems Manager Session Manager를 기반으로 한 대화형 CLI 도구입니다. EC2 인스턴스에 쉽게 연결하고 SSH, SCP 등의 기능을 제공합니다. 기존 방식과 달리 SSH 포트를 열지 않고도 안전하게 서버에 접속할 수 있어 보안성이 높습니다.

사전 요구 사항

EC2 서버 측 설정

  • EC2 인스턴스에 AWS SSM Agent가 설치되어 있어야 합니다.
  • EC2 인스턴스에 AmazonSSMManagedInstanceCore IAM 정책이 연결되어야 합니다.
  • SSH나 SCP 기능을 사용하려면 AWS SSM Agent 버전이 2.3.672.0 이상이어야 합니다.

사용자 측 설정

  • AWS Access Key와 Secret Key가 필요합니다.
  • 다음 권한이 필요합니다:
    • ec2:DescribeInstances
    • ssm:StartSession
    • ssm:TerminateSession
    • ssm:DescribeSessions
    • ssm:DescribeInstanceInformation
    • ssm:DescribeInstanceProperties
    • ssm:GetConnectionStatus
  • 가능하면 ec2:DescribeRegions 권한도 있으면 좋습니다.

gossm 설치하기

이제 gossm을 설치하는 방법을 단계별로 알아보겠습니다.

1. Homebrew 설치

macOS나 Linux에서는 Homebrew를 통해 쉽게 설치할 수 있습니다. 먼저 Homebrew가 설치되어 있지 않다면 설치합니다.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

설치 스크립트가 실행되면 안내에 따라 진행합니다. 비밀번호를 입력해야 할 수도 있습니다.

환경 변수 설정

설치 후에는 환경 변수를 설정해야 합니다. 운영체제에 따라 다음 명령어를 실행하세요.

Linux (Ubuntu/Debian)의 경우:

echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

macOS(Apple Silicon - M1/M2/M3)의 경우:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"

macOS(Intel)의 경우:

echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/usr/local/bin/brew shellenv)"

Homebrew 설치 확인

다음 명령어를 실행하여 Homebrew가 제대로 설치되었는지 확인합니다:

brew --version

Homebrew 버전이 출력되면 설치가 완료된 것입니다.

2. gossm 설치

이제 Homebrew를 사용하여 gossm을 설치합니다:

# gossm 탭 추가
brew tap gjbae1212/gossm

# gossm 설치
brew install gossm

gossm 설치 확인

다음 명령어를 실행하여 gossm이 제대로 설치되었는지 확인합니다:

gossm --version

버전 정보가 출력되면 설치가 완료된 것입니다.

3. AWS 자격 증명 설정

gossm을 사용하려면 AWS 자격 증명이 필요합니다. AWS 자격 증명 파일을 설정해 보겠습니다:

# AWS 자격 증명 디렉토리 생성
mkdir -p ~/.aws

# 자격 증명 파일 생성
cat > ~/.aws/credentials << EOF
[default]
aws_access_key_id = 당신의_AWS_ACCESS_KEY
aws_secret_access_key = 당신의_AWS_SECRET_KEY
EOF

또는 원하는 텍스트 에디터로 직접 ~/.aws/credentials 파일을 편집해도 됩니다.

gossm 사용하기

이제 gossm을 사용하여 AWS EC2 인스턴스에 연결해 보겠습니다.

기본 명령어 - start

가장 기본적인 명령어는 start입니다. 이 명령어를 실행하면 대화형 인터페이스가 나타나 연결할 수 있는 EC2 인스턴스 목록이 표시됩니다:

gossm start

gossm start 실행 화면

위 명령어를 실행하면:

  1. AWS 리전 선택 화면이 나타납니다. 화살표 키로 이동하여 Enter를 누르면 선택됩니다.
  2. 선택한 리전의 EC2 인스턴스 목록이 표시됩니다.
  3. 연결하려는 인스턴스를 선택하면 Session Manager를 통해 연결됩니다.

명령어 옵션

gossm 명령어에는 다음과 같은 공통 옵션이 있습니다:

옵션설명기본값
-cAWS 자격 증명 파일 경로$HOME/.aws/credentials
-p사용할 AWS 프로필default
-r연결할 AWS 리전(대화형으로 선택)

예를 들어, 특정 프로필과 리전을 지정하려면 다음과 같이 실행합니다:

gossm start -p production -r ap-northeast-2

MFA 인증 사용하기

AWS 계정에 MFA가 설정되어 있다면, 다음과 같이 MFA 인증을 처리할 수 있습니다:

gossm mfa 123456  # MFA 코드 입력

MFA 인증을 사용하려면 다음 환경 변수 설정이 필요합니다:

echo 'export AWS_SHARED_CREDENTIALS_FILE=$HOME/.aws/credentials_mfa' >> ~/.bashrc
# 또는
echo 'export AWS_SHARED_CREDENTIALS_FILE=$HOME/.aws/credentials_mfa' >> ~/.zshrc

# 환경 변수 적용
source ~/.bashrc  # 또는 source ~/.zshrc

문제 해결

"command not found" 오류

gossm 명령어가 인식되지 않는 경우:
1. 터미널을 다시 열어보세요.
2. 또는 다음 명령어로 환경 변수를 다시 로드하세요:

source ~/.bashrc  # bash 사용 시
# 또는
source ~/.zshrc   # zsh 사용 시

자격 증명 오류

AWS 자격 증명 오류가 발생하는 경우:
1. ~/.aws/credentials 파일이 올바르게 설정되었는지 확인하세요.
2. IAM 사용자에게 필요한 권한이 부여되었는지 확인하세요.

연결 실패

EC2 인스턴스에 연결할 수 없는 경우:
1. EC2 인스턴스에 SSM Agent가 설치되어 있는지 확인하세요.
2. 인스턴스에 AmazonSSMManagedInstanceCore IAM 정책이 연결되어 있는지 확인하세요.
3. 인스턴스가 실행 중인지 확인하세요.

결론

이제 gossm을 사용하여 AWS EC2 인스턴스에 안전하게 연결할 수 있게 되었습니다. 이 도구를 사용하면 SSH 포트를 열지 않고도 EC2 인스턴스를 관리할 수 있어 보안성을 높일 수 있습니다. 또한 대화형 인터페이스를 통해 쉽게 인스턴스를 선택하고 연결할 수 있습니다.

참고 자료

profile
✨A.I로 0에서 1을 만드는 법✨ - woo;D

0개의 댓글