SSM RunCommand로 EC2에 Apache설치

2022.02.28

소개

안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 SSM RunCommand가 무엇이고 어떻게 사용하는지에 대해 알아보도록 하겠습니다.

SSM RunCommand란?

관리형 노드의 구성을 원격으로 안전하게 관리할 수 있는 서비스 입니다.

평소에 EC2를 구축한 후 추가적으로 환경을 구축하거나 private 서브넷의 환경에 시스템을 설치할 때 번번히 EC2에 접속하는 것보다 편리하게 설치를 할 수 있게 도와주는 서비스 입니다.

따라서 SSM RunCommand를 사용하면 관리형 노드의 구성을 원격으로 안전하게 관리하고 일반적인 관리 태스크를 자동화하고 대규모로 일회성 구성 변경을 수행할 수 있습니다.

준비

  • VPC 1개
  • 인터넷 게이트웨이 1개
  • 라우팅테이블 (public, private 각 1개)
  • 서브넷 (public, private 각 1개)
  • NAT Gateway 1개
  • AmazonEC2RoleforSSM 가 포함된 IAM
  • 보안그룹 HTTP, HTTPS
  • EC2 인스턴스 1개

SSM RunCommand 사용해보기

먼저 EC2에 IAM을 추가 하여야 합니다 작업에서 보안 IAM역활 수정을 클릭합니다.

위에서 만든 IAM역활을 선택하고 저장 버튼을 클릭합니다.

Systemmanger의 왼쪽 메뉴 탭에서 명령 실행을 클릭합니다.

그런 다음 명령 실행 버튼을 클릭합니다.

설치 및 구성할 수 있는 Amazon 소프트웨어인 AWS-UpdateSSMAgent 를 검색 하고 선택합니다.

대상에서 설치할 인스턴를 선택합니다. 인스턴스는 태그, 수동(Node ID, Source ID 등), 리소스 그룹으로 찾거나 검색해서 선택 할 수 있습니다.

출력 옵션은 필요하신 경우 S3나 Cloud Watch를 통해 정보를 남길 수 있습니다. 실행할 모든 작업이 마무리 되면 명령 실행 을 클릭 합니다.

다음 같은 방법으로 Apache를 설치 하도록 하겠습니다. 테스트에서 사용한 EC2 인스턴스의 OS는 Amazone Linux2 였기 때문에 AWS-RunShellScript 를 검색하고 선택합니다.

아래의 명령을 통해 Apache를 설치 할 수 있습니다.

#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html

sudo yum update -y
cat /etc/system-release
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd

같은 방법으로 아래의 명령을 실행하여 Apache가 제대로 설치가 되었는지 확인합니다.

httpd -v

마무리

이번 블로그에서 SSM RunCommand를 사용하여 ec2에 Apache를 설치를 해보았습니다 위에서 이야기 했듯이 SSM RunCommand를 사용하면 기존의 환경 이나 private 서브넷의 환경에서 추가로 설치가 필요하거나 설정이 필요한경우 IAM역활과 명령어만 준비되어있으면 쉽고 빠르게 할 수 있는 장점이 있습니다.이러한 작업이 필요하신 분들에게 조금이나마 도움이 되었으면 좋겠습니다.

참고 자료

AWS Systems Manager Run Command

EC2 인스턴스에서 원격으로 명령 실행

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !