기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
cfn-init
설명
cfn-init 헬퍼 스크립트는 AWS::CloudFormation::Init
키에서 템플릿 메타데이터를 읽고 이에 따라 다음과 같이 동작합니다.
-
에서 메타데이터 가져오기 및 구문 분석 CloudFormation
-
패키지 설치
-
디스크에 파일 쓰기
-
서비스 활성화/비활성화 및 시작/중지
참고
cfn-init를 사용하여 기존 파일을 업데이트하는 경우 동일한 디렉터리에 원본 파일의 백업 사본이 .bak라는 확장명으로 생성됩니다. 예를 들어, /
을 업데이트하면 이 작업에서는 다음과 같은 파일 2개를 생성합니다. path
/to
/file_name
/
파일에는 원본 파일의 내용이 들어 있고, path
/to
/file_name
.bak/
파일에는 업데이트된 내용이 들어 있습니다.path
/to
/file_name
템플릿 메타데이터에 대한 자세한 내용은 AWS::CloudFormation::Init 단원을 참조하십시오.
참고
cfn-init에는 자격 증명이 필요 없기 때문에 --access-key
, --secret-key
, --role
또는 --credential-file
옵션을 사용할 필요가 없습니다. 그러나 자격 증명을 지정하지 않으면 CloudFormation 이 스택 멤버십을 확인하고 해당 인스턴스가 속한 스택에 대한 호출 범위를 제한합니다.
구문
cfn-init --stack|-s
stack.name.or.id
\ --resource|-rlogical.resource.id
\ --regionregion
\ --access-keyaccess.key
\ --secret-keysecret.key
\ --rolerolename
\ --credential-file|-fcredential.file
\ --configsets|-cconfig.sets
\ --url|-uservice.url
\ --http-proxyHTTP.proxy
\ --https-proxyHTTPS.proxy
\ --verbose|-v
옵션
이름 | 설명 | 필수 |
---|---|---|
|
스택 이름 또는 스택 ID입니다. 유형: 문자열 기본값: 없음 예: |
예 |
|
메타데이터가 포함된 리소스의 논리적 리소스 ID입니다. 유형: 문자열 예: |
예 |
|
사용할 CloudFormation 리전 엔드포인트입니다. 유형: 문자열 기본값: 예제: |
아니요 |
|
CloudFormation에서 유형: 문자열 |
아니요 |
|
지정된 AWS 액세스 키에 해당하는 AWS 보안 암호 액세스 키입니다. 유형: 문자열 |
아니요 |
|
인스턴스와 연결되는 IAM 역할의 이름입니다. 유형: 문자열 조건: 자격 증명 파일 파라미터가 이 파라미터를 대신합니다. |
아니요 |
|
보안 액세스 키 및 액세스 키가 둘 다 포함된 파일입니다. 자격 증명 파일 파라미터는 --role, --access-key 및 --secret-key 파라미터를 대신합니다. 유형: 문자열 |
아니요 |
|
(순서대로) 실행할 configset의 쉼표로 구분된 목록입니다. 유형: 문자열 기본값: |
아니요 |
|
사용할 CloudFormation 엔드포인트입니다. 유형: 문자열 |
아니요 |
|
HTTP 프록시입니다(비 SSL). 다음 형식을 사용합니다. 유형: 문자열 |
아니요 |
|
HTTPS 프록시입니다. 다음 형식을 사용합니다. 유형: 문자열 |
아니요 |
|
상세 정보 표시 출력입니다. 이 옵션은 cfn-init가 초기화에 실패하는 사례를 디버깅하는 데 유용합니다. 참고초기화 이벤트를 디버깅하려면 DisableRollback 켜야 합니다. CloudFormation 콘솔을 사용하여 고급 옵션 표시를 선택한 다음 실패 시 롤백을 아니요로 설정하여 이 작업을 수행할 수 있습니다. 그런 다음 콘솔에 대해 SSH 접속을 수행하고 /var/log/cfn-init.log에서 로그를 읽습니다. |
아니요 |
|
도움말 메시지를 표시한 후 종료합니다. |
아니요 |
예
Amazon Linux 예제
다음 코드 조각은 UserData
리소스와 연결된 InstallAndRun
configset를 실행하는 EC2 인스턴스의 WebServerInstance
속성을 보여줍니다.
전체 예제 템플릿은 AWS CloudFormation을 사용하여 Amazon EC2에서 애플리케이션 배포 단원을 참조하십시오.
최신 버전을 포함시키려면 UserData
에 yum install -y aws-cfn-bootstrap
을 추가합니다.
JSON
Fn::Join
내장 함수를 사용하는 UserData
속성입니다.
{ "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -xe\n", "", "yum install -y aws-cfn-bootstrap", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref": "AWS::StackName" }, " --resource WebServerInstance ", " --configsets InstallAndRun ", " --region ", { "Ref": "AWS::Region" }, "\n" ] ] } } }
YAML
Fn::Join
내장 함수를 사용하는 UserData
속성입니다.
UserData: !Base64 'Fn::Join': - '' - - | #!/bin/bash -xe - '' - yum install -y aws-cfn-bootstrap - '/opt/aws/bin/cfn-init -v ' - ' --stack ' - !Ref 'AWS::StackName' - ' --resource WebServerInstance ' - ' --configsets InstallAndRun ' - ' --region ' - !Ref 'AWS::Region' - |+
JSON
Fn::Sub
내장 함수를 사용하는 UserData
속성입니다.
{ "UserData": { "Fn::Base64": { "Fn::Sub": [ "#!/bin/bash -x\n# Install the files and packages from the metadata\n/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n\n# Signal the status from cfn-init\n/opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n", {} ] } } }
YAML
Fn::Sub
내장 함수를 사용하는 UserData
속성입니다.
UserData: !Base64 'Fn::Sub': - > #!/bin/bash -x # Install the files and packages from the metadata /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region} # Signal the status from cfn-init /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region} - {}