개요
이 실습에서는 AWS CloudFormation을 사용하여 Auto Scaling 그룹, Amazon Elastic Compute Cloud(EC2) 인스턴스, Elastic Load Balancing을 비롯한 다양한 지원 AWS 제품 및 서비스로 웹 애플리케이션을 프로비저닝하고 업데이트하는 방법을 배웁니다.
첫 번째 부분에서는 AWS CloudFormation을 사용하여 간단한 리소스인 Amazon S3 버킷을 생성하고, AWS CloudFormation 스택을 삭제하는 경우 또는 롤백 중에 적용되는 다양한 보존 정책을 살펴봅니다.
두 번째 부분에서는 Amazon Linux 인스턴스를 사용하여 간단한 PHP 웹 애플리케이션을 프로비저닝합니다. 그런 다음 기존 애플리케이션에 AWS CloudFormation 템플릿을 다시 적용하여 Amazon EC2 인스턴스 유형과 같은 일부 리소스 속성을 변경하는 방법을 알아봅니다. 마지막으로 Auto Scaling 구성에 따라 로드 밸런서 및 Auto Scaling 그룹을 추가합니다.
이 실습에서 다루는 주제
이 실습을 마치면 다음 작업을 수행할 수 있습니다.
- AWS CloudFormation을 사용하여 Amazon Simple Storage Service(S3) 버킷을 생성
- Amazon Linux AMI를 사용하여 간단한 PHP 웹 애플리케이션 프로비저닝
- 기존 애플리케이션에 AWS CloudFormation 템플릿을 적용
- AWS CloudFormation을 사용하여 기존 애플리케이션을 수정
- AWS CloudFormation을 사용하여 애플리케이션에 IAM 역할 및 Elastic Load Balancing을 추가
필수 기술 지식
이 실습을 성공적으로 완료하려면 텍스트 편집기에서 스크립트를 편집하는 데 익숙해야 합니다.
기타 AWS 서비스
실습 사용자에게 할당되는 IAM 정책에 따라 이번 실습에 포함되지 않는 AWS 서비스 사용은 금지됩니다. 일부 경우에는 실습 설계에 따라 의도적으로 이러한 제약을 넘어서 사용이 제한되기도 합니다. 다른 서비스에 액세스하거나 이 실습 가이드에서 제공하는 것 이외의 작업을 수행하는 경우 오류가 발생할 수 있습니다.
AWS CloudFormation은 개발자와 시스템 관리자가 관련 AWS 리소스 모음을 쉽게 생성 및 관리하고, 이를 순서에 따라 예측 가능한 방식으로 프로비저닝하고 업데이트할 수 있는 간편한 방법을 제공합니다.
AWS CloudFormation의 샘플 템플릿을 사용하거나 자체 템플릿을 생성하여 애플리케이션 실행에 필요한 AWS 리소스는 물론 기타 관련 종속성 또는 런타임 파라미터에 대해 설명할 수 있습니다. AWS 서비스를 프로비저닝하는 순서나 이러한 종속성을 적용하기 위한 세부 요소를 파악할 필요가 없습니다. AWS CloudFormation이 대신 처리할 것입니다. AWS 리소스가 배포되고 나면 버전 관리를 소프트웨어에 적용하는 것과 같은 방법으로 AWS 인프라에 적용하여 해당 리소스를 제어 및 예측이 가능한 방식으로 수정하고 업데이트할 수 있습니다.
AWS 관리 콘솔, AWS Command Line Interface 또는 API를 사용해 템플릿과 관련 리소스 모음(스택이라고 칭함)을 배포하고 업데이트할 수 있습니다. AWS CloudFormation에는 추가 요금이 없으며 애플리케이션 실행에 필요한 AWS 리소스에 대해서만 요금을 지불하면 됩니다.
AWS CloudFormation 템플릿은 스택을 구성하는 AWS 리소스의 선언입니다. 템플릿은 JSON(JavaScript Object Notation) 또는 YAML 형식의 텍스트 파일로 저장됩니다. 단순한 텍스트 파일이므로 텍스트 편집기에서 파일을 생성 및 편집하고 소스 제어 시스템에서 나머지 소스 코드와 함께 관리할 수 있습니다.
이번 실습 템플릿에서는 생성 및 구성하려는 AWS 리소스를 선언하기 위해 AWS CloudFormation이 해석할 수 있는 YAML 구조를 사용합니다. YAML 형식에서는 객체가 이름-값 쌍 또는 이름 쌍으로 선언됩니다. AWS CloudFormation 템플릿에서는 다음 6가지 최상위 객체를 선언할 수 있습니다.
- AWSTemplateFormatVersion
- Description
- Parameters
- Mappings
- Resources
- Outputs
유일한 필수 최상위 객체는 Resources 객체이며, 적어도 하나의 리소스를 선언해야 합니다. 이 실습은 단일 리소스 선언을 포함하는 Resources 객체 하나만 포함하는 가장 기본적인 템플릿으로 시작합니다.
이러한 개체 각각에 대한 정의는 온라인 템플릿 구조 문서에서 찾을 수 있습니다.
아이콘 설명
이 실습에서는 다양한 유형의 지침 및 참고 사항에 대한 주의를 환기하기 위해 다양한 아이콘이 사용됩니다. 다음 목록에서는 각 아이콘의 목적을 설명합니다.
- 예상 출력: 명령 또는 편집된 파일의 출력을 확인하는 데 사용할 수 있는 샘플 출력입니다.
- 참고: 힌트, 팁 또는 중요한 가이드입니다.
- 추가 정보: 자세한 정보를 찾을 수 있는 위치입니다.
- 고려 사항: 자신의 환경에 개념을 적용하는 방법을 고려하거나 당면한 주제에 대한 대화를 시작하기 위해 일시 중지할 시점입니다.
- 복사/붙여넣기: 복사/붙여넣기가 필요한 미리 생성된 스크립트 또는 파일의 내용을 표시하는 코드 블록입니다. 코드 블록의 특정 부분만 복사해야 하는 경우 코드에 번호가 매겨진 TODO 주석이 있습니다.