Amazon Linux - Amazon Elastic Compute Cloud

Amazon Linux

Amazon Linux는 Amazon Web Services(AWS)에서 제공합니다. Amazon EC2에서 실행 중인 애플리케이션에 대한 안정된 고성능 보안 실행 환경을 제공하도록 설계되었습니다. 또한 시작 구성 도구와 널리 사용되는 여러 AWS 라이브러리 및 도구 등 AWS와 쉽게 통합하는 데 사용할 수 있도록 하는 패키지가 포함되어 있습니다. AWS에서는 Amazon Linux를 실행하는 모든 인스턴스에 대해 지속적인 보안 및 유지 관리 업데이트를 제공합니다. CentOS 및 다른 유사 배포에서 개발한 많은 애플리케이션이 Amazon Linux에서 실행됩니다.

Amazon Linux 가용성

AWS에서는 AL2023, Amazon Linux 2 및 Amazon Linux AMI를 제공합니다. 다른 Linux 배포에서 Amazon Linux로 마이그레이션하는 경우 AL2023으로 마이그레이션하는 것이 좋습니다.

참고

Amazon Linux AMI는 2023년 12월 31일에 지원이 종료되었으며, 2024년 1월 1일부터 보안 업데이트나 버그 수정을 받지 않습니다. Amazon Linux AMI 지원 종료 및 유지 보수 지원에 대한 자세한 내용은 블로그 게시물 Update on Amazon Linux AMI end-of-life를 참조하세요. 애플리케이션을 AL2023으로 업그레이드하는 것이 좋습니다. 이 버전은 2028년까지 장기 지원을 포함합니다.

Amazon Linux에 대한 자세한 내용은 AL2023, Amazon Linux 2, Amazon Linux AMI를 참조하세요.

Amazon Linux 컨테이너 이미지는 Amazon Elastic Container Registry User Guide의 Amazon Linux container image를 참조하세요.

Amazon Linux 인스턴스에 연결

Amazon Linux에서는 기본적으로 원격 루트 SSH(secure shell)를 허용하지 않습니다. 또한 Brute-Force 암호 공격 방지를 위해 암호 인증을 사용할 수 없습니다. Amazon Linux 인스턴스에 대해 SSH 로그인을 사용하려면 시작 시 인스턴스에 키 페어를 제공해야 합니다. 또한 SSH 액세스를 허용하도록 인스턴스를 시작하는 데 사용되는 보안 그룹을 설정해야 합니다. 기본적으로 SSH를 사용하여 원격으로 로그인할 수 있는 계정은 ec2-user뿐입니다. 이 계정에는 sudo 권한도 있습니다. 원격 루트 로그인을 사용하는 경우 키 페어와 부 사용자에 의존하는 방법보다는 덜 안전하다는 점에 유의하세요.

Amazon Linux 이미지 식별

각 이미지에는 식별을 위한 고유한 /etc/image-id 파일이 포함되어 있습니다. 이 파일에는 이미지에 대한 다음 정보가 포함되어 있습니다.

  • image_name, image_version, image_arch - Amazon에서 이미지 생성에 사용한 빌드 레시피의 값입니다.

  • image_stamp - 이미지 생성 중에 생성된 고유한 임의 16진수 값입니다.

  • image_date - YYYYMMDDhhmmss 형식으로 표시되는 이미지 생성 시간(UTC)입니다.

  • recipe_name, recipe_id - Amazon에서 이미지 생성에 사용한 빌드 레시피의 이름과 ID입니다.

Amazon Linux에는 설치된 현재 릴리스를 지정하는 /etc/system-release 파일이 포함되어 있습니다. 이 파일은 yum을 사용하여 업데이트되며 system-release RPM(RPM Package Manager)의 일부입니다.

Amazon Linux에는 /etc/system-release의 머신 판독 가능한 버전도 포함되어 있으며 CPE(Common Platform Enumeration) 사양을 따릅니다. /etc/system-release-cpe 섹션을 참조하세요.

Amazon Linux 2

다음은 현재 버전의 Amazon Linux 2에 대한 /etc/image-id의 예제입니다.

