IT/Public Cloud

AWS EC2에서 원격으로 command 실행 (feat. system manager)

엘티엘 2021. 12. 24. 18:52

아래 내용은 링크의 내용을 기본으로 한다.

EC2에 command를 실행할때(패치 업데이트, 프로그램 설치, 실행, 삭제 등) 매번 ssh로 접속해서 실행하는건 꽤 불편한 작업이다. 접속 정보를 기억하고 있어야 하고, PC 환경이 바뀌면서 방화벽에 막히거나, 인증정보 등이 없을수 있다. 게다가 같은 command를 여러개의 EC2에서 실행해야된다면 더욱 귀찮을수 밖에 없다. 이러한 불편함을 AWS System Manager 의 Run Command 기능이 해결해줄 수 있다.

이를 위해서는 다음을 수행해야 한다.

  1. EC2에 AWS System Manager Agent 설치
  2. IAM Role 생성 (EC2가 System Manager에 정보를 전달하거나 받아올수 있도록)
  3. EC2에 Role 추가
  4. Run Command 실행

1. EC2에 AWS System Manager Agent 설치

AMI 로 Amazon Linux를 사용한다면 기본 설치되어 있기때문에 추가 설치는 필요없다. (아래 설치 AMI 정보 참고) 설치가 되어있지 않은 AMI를 사용한다면 수동 설치를 해줘야 한다. 수동 설치방법은 링크를 확인한다.

2. IAM Role 생성

EC2가 System Manager으로 정보(출력 결과 등)를 전달하고 요청을 받기위해 필요한 IAM Role을 생성해야 한다.

IAM 메뉴 진입 -> Roles -> Create role -> EC2 -> AmazonEC2RoleforSSM 검색 및 생성

3. EC2에 Role 추가

위에서 생성한 Role을 EC2에 추가한다.

EC2 인스턴스 선택 -> Actions -> Security -> Modify IAM role -> 생성한 Role 선택 및 저장

4. Run Command 실행

System Manager 메뉴 진입 -> Run Command -> Run a command -> shell 검색 -> AWS-RunShellScript 선택 -> Commands 입력 -> Run

나는 아래처럼 command를 입력했다.

sudo yum install -y
touch /home/ec2-user/test

실행후에는 아래처럼 command의 Success, Fail 여부 및 출력결과를 확인할수 있다.

 

 

반응형