AWS에선 AWS CloudFormation을 사용하면 인프라환경/애플리케이션 리소스 를 모델링하고 프로비저닝 가능!
AWS CloudFormation는 코드로 관리 가능
JSON, YAML 형식의 텍스트파일로 작성하면 자동으로 생성하는 인프라 형상관리 제공
템플릿
JSON , YAML 형식의 텍스트파일
AWS 리소스 구축을 위한 블루프린트로 사용
템플릿 파일은 S3 버킷을 이용
스택 AWS CloudFormation은 스택이라는 하나의 단위로 리소스 관리함 스택의 모든 리소스는 스택의 탬플릿으로 정의 스택 생성할 때마다 파라미터 추가 가능
변경 세트 스택에서 실행중인 리소스 변경할 때 스택을 업데이트 해야함 이때, 리소스를 변경하기 전에 변경 내용을 변경 세트로 생성 가능 변경세트 사용하면 실행중인 리소스에 미치는 영향 확인 가능
스택 생성 과정
AWSTempleteFormatVersion: 2010-09-09
Description : >-
Lambda Test
Resources:
AWS CloudFormationLambdaFunction:
Type: 'AWS::Lambda::Function'
Properties:
Code:
Zipfile: !Join
- |+
- - import json
- 'def lambda_handler(event, context):'
- 'return ''Lambda Test'''
Handler : index.lambda_handler
Role : !GetAtt LambdaIAMRole.Arn
Runtime: python 3.7
Timeout: 5
LambdaIAMRole:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
Action:
- 'sts:AssumeRole'
Path: /