[ec2-user ~]$ cat /etc/image-id image_name="amzn2-ami-hvm" image_version="2" image_arch="x86_64" image_file="amzn2-ami-hvm-2.0.20180810-x86_64.xfs.gpt" image_stamp="8008-2abd" image_date="20180811020321" recipe_name="amzn2 ami" recipe_id="c652686a-2415-9819-65fb-4dee-9792-289d-1e2846bd"

다음은 현재 버전의 Amazon Linux 2에 대한 /etc/system-release의 예제입니다.

[ec2-user ~]$ cat /etc/system-release Amazon Linux 2

다음은 Amazon Linux 2에 대한 /etc/os-release의 예제입니다.

[ec2-user ~]$ cat /etc/os-release NAME="Amazon Linux" VERSION="2" ID="amzn" ID_LIKE="centos rhel fedora" VERSION_ID="2" PRETTY_NAME="Amazon Linux 2" ANSI_COLOR="0;33" CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" HOME_URL="https://amazonlinux.com/"

Amazon Linux AMI

다음은 현재 Amazon Linux AMI에 대한 /etc/image-id의 예시입니다.

[ec2-user ~]$ cat /etc/image-id image_name="amzn-ami-hvm" image_version="2018.03" image_arch="x86_64" image_file="amzn-ami-hvm-2018.03.0.20180811-x86_64.ext4.gpt" image_stamp="cc81-f2f3" image_date="20180811012746" recipe_name="amzn ami" recipe_id="5b283820-dc60-a7ea-d436-39fa-439f-02ea-5c802dbd"

다음은 현재 Amazon Linux AMI에 대한 /etc/system-release의 예시입니다.

[ec2-user ~]$ cat /etc/system-release Amazon Linux AMI release 2018.03

Amazon Linux 2 AMI 부팅 모드

Amazon Linux 2 AMI에는 부팅 모드 파라미터 세트가 없습니다. Amazon Linux 2 AMI에서 시작된 인스턴스는 인스턴스 유형의 기본 부팅 모드 값을 따릅니다. 자세한 내용은 부팅 모드 단원을 참조하십시오.

AWS 명령줄 도구

AWS Command Line Interface(AWS CLI)는 명령줄 쉘에서 명령을 사용하여 AWS 서비스와 상호 작용하기 위한 일관된 인터페이스를 제공하는 오픈 소스 도구입니다. 자세한 내용은 AWS Command Line Interface 사용 설명서AWS Command Line Interface란 무엇입니까?를 참조하세요.

Amazon Linux 2 및 Amazon Linux AMI에는 AWS CLI 버전 1이 사전 설치되어 있습니다. Amazon Linux의 최신 릴리스인 AL2023에는 AWS CLI 버전 2가 사전 설치되어 있습니다. AL2023에서 AWS CLI를 사용하는 방법에 대한 자세한 내용은 AL2023 사용 설명서에서 AL2023 시작하기를 참조하세요.

패키지 리포지토리

이 정보는 Amazon Linux 2 및 Amazon Linux AMI에 적용됩니다. 자세한 내용은 AL2023 사용 설명서에서 운영 체제 및 패키지 업데이트 관리를 참조하세요.

Amazon Linux 2와 Amazon Linux AMI는 각 Amazon EC2 AWS 리전에 호스팅된 온라인 패키지 리포지토리와 함께 사용하도록 설계되었습니다. 리포지토리는 yum 업데이트 도구를 사용하여 액세스되며 모든 리전에서 사용할 수 있습니다. 각 리전에서 리포지토리를 호스팅하면 데이터 전송 요금 없이 데이터를 신속히 배포할 수 있습니다.

참고

Amazon Linux AMI는 2023년 12월 31일에 지원이 종료되었으며, 2024년 1월 1일부터 보안 업데이트나 버그 수정을 받지 않습니다. Amazon Linux AMI 지원 종료 및 유지 보수 지원에 대한 자세한 내용은 블로그 게시물 Update on Amazon Linux AMI end-of-life를 참조하세요. 애플리케이션을 AL2023으로 업그레이드하는 것이 좋습니다. 이 버전은 2028년까지 장기 지원을 포함합니다.

