AWS CloudFormation에 대해 알아야 할 모든 것

게시 됨: 2021-12-28

Encap - 블로그(계속)


AWS CloudFormation 은 사용자가 AWS 리소스를 설정하고 모델링할 수 있도록 Amazon에서 제공하는 전용 서비스입니다. 이를 통해 AWS 리소스 관리에 집중하고 AWS 내에서 실행되는 애플리케이션에 집중하는 등 중요한 일에 더 많은 시간을 할애할 수 있습니다.

Amazon RDS DB 인스턴스 및 Amazon EC2 인스턴스와 같이 원하는 AWS 내 리소스에 대한 설명을 제공하는 템플릿을 생성할 수 있습니다. CloudFormation은 사용자를 위해 이러한 AWS 리소스의 구성 및 프로비저닝을 최적으로 처리하려고 합니다. AWS CloudFormation이 이를 완벽하게 처리하므로 더 이상 이러한 리소스를 개별적으로 생성하거나 구성할 필요가 없습니다.

이 블로그에서는 AWS 구성에 대해 알아야 할 모든 것을 이해하려고 노력할 것입니다.

AWS CloudFormation 작업


AWS CloudFormation 은 스택 개념에서 작동하는 개념입니다. 단위와 관련하여 AWS 리소스를 집합적으로 생성 및 삭제할 수 있는 가능성을 제공합니다. 사용자는 매핑, 스택 매개변수, 출력 값 및 리소스 속성과 관련된 특성을 정의할 수 있습니다. 이것은 JSON 호환 파일인 템플릿으로 수행됩니다.

처음부터 템플릿을 작성하고 생성하거나 AWS에서 미리 제공하는 예제 템플릿 중 하나를 사용할 수도 있습니다. 이와 함께 사용자는 Amazon EC2, Amazon RDS, Amazon Elastic Beanstalk와 같은 CloudFormation 내의 많은 AWS 제품을 최대한 활용할 수 있습니다.

스택이 생성되는 동안 AWS CloudFormation은 AWS에 대해 특정 서비스를 호출합니다. 이는 AWS 리소스를 구성하고 프로비저닝하는 데 도움이 됩니다. CloudFormation은 권한이 있는 작업만 수행합니다. 예를 들어 AWS CloudFormation으로 Amazon EC2를 생성하려면 이에 대한 특별한 권한이 필요합니다. 이와 함께 스택을 삭제하고 인스턴스를 종료해야 할 필요도 있습니다.

권한을 관리하기 위해 개인은 AWS Identity and Access Management를 사용할 수 있습니다. 그 다음에는 AWS CloudFormation이 처리하는 호출이 템플릿에 의해 선언됩니다. YAML 또는 JSON 내에서 CloudFormation 템플릿을 생성하고 수정하려면 AWS CloudFormation Designer 를 사용해야 합니다 . 계정을 만들고 바로 디자인을 시작할 수 있습니다.

또한 동일한 작업을 수행하기 위해 다른 텍스트 편집기를 선호할 수도 있지만 AWS 디자이너는 효율성을 도출하는 데 적합한 플랫폼입니다. CloudFormation 템플릿은 사용하려는 리소스 및 관련 설정에 대해 자세히 설명합니다. 예를 들어 하나의 EC2 인스턴스를 생성하려는 경우 템플릿에서 동일한 것을 선언하고 그에 따라 속성을 설명합니다.

템플릿을 생성한 후 S3 버킷에 저장하거나 로컬에 저장합니다. 또한 .yaml, .txt 또는 .json과 같은 확장자로 저장해야 합니다. 로컬 컴퓨터에서 Amazon S3 URL 또는 템플릿 파일 위치를 지정하여 CloudFormation 스택을 형성합니다. 템플릿에 일부 매개변수가 포함되어 있다고 생각되는 경우 동일한 값을 입력한 후 스택을 생성하는 방향으로 진행할 수 있습니다. 매개변수를 사용하면 CloudFormation 템플릿에 대한 값을 입력할 수 있으며 스택을 생성할 때마다 리소스를 사용자 지정할 수 있습니다.

로컬에 저장된 템플릿을 지정하거나 호출하는 경우 CloudFormation은 AWS 계정의 S3 버킷에 자동으로 업로드합니다. AWS CloudFormation은 템플릿 파일을 업로드할 수 있는 모든 리전에 대한 버킷을 생성하기 위한 것입니다. CloudFormation 내의 버킷은 계정에서 활성화된 Amazon S3 권한이 있는 모든 사람이 액세스할 수 있습니다.

AWS CloudFormation 개념


