Systems Manager 공용 파라미터로 최신 AMI 참조하기
Systems Manager 공용 파라미터로 최신 AMI 참조하기 (Reference the latest AMIs using Systems Manager public parameters)
AWS Systems Manager는 AWS가 관리하는 공용 AMI에 대한 공용 파라미터(public parameters)를 제공해요. 인스턴스 시작 시 이 공용 파라미터를 쓰면 항상 최신 AMI를 사용할 수 있어요.
출처: 문서
본문
예를 들어 공용 파라미터 /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-arm64는 모든 리전에서 사용할 수 있고, 해당 리전의 arm64 아키텍처용 Amazon Linux 2023 AMI 최신 버전을 항상 가리켜요.
공용 파라미터는 다음 경로에서 사용할 수 있어요.
- Linux –
/aws/service/ami-amazon-linux-latest - Windows –
/aws/service/ami-windows-latest
자세한 내용은 AWS Systems Manager 사용자 가이드의 "Working with public parameters"를 참고하세요.
공용 AMI의 SSM 파라미터 찾기 (Find the SSM parameter for a public AMI)
공용 AMI를 설명(describe)하면 응답에 연결된 SSM 파라미터가 PublicSsmParameterName 필드로 포함돼요. 이 파라미터를 쓰면 항상 해당 AMI의 최신 버전을 가리키는 SSM 파라미터를 식별할 수 있어요.
콘솔: Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 열고, 탐색 창에서 AMIs를 선택하고, 공용 AMI를 선택한 뒤 Details 탭에서 Public SSM parameter name을 찾으세요.
AWS CLI: describe-images 명령을 사용해요. 응답에 SSM 파라미터가 연결된 공용 AMI의 PublicSsmParameterName 필드가 포함돼요.
aws ec2 describe-images \
--image-ids ami-0abcdef1234567890
다음은 PublicSsmParameterName 필드를 보여주는 예시 출력이에요(간결하게 일부 필드는 생략).
{
"Images": [
{
"ImageId": "ami-0abcdef1234567890",
"Name": "al2023-ami-2023.7.20260601.0-kernel-6.1-x86_64",
...
"PublicSsmParameterName": "aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64"
}
]
}
PowerShell: Get-EC2Image cmdlet을 사용해요. 연결된 SSM 파라미터가 있는 공용 AMI에는 PublicSsmParameterName 필드가 포함돼요.
Get-EC2Image -ImageId ami-0abcdef1234567890
다음은 예시 출력이에요.
ImageId : ami-0abcdef1234567890
Name : al2023-ami-2023.7.20260601.0-kernel-6.1-x86_64
...
PublicSsmParameterName : aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64
Amazon Linux AMI 나열하기 (List the Amazon Linux AMIs)
AWS CLI: get-parameters-by-path 명령을 사용해요. --path 파라미터 값은 Linux AMI에 특화되어 있어요.
aws ssm get-parameters-by-path \
--path /aws/service/ami-amazon-linux-latest \
--query "Parameters[].Name"
PowerShell: Get-SSMParametersByPath cmdlet을 사용해요.
Get-SSMParametersByPath `
-Path "/aws/service/ami-amazon-linux-latest" | `
Sort-Object Name | Format-Table Name
Windows AMI 나열하기 (List the Windows AMIs)
AWS CLI: get-parameters-by-path 명령을 사용해요. --path 파라미터 값은 Windows AMI에 특화되어 있어요.
aws ssm get-parameters-by-path \
--path /aws/service/ami-windows-latest \
--query "Parameters[].Name"
PowerShell: Get-SSMParametersByPath cmdlet을 사용해요.
Get-SSMParametersByPath `
-Path "/aws/service/ami-windows-latest" | `
Sort-Object Name | Format-Table Name
공용 파라미터로 인스턴스 시작하기 (Launch an instance using a public parameter)
인스턴스 시작 시 공용 파라미터를 지정하려면 resolve:ssm:public-parameter 형식을 사용해요. 여기서 resolve:ssm은 표준 접두사이고 public-parameter는 공용 파라미터의 경로와 이름이에요.
AWS CLI: run-instances 명령의 --image-id 옵션을 사용해요. 다음 예시는 최신 Amazon Linux 2023 AMI로 인스턴스를 시작하도록 이미지 ID에 Systems Manager 공용 파라미터를 지정해요.
--image-id resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64
PowerShell: New-EC2Instance cmdlet의 -ImageId 파라미터를 사용해요. 다음 예시는 최신 Windows Server 2022 AMI로 인스턴스를 시작하도록 지정해요.
-ImageId "resolve:ssm:/aws/service/ami-windows-latest/Windows_Server-2022-English-Full-Base"
Systems Manager 파라미터를 쓰는 더 많은 예시는 "Query for the latest Amazon Linux AMI IDs Using AWS Systems Manager Parameter Store"와 "Query for the Latest Windows AMI Using AWS Systems Manager Parameter Store"를 참고하세요.