인스턴스에 대한 데이터 또는 사용자 지정을 유지할 필요가 없는 경우 현재 Amazon Linux 2 AMI를 사용하여 새 인스턴스를 다시 시작할 수 있습니다. 인스턴스에 대한 데이터나 사용자 지정을 유지해야 하는 경우에는 Amazon Linux 패키지 리포지토리를 통해 이러한 인스턴스를 유지할 수 있습니다. 이러한 리포지토리에는 업데이트된 모든 패키지가 포함되어 있습니다. 실행 중인 인스턴스에 이러한 업데이트를 적용하도록 선택할 수 있습니다. 이전 AMI 버전 및 업데이트 패키지는 새 버전이 릴리스되더라도 계속 사용할 수 있습니다.

참고

패키지를 설치하려면 다음 명령을 사용합니다.

[ec2-user ~]$ sudo yum install package

필요한 애플리케이션이 Amazon Linux에 없는 경우 Amazon Linux 인스턴스에 해당 애플리케이션을 설치하면 됩니다. Amazon Linux는 RPM 및 yum을 패키지 관리에 사용하며 새 애플리케이션을 설치하는 가장 간단한 방법일 수 있습니다. 중앙 Amazon Linux 리포지토리에는 사용할 수 있는 애플리케이션이 많으므로 이곳에서 애플리케이션을 사용할 수 있는지부터 확인해야 합니다. 이러한 애플리케이션은 Amazon Linux 인스턴스에 쉽게 추가할 수 있습니다.

애플리케이션을 실행 중인 Amazon Linux 인스턴스에 업로드하려면 scp 또는 sftp를 사용하고 인스턴스에 로그인하여 애플리케이션을 구성합니다. 또한 기본 제공된 cloud-init 패키지의 PACKAGE_SETUP 작업을 사용하여 인스턴스 시작 중에 애플리케이션을 업로드할 수도 있습니다. 자세한 내용은 cloud-init 섹션을 참조하세요.

보안 업데이트

보안 업데이트는 패키지 리포지토리와 업데이트된 AMI를 사용하여 제공됩니다. 보안 알림은 Amazon Linux 보안 센터에 게시됩니다. AWS 보안 정책에 대한 자세한 내용을 찾아보거나 보안 문제를 보고하려면 AWS 클라우드 보안을 참조하세요.

Amazon Linux와 Amazon Linux 2는 시작 시 심각하거나 중요한 보안 업데이트를 다운로드 및 설치하도록 구성되어 있습니다. 커널 업데이트는 이 구성에 포함되지 않습니다.

AL2023에서는 이 구성이 Amazon Linux AMI 및 Amazon Linux 2와 비교하여 변경되었습니다. AL2023 보안 업데이트에 대한 자세한 내용은 AL2023 사용 설명서에서 보안 업데이트 및 기능을 참조하세요.

시작 후에는 사용 사례를 위해 필수 업데이트를 설치하는 것이 좋습니다. 예를 들면 시작 시 보안 업데이트뿐 아니라 모든 업데이트를 적용하거나, 각 업데이트를 평가하고 시스템에 해당하는 업데이트만 적용할 수도 있습니다. 다음과 같은 cloud-init 설정 repo_upgrade를 사용하여 이를 제어합니다. 다음 cloud-init 구성 코드 조각은 인스턴스 초기화에 전달하는 사용자 데이터 텍스트의 설정을 변경하는 방법을 보여 줍니다.

#cloud-config repo_upgrade: security

repo_upgrade에 가능한 값은 다음과 같습니다.

critical

대기 중인 심각한 보안 업데이트를 적용합니다.

important

대기 중인 심각하거나 중요한 보안 업데이트를 적용합니다.

medium

대기 중인 심각하거나 중요하거나 심각도가 보통인 보안 업데이트를 적용합니다.

low

심각도가 낮은 보안 업데이트를 포함하여 대기 중인 보안 업데이트를 모두 적용합니다.

security

Amazon에서 보안 업데이트로 표시하는 대기 중인 중요하거나 심각한 업데이트를 적용합니다.

bugfix