AWS CloudFormation을 사용할 때마다 템플릿과 스택으로 작업할 수 있습니다. AWS 리소스와 해당 속성을 설명하는 템플릿을 만들 수 있습니다. 스택을 생성할 때마다 CloudFormation은 템플릿에 설명된 리소스를 프로비저닝합니다.

1. 템플릿


AWS CloudFormation 템플릿은 JSON 또는 YAML 형식의 텍스트 파일입니다. .yaml, .template, .txt 또는 .json과 같은 확장자를 사용하여 이러한 파일을 쉽게 저장할 수 있습니다. AWS CloudFormation은 이러한 템플릿을 AWS 리소스 구축을 위한 청사진으로 사용합니다.

예를 들어 템플릿의 Amazon EC2 인스턴스를 인스턴스 유형, AMI ID, 블록 디바이스 매핑 및 Amazon EC2 키 페어 이름으로 설명할 수 있습니다. 스택을 생성할 때마다 CloudFormation이 템플릿에 설명된 모든 것을 생성하는 데 사용하는 템플릿을 언급할 수도 있습니다.

2. 스택

AWS CloudFormation 을 사용하면 관련 리소스를 스택이라는 단일 단위로 관리할 수 있습니다. 스택을 생성, 업데이트 및 삭제하기만 하면 리소스 컬렉션을 쉽게 생성, 업데이트 및 삭제할 수 있습니다. 스택에 있는 모든 리소스는 스택의 CloudFormation 템플릿에 의해 정의됩니다.

Auto Scaling 그룹, Amazon Relational Database Service 데이터베이스 인스턴스 및 Elastic Load Balancing 로드 밸런서를 포함하는 템플릿을 생성했다고 가정해 보겠습니다. 이러한 리소스를 생성하기 위해 생성한 템플릿을 제출하여 스택을 생성할 수 있으며 CloudFormation은 이러한 모든 리소스를 자동으로 프로비저닝합니다. CloudFormation 콘솔, AWS CLI 및 API를 사용하여 스택으로 작업할 수 있습니다.

3. 세트 변경

스택에서 실행 중인 리소스로 변경해야 한다고 생각되면 스택을 업데이트할 수 있습니다. 리소스를 변경하기 전에 기본적으로 제안된 모든 변경 사항의 요약인 변경 집합을 생성할 수 있습니다. 변경 세트를 사용하면 변경 사항을 구현하기 전에 특히 중요한 리소스에 대해 변경 사항이 실행 중인 리소스에 어떤 영향을 미치는지 확인할 수 있습니다.

예를 들어 Amazon RDS 데이터베이스 인스턴스의 이름을 변경하는 경우 AWS CloudFormation은 새 데이터베이스를 생성하고 이전 데이터베이스를 삭제합니다. 이미 백업하지 않은 경우 이전 데이터베이스의 데이터가 손실될 위험이 없습니다. 변경 집합을 구성하는 경우 변경으로 인해 데이터베이스가 교체되고 스택을 업데이트하기 전에 적절하게 계획하고 있다는 것을 알게 될 것입니다.

AWS CloudFormation이 필요한 이유는 무엇입니까?

승인, 프로덕션 및 테스트 환경을 지원하는 아키텍처를 생성하려면 동일한 작업을 수행하는 데 도움이 될 수 있는 AWS CloudFormation이 필요합니다. 이 아키텍처를 구축하기 위해 CloudFormation에서 수행하는 일반적인 활동은 인스턴스 시작, 로드 밸런서 생성, 필수 설치, 로드 밸런서에 인스턴스 연결, RDS 생성 및 EC2 보안 그룹 구성, 보안 그룹 생성 및 구성, 자동 생성입니다. - 스케일링 그룹.

인프라 자동화 를 위한 AWS CloudFormation 템플릿 은 기본적으로 모든 중요한 사항을 관리할 수 있는 강력한 도구가 되도록 의도된 JSON 파일입니다. CloudFormation이 예측 가능한 접선으로 리소스 프로비저닝을 지원하는 동안 기본적으로 리소스의 필요성을 지정하는 데 도움이 됩니다.

AWS CloudFormation을 사용할 수 있는 상황

AWS CloudFormation은 AWS Management Console, AWS Command Line Interface 및 API를 사용하여 템플릿과 해당 리소스 컬렉션을 배포하거나 업그레이드하는 데 도움이 됩니다. 전용 애플리케이션을 실행하는 데 중요한 AWS 리소스에 대해서만 비용을 지불하면 되므로 사용 사례는 추가로 청구되지 않습니다.

따라서 AWS CloudFormation은 IaaS( Infrastructure as Code )라고 결론지을 수 있습니다. 즉, 실제로 읽고, 재사용하고, 검토하는 데 사용할 수 있습니다. 아래에서는 AWS CloudFormation이 사용되는 몇 가지 상황을 살펴보겠습니다. 이것은 훨씬 더 나은 선명도를 얻는 데 도움이 될 것입니다.

