전공영역 공부 기록

AWS AMI찾는 방법

악분 2023. 11. 5. 19:15
반응형

AWS AMI 검색하려면 다양한 방법이 존재합니다.

 

1. AWS 콘솔

AWS 콘솔에서는 EC2 대시보드에서 AMI 찾을 있습니다. [Instance -> AMIs]메뉴로 이동하면 AMI 나옵니다.

 

저는 기본 필터 규칙을  amazon 관리하는 AMI 설정했습니다. public Image”를 선택하고 Owner alias”를 amazon으로 설정했습니다.

 

 

기본 필터링 규칙을 추가한 후 필터 규칙을 계속 추가하면 됩니다. 아래 예제는 Amazon Linux를 찾았습니다.

 

 

2. AWS CLI

AWS CLI로도 AMI를 찾을 수 있습니다. describe-images, ssm get-parameters-by-path 등으로 찾습니다.

 

2.1 describe-images

describe-images는 AWS 콘솔처럼 필터를 추가하면서 AMI를 검색합니다. 아래 예제는 amazon이 관리하고 arm64플랫폼인 AMI를 검색합니다.

aws ec2 describe-images --owners amazon --filters "Name=architecture,Values=arm64"

 

모든 필터 규칙은 describe-images문서에 설명되어 있습니다.

 

2.2 get-parameters-by-path

get-parameters-by-path는 System Manger에 있는 값을 조회하여 AMI를 찾습니다. AWS는 System Manager에 특정 AMI정보를 업데이트합니다. 예를 들어 latest AMI가 있습니다.

aws ssm get-parameters-by-path \
    --path /aws/service/ami-amazon-linux-latest \
    --query 'Parameters[].Name'

 

3. 테라폼 연동

테라폼 data block 을 사용하면 AWS AMI를 찾을 수 있습니다. AWS 콘솔, AWS CLI에서 설정한 필터 규칙을 테라폼 코드에 설정하면 됩니다. 테라폼 정규식과 AWS 정규식 검색 방법이 달라 의도한대로 동작안할 수 있습니다 ㅜ.ㅜ

 

data "aws_ami" "last_ami" {
  most_recent = true

  filter {
    name   = "owner-alias"
    values = ["amazon"]
  }

  filter {
    name   = "name"
    values = ["amzn2-ami-hvm-*-x86_64-ebs"]
  }

  owners = ["amazon"]
}

 

참고자료

반응형