관리 메뉴

피터의 개발이야기

[AWS] EC2: 태그를 기반으로 인스턴스 시작 또는 중지 본문

AWS

[AWS] EC2: 태그를 기반으로 인스턴스 시작 또는 중지

기록하는 백앤드개발자 2022. 6. 4. 14:37
반응형

 

ㅁ 개요

 ㅇ AWS 사용하는 모든 자원은 비용이 발생하기 때문에 사용하지 않을 시에는 정지해야 한다.

 ㅇ RDS와 EC2에 태그만 추가하면 이를 간편하게 구현하기 위해 자동으로 끄고 켜지도록 되어 있다.

 ㅇ 현재 구성되어 있는 AWS 솔루션을 분석하여 그 방법에 대해서 정리하였다.

 

 

 ㅇ Instance Scheduler 솔루션을 동영상으로 설명해주고 있다.

 


ㅁ Instance Scheduler on AWS 솔루션이란? 

Instance Scheduler on AWS 솔루션은 Amazon Elastic Compute Cloud(Amazon EC2) 및 Amazon Relational Database Service(Amazon RDS) 인스턴스의 시작 및 중지 일정을 구성하여 AWS 리소스 비용을 제어하는 데 도움이 됩니다. 페이지 이동

 ㅇ AWS 솔루션 개요이다. 위 다이어그램은 솔루션의 구현 가이드와 이에 수반되는 AWS CloudFormation 템플릿을 사용하여 자동으로 배포할 수 있는 아키텍처를 보여준다.

 

1. AWS CloudFormation 템플릿은 고객이 정의한 간격으로 Amazon CloudWatch 이벤트를 설정합니다.

   이 이벤트는 Instance Scheduler AWS Lambda 함수를 호출합니다. 구성 중에 AWS 리전 및 계정을 정의하고 Instance Scheduler on AWS가 일정을 해당 Amazon EC2 및 Amazon RDS 인스턴스와 연결하는 데 사용할 사용자 지정 태그를 정의하면 됩니다.

2. 이러한 값은 Amazon DynamoDB에 저장되며 Lambda 함수는 실행될 때마다 해당 값을 검색합니다. 그런 다음 해당하는 인스턴스에 사용자 지정 태그를 적용할 수 있습니다.

3. Instance Scheduler의 초기 구성 중에 해당하는 Amazon EC2 및 Amazon RDS 인스턴스를 식별할 태그 키를 정의합니다. 지정한 이름은 일정 생성 시 태그 지정된 리소스에 적용할 일정을 식별하는 태그 값으로 사용됩니다. 예를 들어 솔루션의 기본 태그 이름(태그 키)인 Schedule을 사용하고 uk-office-hours라는 일정을 생성할 수 있습니다. uk-office-hours 일정을 사용할 인스턴스를 식별하려는 경우 값이 uk-office-hours인 Schedule 태그 키를 추가하면 됩니다.

 

 

ㅁ AWS CloudFormation 생성과정 1: 탬플릿 등록

 ㅇ 준비된 템플릿 > Amazon S3 URL을 선택

https://s3.amazonaws.com/solutions-reference/aws-instance-scheduler/latest/aws-instance-scheduler.template

 ㅇ 솔류션에서 제공하는 S3 URL을 입력한다.

 ㅇ 다음을 클릭하여 세부사항 파라메터를 선택한다.

 

 

ㅁ AWS CloudFormation 생성과정 2: 파마메터 설정

 ㅇ 파마메터 설정 창으로 이동 후에 스택이름을 지정하고 특정 파마메터에 대해서만 정리하였다.

 ㅇ 스케줄 대상을 선택한다. EC2와 RDS 모두를 대상으로 하기에 Both를 선택함.

 

 ㅇ 복수의 Region을 선택하여 적용할 수 있다.

 ㅇ 다만 현재 Region만 적용하려면 비워드면 된다

 

 ㅇ 한국 시간대로 설정한다.

 

 

 ㅇ 시작과 정지 테그의 name과 value를 지정한다.

 ㅇ 다음을 클릭한다.

 

 

ㅁ 스택 생성 전 최종 검토 화면

 ㅇ "AWS CloudFormation에서 IAM 리소스를 생성할 수 있음을 승인합니다." 을 체크한다.

 ㅇ 이미 기존에 생성이 되어 있어서 클릭을 진행하지는 않았다.

 

 

ㅁ 생성된 스택 확인

 

 

ㅁ 스택에 의해 생성되 DynamoDB 테이블

 ㅇ 템플릿에서 구체적으로 찾아보면, Resources > EC2DynamoDB에 3개의 테이블이 선언되어 있다.

 

ㅇ ConfigTable과 템플릿

 

 

ㅇ StateTable과 템플릿

 

 

 ㅇ MaintenanceWindowTable

 

 

ㅁ Lambda Scheduler 함수

 

ㅁ 인스턴스에 Tag추가

 ㅇ 인스턴스에 태그를 추가하여 인스턴스를 자동으로 끄고 켤 수 있게 되었다.

 

ㅁ 함께 보면 좋은 사이트

 ㅇ Instance Scheduler on AWS 솔루션

 

Instance Scheduler on AWS | 구현 | AWS 솔루션

Instance Scheduler on AWS 아키텍처 1. AWS CloudFormation 템플릿은 고객이 정의한 간격으로 Amazon CloudWatch 이벤트를 설정합니다. 이 이벤트는 Instance Scheduler AWS Lambda 함수를 호출합니다. 구성 중에 AWS 리전

aws.amazon.com

 ㅇ Instance Scheduler on AWS 솔루션 git 주소

 

GitHub - aws-solutions/aws-instance-scheduler: A cross-account and cross-region solution that allows customers to automatically

A cross-account and cross-region solution that allows customers to automatically start and stop EC2 and RDS Instances - GitHub - aws-solutions/aws-instance-scheduler: A cross-account and cross-regi...

github.com

 ㅇ https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/reference_policies_examples_ec2-start-stop-tags.html

 

EC2: 태그를 기반으로 인스턴스 시작 또는 중지 - AWS Identity and Access Management

이 예제에서는 태그 키 값 쌍 Project = DataAnalytics로 인스턴스를 시작 또는 중지할 수 있도록 허용하는 IAM 정책을 생성하는 방법을 보여줍니다. 단, 태그 키 값 페어 Department = Data가 있는 보안 주체

docs.aws.amazon.com

https://danawalab.github.io/aws/2021/05/03/aws-autostop.html

 

AWS EC2 인스턴스 자동 시작/중지

이번에 소개 드릴 내용은 AWS의 EC2 인스턴스를 시작과 중지를 자동으로 적용하는방법에 대해 알아보도록 하겠습니다. EC2 인스턴스 활용하기에는 편하고 좋은 도구 이지만, 정해진 시간에 인스턴

danawalab.github.io

 

반응형
Comments