Amazon에서 버그 수정 사항으로 표시하는 업데이트를 적용합니다. 버그 수정 사항은 대규모 업데이트 세트이며 보안 업데이트와 사소한 기타 버그에 대한 수정 사항을 포함합니다.

all

분류와 관계 없이 해당되는 모든 업데이트를 적용합니다.

none

시작 시 인스턴스에 어떠한 업데이트도 적용하지 마세요.

repo_upgrade에 대한 기본 설정은 security입니다. 즉, 사용자 데이터에 다른 값을 지정하지 않은 경우 기본적으로 Amazon Linux는 해당 시점에 설치된 모든 패키지에 대해 시작 시 보안 업그레이드를 수행합니다. 또한 Amazon Linux는 로그인 시 /etc/motd 파일을 사용하여 사용 가능한 업데이트 수를 나열하는 방법으로 설치된 패키지에 대한 모든 업데이트를 사용자에게 알립니다. 이러한 업데이트를 설치하려면 인스턴스에서 sudo yum upgrade를 실행해야 합니다.

리포지토리 구성

Amazon Linux 및 Amazon Linux 2의 경우 AMI는 AMI를 생성할 때 사용할 수 있는 패키지의 스냅샷입니다. 단, 보안 업데이트는 예외입니다. 원본 AMI에는 없지만 런타임에 설치된 모든 패키지는 최신 버전을 사용할 수 있습니다. Amazon Linux 2에서 사용할 수 있는 최신 패키지를 다운로드하려면 yum update -y을 실행하세요.

AL2023에서는 리포지토리 구성이 Amazon Linux AMI 및 Amazon Linux 2와 비교하여 변경되었습니다. AL2023 리포지토리에 대한 자세한 내용은 운영 체제 및 패키지 업데이트 관리를 참조하세요.

AL2023까지의 버전에서는 Amazon Linux의 한 마이너 버전에서 다음 버전으로의 연속 업데이트 흐름, 즉 롤링 릴리스를 제공하도록 구성되었습니다. AMI를 사용 가능한 최신 AMI로 업데이트하는 것을 모범 사례로 권장합니다. 이전 버전(예: 2017.09)을 사용하는 Amazon Linux AMI를 실행하지 마세요.

Amazon Linux에서 Amazon Linux 2로 또는 Amazon Linux 2에서 AL2023으로와 같은 주요 Amazon Linux 버전 사이에서 인플레이스 업그레이드는 지원되지 않습니다. 자세한 내용은 Amazon Linux 가용성을 참조하세요.

Amazon Linux에서 lock-on-launch 사용

lock-on-launch 기능을 사용하도록 설정하여 롤링 릴리스를 비활성화 설정할 수 있습니다. lock-on-launch 기능은 지정된 AMI 릴리스에서만 업데이트를 받도록 인스턴스를 잠급니다. 예를 들어 2017.09 AMI를 시작한 후, 2018.03 AMI로 마이그레이션할 준비될 때까지 2018.03 AMI 이전에 릴리스된 업데이트만 받도록 할 수 있습니다.

중요

lock-on-launch 기능을 활성화하고 최신 버전이 아닌 리포지토리의 버전을 선택하면 추가 업데이트가 수신되지 않습니다. 롤링 릴리스 수신하려면 최신 AMI를 사용하거나 리포지토리가 최신 버전을 가리키도록 AMI를 계속 업데이트합니다.

새 인스턴스에서 lock-on-launch를 사용하려면 cloud-init에 전달된 다음 사용자 데이터로 인스턴스를 시작하세요.

#cloud-config repo_releasever: 2017.09
기존 인스턴스를 현재 AMI 버전으로 잠그려면
  1. 편집 /etc/yum.conf.

  2. releasever=latest를 주석으로 처리합니다.

  3. 캐시를 지우려면 yum clean all을 실행합니다.

Extras Library(Amazon Linux 2)

Amazon Linux 2를 사용하면 Extras Library를 사용하여 인스턴스에 애플리케이션 및 소프트웨어 업데이트를 설치할 수 있습니다. 이러한 소프트웨어 업데이트를 주제라고 합니다. 특정 버전의 주제를 설치하거나 버전 정보를 생략하여 최신 버전을 사용할 수 있습니다.

