AWS Systems Manager Distributor로  패키지 배포하기

AWS Systems Manager Distributor로 패키지 배포하기

2026.01.05

들어가며

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에서:

  1. Systems Manager 콘솔 열기
  2. Distributor로 이동
    • 좌측 메뉴 → "Distributor" 클릭
    • "Create package" 버튼 클릭
    • “Simple”(디폴트) 을 선택
  3. Details 정보 입력
    • Name: 7-Zip-Package
    • Version name: 25.01 (선택사항)
  4. Location 섹션
    • Bucket name format: "Choose a bucket name from a list" 선택
    • S3 bucket name: 드롭다운에서 기존 버킷 선택
    • S3 key prefix: 7-Zip/ (선택사항)
  5. Upload software 섹션
    • "Add software" 버튼 클릭
    • 다운로드한 7z2501-x64.msi 파일 선택
    • Target platform, Architecture 정보입력
  6. Manifest 섹션 (선택사항)
    • 기본값 유지 (Distributor가 자동 생성)
  7. 생성 완료
    • "Create package" 버튼 클릭
    • 패키지 생성 완료!

screenshot 2025-11-30 22.23.29

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 설정과 동일하게 필요정보를 입력후 생성

screenshot 2025-11-30 23.08.46

마치며

AWS Systems Manager Distributor를 사용하면 Windows 소프트웨어 배포를 효율적으로 자동화할 수 있습니다.

요약:

  1. MSI가 있다면 → GUI로 간단하게 완성
  2. EXE만 있다면 → 인스톨,언인스톨 manifest 파일을 직접작성!

참고 자료:

クラスメソッドオペレーションズ株式会社について

クラスメソッドオペレーションズ株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、クラスメソッドオペレーションズ株式会社WEBサイトをご覧ください。

この記事をシェアする

FacebookHatena blogX

関連記事