AWS Cloud Formation은 다음 작업을 지원합니다.

1. 단순 인프라 관리

백엔드 데이터베이스도 포함하는 확장 가능한 웹 애플리케이션을 만들기 위해 Auto Scaling 그룹, Amazon Relational Database Service 데이터베이스 인스턴스 및 Elastic Load Balancing 로드 밸런서를 사용하게 될 수 있습니다.

이러한 서비스는 리소스 프로비저닝에 개별적으로 사용되며 리소스가 생성된 후 서로 작동하도록 구성할 수 있습니다. 이러한 작업은 응용 프로그램을 시작하고 실행하기 전에 복잡성과 시간을 추가합니다. AWS CloudFormation 템플릿을 생성하고 기존 템플릿도 수정합니다.

템플릿은 모든 리소스와 속성을 설명할 수 있습니다. CloudFormation 스택을 생성하기 위해 템플릿을 사용하면 Auto-scaling 그룹, 로드 밸런서 및 데이터베이스가 프로비저닝됩니다. 스택이 성공적으로 생성되면 AWS 리소스가 가동되어 실행됩니다. 스택은 리소스도 마찬가지로 쉽게 삭제할 수 있습니다. CloudFormation을 사용하면 리소스 모음을 단일 단위로 쉽게 관리할 수 있습니다.

2. 인프라 복제

애플리케이션이 더 많은 가용성을 요구하는 경우 이는 여러 지역으로 애플리케이션을 복제할 필요가 있음을 의미합니다. 한 지역을 사용할 수 없게 되면 사용자가 다른 지역의 응용 프로그램을 사용할 수 있기 때문입니다.

리소스도 복제해야 하는 애플리케이션을 복제할 때 직면해야 하는 자연스러운 문제가 있습니다. 따라서 응용 프로그램의 요구 사항에 따라 모든 리소스를 기록하는 것이 중요합니다. 그러나 이와 함께 각 지역의 모든 리소스도 구성하고 프로비저닝해야 합니다.

AWS CloudFormation 템플릿을 재사용하여 일관되고 반복 가능한 방식으로 리소스를 생성할 수 있습니다 . 템플릿을 재사용할 수 있으며 리소스를 한 번 설명하고 여러 지역에 동일한 리소스를 프로비저닝하여 이를 수행할 수 있습니다. 이러한 방식으로 인프라를 여러 지역에 쉽게 복제할 수 있습니다.

3. 기반 시설에 대한 변경 통제

경우에 따라 업그레이드가 필요할 수 있습니다. 예를 들어 Auto-Scaling 시작 구성에서 고성능 인스턴스를 업그레이드해야 하는 필요성 또는 충동이 있습니다. 이를 통해 그룹 내 총 인스턴스 수를 줄일 수 있습니다.

수동 제어, 변경 추적 및 업그레이드는 복잡한 작업일 수 있으며 이러한 모든 작업에 대해 변경된 리소스의 위치를 ​​기억할 필요가 있습니다. AWS CloudFormation 을 사용 하면 템플릿이 프로비저닝된 리소스를 설명하고 설정을 자세히 설명할 수 있습니다. 텍스트 파일 템플릿 간의 인프라 변경 사항을 쉽게 추적할 수 있습니다.

또한 인프라에 대한 변경 사항에 대한 아이디어를 얻기 위해 템플릿과 함께 버전 제어 시스템을 쉽게 통합할 수 있습니다. 이 외에도 누가 변경했는지, 언제 변경했는지 추적할 수도 있습니다. 인프라의 변경 사항을 되돌리려면 이전 템플릿 버전을 되돌릴 수도 있습니다. 따라서 AWS CloudFormation 을 사용하면 인프라 변경 사항을 쉽게 제어하고 추적할 수 있습니다.

결론

위에서 언급한 세부 정보는 일반적으로 AWS CloudFormation과 연결됩니다. 이는 CloudFormation의 기능과 사용자가 애플리케이션을 실행할 수 있는 편안함에 중점을 둔 통찰력입니다.

AWS CloudFormation은 모범 사례를 자동화하고 글로벌 수준에서 인프라를 확장합니다. 가장 좋은 점은 CloudFormation을 다른 AWS 서비스와 통합할 수 있다는 것입니다. 또한 개인 및 타사 리소스를 충분히 관리할 수 있습니다.

AWS CloudFormation을 사용하려면 자세한 내용을 이해하고, 통합하려는 내용을 알고, 애플리케이션 실행을 원활하게 수행하는 데 도움이 되는 AWS 컨설팅 서비스 를 받아야 합니다. 자세히 알아보려면 연락하세요.