사용 가능한 주제를 나열하려면 다음 명령을 사용하세요.

[ec2-user ~]$ amazon-linux-extras list

주제를 활성화하고 패키지의 최신 버전을 설치하려면 다음 명령을 사용하세요.

[ec2-user ~]$ sudo amazon-linux-extras install topic

안정화를 위해 주제를 활성화하고 해당 패키지의 특정 버전을 설치하려면 다음 명령을 사용하세요.

[ec2-user ~]$ sudo amazon-linux-extras install topic=version topic=version

주제에서 설치된 패키지를 제거하려면 다음 명령을 사용합니다.

[ec2-user ~]$ sudo yum remove $(yum list installed | grep amzn2extra-topic | awk '{ print $1 }')
참고

이 명령은 추가 패키지의 종속성으로 설치된 패키지를 제거하지 않습니다.

주제를 비활성화하고 yum 패키지 관리자가 패키지에 액세스할 수 없도록 하려면 다음 명령을 사용합니다.

[ec2-user ~]$ sudo amazon-linux-extras disable topic
중요

이 명령은 고급 사용자를 위한 것입니다. 이 명령을 잘못 사용하면 패키지 호환성 충돌이 발생할 수 있습니다.

Amazon Linux 2 지원 커널

지원되는 커널 버전

현재 Amazon Linux 2(AL2) AMI는 커널 버전 4.14 및 5.10에서 사용할 수 있으며, 버전 5.10이 기본값입니다. 또한 추가 리포지토리를 사용하여 AL2의 커널을 버전 5.15로 업그레이드할 수도 있습니다. 5.15로 업그레이드하려면 새 커널을 적용하기 위해 재부팅해야 합니다. 사용 사례에 대해 업그레이드가 필요한지 여부를 결정하기 전에 AL2에서 커널 버전 5.15의 새로운 기능과 제한 사항을 검토하세요. 라이브 패치 지원이 필요한 경우 커널 5.10으로 AL2 AMI를 사용하는 것이 좋습니다.

AL2023 AMI는 커널 버전 6.1에서 사용할 수 있습니다. 자세한 내용은 AL2023 사용 설명서에서 Amazon Linux 2에서 AL2023 커널로 변경을 참조하세요.

커널 5.15의 새로운 기능

  • 커널 기반 가상 머신(KVM)은 이제 새로운 x86 TDP MMU를 기본값으로 하고 AMD SVM 5레벨 페이징을 추가하여 기존 KVM x86 MMU 코드에 비해 더 큰 병렬 처리 및 확장성을 제공합니다.

  • OverlayFS 성능이 향상되었으며 이제는 immutable, append, sync, noatime 속성 복사도 처리합니다.

  • 대형 병렬 잘림 시 병목 현상을 제거하는 새로운 orphan_file 기능 추가, 파일 삭제, DISCARD 동작이 느리고 JBD2 커밋 KThread를 차단하지 않는 디바이스에 도움을 주도록 DISCARD 작업을 JBD2 커밋 스레드 밖으로 이동하기 등의 EXT4에 대한 새로운 최적화 및 개선 사항이 추가되었습니다.

  • CPU당 백그라운드 스레드에서의 배치 inode 활성화로 디렉터리 트리 삭제 시간 개선, 많은 메타데이터 업데이트를 처리하는 데 도움이 되는 파이프라이닝 사용 설정 등의 XFS에 대한 새로운 최적화 및 개선 사항이 추가되었습니다.

  • DAMON은 사전 예방적 메모리 회수 및 성능 분석을 위한 데이터 액세스 모니터링 프레임워크로서 더 잘 지원됩니다.

5.15 커널 제한 사항

  • LustreFSx는 지원되지 않습니다(나중에 지원이 추가될 예정임).

  • 커널 라이브 패치는 지원되지 않습니다.

커널 5.15 설치 지침

