Amazon EC2 Systems Manager - 사전조건, 설치
ㅁ Amazon EC2 System Manager?
- Amazon EC2 Systems Manager는 확장 시 시스템 인벤토리 수집, 운영 체제(OS) 패치 적용, AMI(Amazon Machine Image) 생성 자동화, 운영 체제(OS) 및 애플리케이션 구성과 같은 관리 작업의 자동화에 도움이 되는 기능 모음
- Systems Manager는 온프레미스 환경에서 Systems Manager용으로 구성되어 있는 관리형 인스턴스인 Amazon EC2 인스턴스 또는 서버 및 가상 머신(VM)과 함께 작동
작업의 자동화에 도움이 되는 기능 모음 이라 정의되어 있음
ㅁ 기본 지원하는 AMI 버전
- Windows
2016년 11월 이후에 발표된 Windows Server 2003-2012 R2 AMI(Amazon Machine Image)에서 생성된 인스턴스, Windows Server 2016 인스턴스
SSM Agent는 기본적으로 Windows Server 2016 인스턴스와 2016년 11월 이후에 발표된 Windows Server 2003-2012 R2 AMI에서 생성된 인스턴스에 설치
2016년 11월 이전에 발표된 Windows Server 2003-2012 R2 인스턴스에서 EC2Config 서비스는 Systems Manager 요청을 처리하고 요청에 지정된 대로 시스템을 구성
2016년 11월 이후에 발표된 Systems Manager 기능을 사용하려면 EC2Config 서비스를 버전 2.0.533.0 이상으로 업그레이드
EC2Config를 업그레이드하면 SSM Agent와 EC2Config의 최신 버전도 나란히 설치
- Linux
64비트 및 32비트 시스템
Amazon Linux 2014.09, 2014.03 이상
Ubuntu Server 16.0.4 LTS, 14.04 LTS 또는 12.04 LTS
Red Hat Enterprise Linux(RHEL) 6.5 이상
CentOS 6.3 이상
64비트 시스템 전용
Amazon Linux 2015.09, 2015.03 이상
Red Hat Enterprise Linux(RHEL) 7.x 이상
CentOS 7.1 이상
ㅁ SSM Agent 설치
이 SSM 이라는 놈을 사용하려면 OS에 SSM Agent 가 설치되어 있어야 함
- Windows
Windows 는 2016년 11월 이후 발표된 2003 ~ 2012 R2 AMI, 2016 AMI 는 기본적으로 SSM이 설치되어 있으며, 해당 기간전에 만들어진 AMI 에는 EC2Config 서비스를 통해서 SSM 을 운영할수 있음, EC2Config 버전은 2.0.533.0 이상이여야하며 버전이 낮을경우 업그레이드를 하면 됨
- Linux
1. Userdata 를 이용하여서 설치
Amazon Linux, RHEL, CentOS 64비트
#!/bin/bash
cd /tmp
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/linux_amd64/amazon-ssm-agent.rpm -o amazon-ssm-agent.rpm
yum install -y amazon-ssm-agent.rpm
Amazon Linux, RHEL, CentOS 32비트
#!/bin/bash
cd /tmp
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/linux_386/amazon-ssm-agent.rpm -o amazon-ssm-agent.rpm
yum install -y amazon-ssm-agent.rpm
Ubuntu Server 16 64비트
#!/bin/bash
cd /tmp
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/debian_amd64/amazon-ssm-agent.deb -o amazon-ssm-agent.deb
dpkg -i amazon-ssm-agent.deb
systemctl start amazon-ssm-agent
Ubuntu Server 16 32비트
#!/bin/bash
cd /tmp
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/debian_386/amazon-ssm-agent.deb -o amazon-ssm-agent.deb
dpkg -i amazon-ssm-agent.deb
systemctl start amazon-ssm-agent
Ubuntu Server 14 64비트
#!/bin/bash
cd /tmp
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/debian_amd64/amazon-ssm-agent.deb -o amazon-ssm-agent.deb
dpkg -i amazon-ssm-agent.deb
start amazon-ssm-agent
Ubuntu Server 14 32비트
#!/bin/bash
cd /tmp
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/debian_386/amazon-ssm-agent.deb -o amazon-ssm-agent.deb
dpkg -i amazon-ssm-agent.deb
start amazon-ssm-agent
2. 수동 설치
- Amazon Linux
다운로드
64비트
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/linux_amd64/amazon-ssm-agent.rpm -o amazon-ssm-agent.rpm
32비트
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/linux_386/amazon-ssm-agent.rpm -o amazon-ssm-agent.rpm
설치
sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm
- Ubuntu
다운로드
64비트
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/debian_amd64/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb
32비트
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/debian_386/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb
설치
sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb
상태확인
Ubuntu Server 14
sudo status amazon-ssm-agent
Ubuntu Server 16
sudo systemctl status amazon-ssm-agent
실행
Ubuntu Server 14
sudo status amazon-ssm-agent
Ubuntu Server 16
sudo systemctl status amazon-ssm-agent
- Redhat Enterprise Linux
다운로드
64비트
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm
32비트
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/linux_386/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm
설치
sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm
상태확인
RHEL 7.x
sudo systemctl status amazon-ssm-agent
RHEL 6.x
sudo status amazon-ssm-agent
실행
RHEL 7.x
sudo systemctl start amazon-ssm-agent
RHEL 6.x
sudo start amazon-ssm-agent
- CentOS
다운로드
64비트
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm
32비트
curl https://amazon-ssm-region
.s3.amazonaws.com/latest/linux_386/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm
설치
sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm
상태확인
CentOS 7.x
sudo systemctl status amazon-ssm-agent
CentOS 6.x
status amazon-ssm-agent
실행
CentOS 7.x
sudo systemctl start amazon-ssm-agent
CentOS 6.x
sudo start amazon-ssm-agent
ㅁ Proxy 를 사용하는 구간에서의 세팅
- Windows
PowerShell 에서 명령실행
$serviceKey = "HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent"
$proxyVariables = @("http_proxy=hostname:port
", "no_proxy=169.254.169.254")
New-ItemProperty -Path $serviceKey -Name Environment -Value $proxyVariables -PropertyType MultiString
Restart-Service AmazonSSMAgent
SSM Agent 프록시 구성 재설시
Remove-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent -Name Environment
Restart-Service AmazonSSMAgent
- Linux upstart 용
/etc/init/amazon-ssm-agent.conf
env http_proxy=http://hostname
:port
env no_proxy=169.254.169.254
예제
description "Amazon SSM Agent"
author "Amazon.com"
start on (runlevel [345] and started network)
stop on (runlevel [!345] or stopping network)
respawn
env http_proxy=http://i-1234567890abcdef0:443
env no_proxy=169.254.169.254
chdir /usr/bin/
exec ./amazon-ssm-agent
- Linux systemd 용
/etc/systemd/system/amazon-ssm-agent.service
Environment="HTTP_PROXY=http://hostname
:port
"
Environment="no_proxy=169.254.169.254"
예제
Type=simple
Environment="HTTP_PROXY=http://i-1234567890abcdef0:443"
Environment="no_proxy=169.254.169.254"
WorkingDirectory=/opt/amazon/ssm/
ExecStart=/usr/bin/amazon-ssm-agent
KillMode=process
Restart=on-failure
RestartSec=15min
- SSM Agent 제거
Amazon Linux, RHEL 또는 Cent OS에 설치된 SSM 에이전트를 제거하려면
sudo yum erase amazon-ssm-agent –y
Ubuntu에 설치된 SSM 에이전트를 제거하려면
sudo dpkg -r amazon-ssm-agent