AWS Certified DevOps Engineer Professional 자격증 준비 3

2025. 10. 5. 17:18카테고리 없음

CloudFormation.

코드를 사용하여 AWS인프라의 모든 리소스를 정의하는 방법.

코드로 표현된 인프라

제어 측면에서뛰어남

식별자로 태그 지정하기에 비용확인에 유용

절약 전략 세우기에 좋음.

 

CloudFormation stack은 aws 리소스로 구성되어 있으면 AWS에서 생성할 수 있는 모든 종류의 것이 가능함.

 

템플릿

AWSTempletFormatVersion에 정의되어 있음.

파라미터는 동적 입력

매핑은 정적 입력.

 

파라미터로 선정될 리소스의 값은 "리소스 구성이 향후 변경될 가능성이 있는가?" "업데이트를 할때마다 콘텐츠를 변경할 필요가 있는가"

 

맵핑

템플릿 내의 고정변수

다른 환경과의 구분할 때 쓰임.

!FindMap [RegionMap, !Ref "AWS: :Region", HVM64]

 

Outputs

선택사항

선택적 출력값을 선언

이것들을 선언하면 이 값들을 다른 스택으로 가져올 수 있음.

Export !InportValue

 

내장함수

Fn:Ref

약어로 !Ref

 

롤백

기본적으로 스택 생성에 실패하면 기존의 것으로 롤백함.

그리고 로그로 확인.

롤백하는 중에 실패할 경우에는 스택에 문제가 있음.

 

Service Role

 전용 IAM이 필요.

 

CloudFormation Capabilities

• CAPABILITY_NAMED_IAM and CAPABILITY_IAM

  • Necessary to enable when you CloudFormation template is creating or updating IAM resources (IAM User, Role, Group, Policy, Access Keys, Instance Profile…)

  • Specify CAPABILITY_NAMED_IAM if the resources are named

• CAPABILITY_AUTO_EXPAND

  • Necessary when your CloudFormation template includes Macros or Nested Stacks (stacks within stacks) to perform dynamic transformations

  • You’re acknowledging that your template may change before deploying

• InsufficientCapabilitiesException

  • Exception that will be thrown by CloudFormation if the capabilities haven’t been acknowledged when deploying a template (security measure)

 

DeletionPolicy Delete

리소스나 스택이 삭제될 때, 리소스에 발생할 일을 컨트롤,

Retain(삭제 유지 정책) 템플릿에서 어떤 리소스를 보존할지 

Snapshot DB 중요  데이터같이 남기고 싶은 경우 삭제되기 전에 스냅샷을 남김.

 

CloudFormation Stack Polices

 

• During a CloudFormation Stack update, allupdate actions are allowed on all resources(default)
• A Stack Policy is a JSON document that defines the update actions that are allowed on specific resources during Stack updates
• Protect resources from unintentional updates 
• When you set a Stack Policy, all resources in the Stack are protected by default
• Specify an explicit ALLOW for the resources you want to be allowed to be updated

 

 

Custom  Resource

S3가 버킷 안의 내용물이 없어야지만 삭제되기 때문에 Custom Resource를 이용해 Lambda를 부르고 거기서 S3의 버킷의 내용물을 비우고 CloudFormation을 실행.

 

 

Dynamic References 동적 참조

Systems Manager Parameter Store and Secrets Manager 에 저장

 

cfn-init

사용자 데이터에서 확인한거부터 시작.

 

cfn=signal script

실행이 재대로 되었는지 확인.

실행시키면 리소스 생성이 성공했는지 실패했는지 알수있음

대기상태에서 해야함..(신호를 대기.)

 

시험에 나올수 있는 내용.

대기 조건이 Amazon EC2 인스턴스로부터 필요한 신호 수를 수신하지 못했습니다
• 사용 중인 AMI에 AWS CloudFormation 도우미 스크립트가 설치되어 있는지 확인합니다. AMI에 도우미 스크립트가 포함되어 있지 않은 경우 인스턴스에 다운로드할 수도 있습니다
• cfn-init 및 cfn-signal 명령어가 인스턴스에서 성공적으로 실행되었는지 확인합니다. /var/log/cloud-nit.log 또는 /var/log/cfn-init.log와 같은 로그를 확인하여 인스턴스 실행을 디버깅할 수 있습니다
• 인스턴스에 로그인하여 로그를 검색할 수 있지만, 실패 시 롤백을 비활성화하거나 스택이 생성하지 못한 후 AWS CloudFormation이 인스턴스를 삭제해야 합니다
• 인스턴스가 인터넷에 연결되어 있는지 확인합니다. 인스턴스가 VPC에 있는 경우, 인스턴스가 개인 서브넷에 있는 경우 NAT 장치를 통해 또는 공용 서브넷에 있는 경우 인터넷 게이트웨이를 통해 인터넷에 연결할 수 있어야 합니다
• 예를 들어, run: curl -I https://aws.amazon.com

 

Nested Stacks

중첩 스택

반복되는 패턴과 공통 구성요소를 별도로 구성해서,

 

크로스 스택 vs 중첩스택

크로스 스택 : 수명에 따라, ImportValue, 스택 간에  값전달

중첩스택 : url로 템플릿을 가져와서 파라미터를 입력. 중첩스택 자체를 업데이트 및 제거를 해서는 안되고,  부모스택을 업데이트 및 삭제해야함.

 

Depends On

예를 들어 DependsOn : MyDB 일때 EC2인스턴스는 데이터베이스가 생성될 때까지 생성돼선 안된다는 의미.

없으면 동시생성이 됨.

 

StackSets 

여러계정과 리전에 걸쳐 스택을 단일 작업으로 배포 이루는 것.

관리자 계정이 스택셋트 생성.

인스턴스를 생성 업데이트 삭제를 함.

Self-managed Permissions

관리자 계정은 AWS CloudFormation 스택셋트 관리 IAM Role이 필요함.

Service-managed Permissions

AWS Organizations에 의해 배포하는 어카운트 관리함.

 

 

CloudFormation - Troubleshooting

DELETED FAILED

S3의 버킷은 안에가 비어있지 않을 경우 삭제가 안되기에, 수동으로 비우거나 Lambda 기능이 있는 사용자 지정 리소스를 이용하여 삭제

DeletionPolicy=Retain을 이용해서 특정 리소스 삭제는 스킵이 가능.

 

UPDATE ROLLBACK FAILED

 

ChagedSets

 

cfn-hup

CFN Bootstrap Suites라는 뜻. 

메타데이터의 변경저을 15분마다 확인하고 적용함.