다음 명령을 사용하여 커널 4.14를 사용하는 Amazon Linux 2 AMI와 커널 5.10을 사용하는 AL2 AMI 모두를 커널 5.15로 업그레이드할 수 있습니다.

  1. amazon-linux-extras에서 kernel-5.15 주제를 사용 설정하고 호스트에 커널 5.15를 설치합니다.

    sudo amazon-linux-extras install kernel-5.15
  2. 설치된 커널 5.15로 호스트를 재부팅합니다.

    sudo reboot
  3. 시스템 커널 버전을 확인합니다.

    uname -r

지원 기간

Amazon의 Linux 2에서 사용 가능한 모든 Linux 커널(4.14, 5.10, 5.15)은 Amazon Linux 2 AMI의 표준 지원이 종료될 때까지 지원됩니다.

라이브 패치 지원

Amazon Linux 2 kernel version Kernel live patching supported
4.14 Yes
5.10 Yes
5.15 No

참조용으로 소스 패키지에 액세스

Amazon Linux에 제공된 도구를 사용하여 참조 목적으로 인스턴스에 설치한 패키지의 원본을 볼 수 있습니다. Amazon Linux에 포함된 모든 패키지와 온라인 패키지 리포지토리에 대해 원본 패키지를 사용할 수 있습니다. 설치할 원본 패키지의 패키지 이름을 간단히 확인하고 yumdownloader --source 명령을 사용하여 실행 중인 인스턴스 내에서 원본을 확인합니다. 예:

[ec2-user ~]$ yumdownloader --source bash

원본 RPM의 압축을 풀고 스탠다드 RPM 도구를 사용하여 참조용으로 원본 트리를 볼 수 있습니다. 디버깅을 완료한 후에는 패키지를 사용할 수 있습니다.

cloud-init

cloud-init 패키지는 Canonical에서 구축한 오픈 소스 애플리케이션이며 Amazon EC2와 같은 클라우드 컴퓨팅 환경에서 Linux 이미지 부트스트랩을 수행하는 데 사용됩니다. Amazon Linux에는 cloud-init의 사용자 지정 버전이 포함됩니다. 사용자 지정된 버전의 cloud-init를 사용하면 부팅 시 인스턴스에서 수행할 작업을 지정할 수 있습니다. 인스턴스를 시작할 때 사용자 데이터 필드를 통해 원하는 작업을 cloud-init로 전달할 수 있습니다. 즉, 여러 사용 사례에 공통 AMI를 사용하고 이러한 AMI를 시작 시 동적으로 구성할 수 있습니다. 또한 Amazon Linux는 cloud-init를 사용하여 ec2-user 계정의 초기 구성을 수행합니다.

자세한 내용은 cloud-init 설명서를 참조하세요.

Amazon Linux는 /etc/cloud/cloud.cfg.d/etc/cloud/cloud.cfg에 있는 cloud-init 작업을 사용합니다. /etc/cloud/cloud.cfg.d에서 자체 cloud-init 작업 파일을 만들 수 있습니다. 이 디렉터리의 모든 파일은 cloud-init으로 읽습니다. 어휘 순으로 읽히며, 나중의 파일이 이전 파일의 값을 덮어씁니다.

cloud-init 패키지는 부팅 시 인스턴스에 대해 다음과 같은 일반적인 구성 작업을 수행합니다.

  • 기본 로캘 설정.

  • 호스트 이름 설정.

  • 사용자 데이터 구문 분석 및 처리.

  • 호스트 프라이빗 SSH 키 생성.

  • 손쉬운 로그인 및 관리를 위해 사용자의 퍼블릭 SSH 키를 .ssh/authorized_keys에 추가.

  • 패키지 관리를 위한 리포지토리 준비.

  • 사용자 데이터에 정의된 패키지 작업 처리.

  • 사용자 데이터에 있는 사용자 스크립트 실행.

  • 해당하는 경우 인스턴스 스토어 볼륨을 탑재합니다.

    • 기본적으로 ephemeral0 인스턴스 스토어 볼륨은 /media/ephemeral0이 있고 유효한 파일 시스템이 포함된 경우 여기에 마운트됩니다. 그렇지 않은 경우 마운트되지 않습니다.

    • 기본적으로 인스턴스와 연결된 모든 스왑 볼륨이 탑재됩니다(m1.smallc1.medium 인스턴스 유형만 해당).

    • 다음 cloud-init 명령을 사용하여 기본 인스턴스 스토어 볼륨 탑재를 재정의할 수 있습니다.

      #cloud-config mounts: - [ ephemeral0 ]

      탑재를 더 세부적으로 제어하려면 cloud-init 설명서의 탑재를 참조하세요.

    • TRIM을 지원하는 인스턴스 스토어 볼륨은 인스턴스를 시작할 때 포맷되지 않으므로, 볼륨을 파티셔닝하고 포맷한 후 탑재해야 합니다. 자세한 내용은 인스턴스 스토어 볼륨 TRIM 지원 섹션을 참조하세요. disk_setup 모듈을 사용하여 부팅 시 인스턴스 스토어 볼륨을 파티셔닝하고 포맷할 수 있습니다. 자세한 내용은 cloud-init 문서의 Disk Setup 단원을 참조하세요.

