AWS Systems Manager Distributor로 패키지 배포하기
들어가며
AWS 환경에서 여러 대의 EC2 서버에 동일한 소프트웨어를 설치해야 하는 경우가 자주 있습니다. 수십~수백 대의 서버에 일일이 접속해서 설치하는 것은 매우 비효율적입니다.
AWS Systems Manager Distributor는 이런 문제를 해결하기 위한 훌륭한 도구입니다.
이 글에서는 예시로, Distributor를 사용해 Windows 서버에 EXE 파일을 자동으로 배포하고 설치하는 방법을 단계별로 설명합니다.
AWS Systems Manager Distributor란?
핵심 개념
Distributor는 AWS Systems Manager의 기능 중 하나로, 소프트웨어 패키지를 생성하고 여러 인스턴스에 배포할 수 있게 해주는 서비스입니다.
주요 특징:
- ✅ 자동화된 배포: 수십~수백 대 서버에 동시 설치
- ✅ 버전 관리: 패키지 버전별 관리 가능
- ✅ 멀티 플랫폼: Windows, Linux 모두 지원
- ✅ Run Command 통합: 다른 자동화 도구와 연계 가능
왜 Distributor를 써야 하나?
기존 방식의 문제점:
RDP 접속 → 파일 다운로드 → 수동 설치 → 확인 → 다음 서버...
(10대 서버면 10번 반복...)
Distributor 사용 시:
# 한 번의 명령으로 모든 서버에 자동 설치
aws ssm send-command --targets "tag:Environment=Test" ...
방법 1: MSI 파일로 간단하게 만들기 (GUI)
예제: 7-Zip 배포
테스트로 7-zip을 배포하는것으로 가정하겠습니다.
1단계: MSI 파일 다운로드
공식 사이트에서 MSI 파일을 다운로드합니다:
다운로드 링크: https://www.7-zip.org/download.html
- 파일:
7z2501-x64.msi(64-bit Windows용)
2단계: S3 버킷준비
# S3 버킷 생성 (최초 1회)
aws s3 mb s3://{bucket-name}
3단계: Distributor 심플 패키지 생성 (GUI)
AWS Console에서:
- Systems Manager 콘솔 열기
- Distributor로 이동
- 좌측 메뉴 → "Distributor" 클릭
- "Create package" 버튼 클릭
- “Simple”(디폴트) 을 선택
- Details 정보 입력
- Name:
7-Zip-Package - Version name:
25.01(선택사항)
- Name:
- Location 섹션
- Bucket name format: "Choose a bucket name from a list" 선택
- S3 bucket name: 드롭다운에서 기존 버킷 선택
- S3 key prefix:
7-Zip/(선택사항)
- Upload software 섹션
- "Add software" 버튼 클릭
- 다운로드한
7z2501-x64.msi파일 선택 - Target platform, Architecture 정보입력
- Manifest 섹션 (선택사항)
- 기본값 유지 (Distributor가 자동 생성)
- 생성 완료
- "Create package" 버튼 클릭
- 패키지 생성 완료!

4단계: 배포
# 단일 인스턴스에 설치
aws ssm send-command \\
--document-name "AWS-ConfigureAWSPackage" \\
--instance-ids "i-1234567890abcdef0" \\
--parameters '{"action":["Install"],"name":["{패키지이름}"]}'
# 태그로 여러 인스턴스에 설치
aws ssm send-command \\
--document-name "AWS-ConfigureAWSPackage" \\
--targets "Key=tag:Environment,Values=Test" \\
--parameters '{"action":["Install"],"name":["{패키지이름}"]}'
혹은 GUI 에서 "한번설치","일정에 따라 설치" 를 선택해서 RunCommand 로 실행
방법 2: EXE 파일로 고급 기능 구현하기 (스크립트)
예제: 7-zip exe 배포
EXE 파일만 제공한다고 가정으로 구현실시
1단계: 패키지 구조 준비
7-zip/
├── manifest.json # 패키지 메타데이터
├── install.ps1 # 설치 스크립트
└── uninstall.ps1 # 제거 스크립트
2단계: manifest.json 작성
{
"schemaVersion": "1.0",
"version": "1.0.0",
"publisher": "Test7zip",
"packages": {
"windows": {
"_any": {
"x86_64": {
"file": "package.zip"
}
}
}
},
"files": {
"package.zip": {
"checksums": {
"sha256": "{hash입력}"
}
}
}
}
# 7-Zip 설치 스크립트
$InstallerPath = "7z2501-x64.exe"
Write-Output "7-Zip 설치를 시작합니다..."
# Silent 설치 실행
Start-Process -FilePath $InstallerPath -ArgumentList "/S" -Wait -NoNewWindow
Write-Output "7-Zip 설치가 완료되었습니다."
4단계: uninstall.ps1 작성
# 7-Zip 제거 스크립트
$UninstallerPath = "C:\Program Files\7-Zip\Uninstall.exe"
Write-Output "7-Zip 제거를 시작합니다..."
if (Test-Path $UninstallerPath) {
Start-Process -FilePath $UninstallerPath -ArgumentList "/S" -Wait -NoNewWindow
Write-Output "7-Zip 제거가 완료되었습니다."
} else {
Write-Output "7-Zip이 설치되어 있지 않습니다."
}
5단계: ZIP 생성 및 Checksum 업데이트**(macOS기준)**
#1. ZIP 파일 생성
*# 작업 디렉토리로 이동*
cd ~/7-Zip-Package
*# install.ps1, uninstall.ps1, 실행파일을 ZIP으로 압축# (manifest.json은 ZIP에 포함하지 않음!)*
zip -r package.zip install.ps1 uninstall.ps1 7z2408-x64.exe
#2. ZIP 파일의 SHA256 해시 확인
shasum -a 256 package.zip
#출력 예시:
da1221ef34e5872f111e6f2ac49a93f5b3a9699e6e5fe62258aea13d3eb8139d package.zip
#3. manifest.json 수정
# 위에서 나온 해시값을 `manifest.json` 파일에 붙여넣기:
# 예시:
`{
"schemaVersion": "2.0",
"version": "24.08",
"publisher": "MyCompany",
"packages": {
"windows": {
"_any": {
"x86_64": {
"file": "package.zip"
}
}
}
},
"files": {
"package.zip": {
"checksums": {
"sha256": "da1221ef34e5872f111e6f2ac49a93f5b3a9699e6e5fe62258aea13d3eb8139d"
}
}
}
}`
6단계: S3 업로드
# S3 업로드
aws s3 cp 7-zip.zip s3://{my-distributor-packages}/
# 혹은 GUI 로 업로드
7단계: Distributor 패키지 생성
Console 또는 CLI로 생성
- “Advanced” 를 설정후 msi 설정과 동일하게 필요정보를 입력후 생성

마치며
AWS Systems Manager Distributor를 사용하면 Windows 소프트웨어 배포를 효율적으로 자동화할 수 있습니다.
요약:
- MSI가 있다면 → GUI로 간단하게 완성
- EXE만 있다면 → 인스톨,언인스톨 manifest 파일을 직접작성!
참고 자료:
クラスメソッドオペレーションズ株式会社について
クラスメソッドオペレーションズ株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、クラスメソッドオペレーションズ株式会社WEBサイトをご覧ください。