지원되는 사용자 데이터 형식

cloud-init 패키지는 다양한 형식의 사용자 데이터 처리를 지원합니다.

  • Gzip

    • 사용자 데이터가 gzip으로 압축된 경우 cloud-init는 데이터에 대한 압축을 해제하고 데이터를 적절히 처리합니다.

  • MIME 멀티파트

    • MIME 멀티파트 파일을 사용하여 두 가지 이상의 데이터 유형을 지정할 수 있습니다. 예를 들어, 사용자 데이터 스크립트와 클라우드 구성 유형을 모두 지정할 수 있습니다. 멀티파트 파일의 각 부분은 지원되는 형식 중 하나일 경우 cloud-init에 의해 처리할 수 있습니다.

  • Base64 디코딩

    • 사용자 데이터가 base64-encoded인 경우 cloud-init는 디코딩된 데이터를 지원 유형 중 하나로 인식할 수 있는지 여부를 판단합니다. 디코딩된 데이터를 인식하는 경우 데이터를 디코딩하여 그에 맞게 처리합니다. 그렇지 않을 경우 base64 데이터를 원상태로 반환합니다.

  • 사용자 데이터 스크립트

    • #! 또는 Content-Type: text/x-shellscript로 시작합니다.

    • 스크립트는 첫 부팅 주기에 /etc/init.d/cloud-init-user-scripts에 의해 실행됩니다. 이 동작은 부팅 프로세스 후반(초기 구성 작업이 수행된 후)에 발생합니다.

  • Include 파일

    • #include 또는 Content-Type: text/x-include-url로 시작합니다.

    • 이것은 include 파일의 내용입니다. 이 파일에는 줄당 URL 하나씩, URL 목록이 포함되어 있습니다. 각각의 URL을 읽어오며 해당 내용이 이 동일한 규칙 세트를 통과합니다. URL에서 읽어온 콘텐츠는 gzip으로 압축된 형태이거나 MIME-multi-part 또는 일반 텍스트 형태일 수 있습니다.

  • 클라우드 구성 데이터

    • #cloud-config 또는 Content-Type: text/cloud-config로 시작합니다.

    • 이 내용은 클라우드 구성 데이터입니다. 지원되는 구성 형식의 주석 포함 예는 해당 예를 참조하세요.

  • 시작 작업(Amazon Linux 2에서는 지원되지 않음)

    • #upstart-job 또는 Content-Type: text/upstart-job로 시작합니다.

    • 이 콘텐츠는 /etc/init에서 파일에 저장되고, upstart는 다른 upstart 작업에 따라 콘텐츠를 소비합니다.

  • 클라우드 Boothook

    • #cloud-boothook 또는 Content-Type: text/cloud-boothook로 시작합니다.

    • 이것은 bookhook 데이터의 내용입니다. /var/lib/cloud에 있는 파일에 저장된 후 즉시 실행됩니다.

    • 이것은 맨 처음으로 사용 가능한 hook입니다. 한 번만 실행되도록 제공된 메커니즘이 없습니다. boothook는 이 부분을 자체적으로 처리해야 합니다. 환경 변수 INSTANCE_ID에 인스턴스 ID가 함께 제공됩니다. 이 변수를 사용하여 boothook 데이터의 인스턴스당 1회 세트를 제공하세요.

Amazon Linux 알림 구독

최신 Amazon Linux AMI가 배포될 때 알림을 받으려면 Amazon SNS를 사용하여 구독할 수 있습니다.

AL2023에서 알림 구독에 대한 자세한 내용은 AL2023 사용 설명서에서 새 업데이트 알림 받기를 참조하세요.

참고

Amazon Linux AMI는 2023년 12월 31일에 지원이 종료되었으며, 2024년 1월 1일부터 보안 업데이트나 버그 수정을 받지 않습니다. Amazon Linux AMI 지원 종료 및 유지 보수 지원에 대한 자세한 내용은 블로그 게시물 Update on Amazon Linux AMI end-of-life를 참조하세요. 애플리케이션을 AL2023으로 업그레이드하는 것이 좋습니다. 이 버전은 2028년까지 장기 지원을 포함합니다.

Amazon Linux 알림을 구독하려면
  1. https://console.aws.amazon.com/sns/v3/home에서 Amazon SNS 콘솔을 엽니다.

  2. 필요한 경우 탐색 모음에서 리전을 미국 동부(버지니아 북부)로 변경합니다. 구독하려는 SNS 알림이 생성된 리전을 선택해야 합니다.

  3. 탐색 창에서 구독구독 생성을 선택합니다.

  4. 구독 생성 대화 상자에서 다음과 같이 수행합니다.

    1. [Amazon Linux 2] 주제 ARN의 경우, 다음 Amazon 리소스 이름(ARN)을 복사합니다. arn:aws:sns:us-east-1:137112412989:amazon-linux-2-ami-updates.

    2. [Amazon Linux] 주제 ARN의 경우, 다음 Amazon 리소스 이름(ARN)을 복사합니다. arn:aws:sns:us-east-1:137112412989:amazon-linux-ami-updates.

    3. 프로토콜에서 이메일을 선택합니다.

    4. 엔드포인트에 알림 받을 이메일 주소를 입력합니다.

    5. 구독 생성을 선택합니다.

  5. "AWS 알림 - 구독 신청 확인"이라는 제목의 확인 이메일을 받게 됩니다. 이메일을 열고 구독 확인을 선택하여 구독을 완료합니다.

AMI가 릴리스될 때마다, 해당 주제의 구독자에게 알림이 발송됩니다. 이 알림을 수신하지 않으려면 다음 절차를 수행하여 구독 해제합니다.

Amazon Linux 알림을 구독 해제하려면
  1. https://console.aws.amazon.com/sns/v3/home에서 Amazon SNS 콘솔을 엽니다.

  2. 필요한 경우 탐색 모음에서 리전을 미국 동부(버지니아 북부)로 변경합니다. SNS 알림이 생성된 리전을 사용해야 합니다.

  3. 탐색 창에서 구독을 선택하고 해당 구독을 선택한 후 작업, 구독 삭제를 선택합니다.

  4. 확인 메시지가 나타나면 삭제를 선택합니다.

Amazon Linux AMI SNS 메시지 형식

SNS 메시지의 스키마는 다음과 같습니다.

{ "description": "Validates output from AMI Release SNS message", "type": "object", "properties": { "v1": { "type": "object", "properties": { "ReleaseVersion": { "description": "Major release (ex. 2018.03)", "type": "string" }, "ImageVersion": { "description": "Full release (ex. 2018.03.0.20180412)", "type": "string" }, "ReleaseNotes": { "description": "Human-readable string with extra information", "type": "string" }, "Regions": { "type": "object", "description": "Each key will be a region name (ex. us-east-1)", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "Name": { "description": "AMI Name (ex. amzn-ami-hvm-2018.03.0.20180412-x86_64-gp2)", "type": "string" }, "ImageId": { "description": "AMI Name (ex.ami-467ca739)", "type": "string" } }, "required": [ "Name", "ImageId" ] } } } }, "required": [ "ReleaseVersion", "ImageVersion", "ReleaseNotes", "Regions" ] } }, "required": [ "v1" ] }