왼쪽의 비디오에서 Rendy 씨가
AWS Data Pipeline을 사용하여 EC2 인스턴스를 중지하는 방법을 보여 줍니다.

 

오른쪽의 비디오에서 Rendy 씨가
AWS Data Pipeline 역할을 생성하는 방법을 안내합니다.

stop-start-ec2-instances-rendy
aws-kc-slate

인스턴스를 종료하지 않고 예약된 간격으로 내 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스를 프로그래밍 방식으로 중지 및 시작하기 위한 가장 좋은 방법은 무엇입니까?

AWS Data Pipeline을 사용하여 예약된 간격으로 EC2 인스턴스를 프로그래밍 방식으로 시작 및 중지할 수 있습니다. Data Pipeline은 외부 종속성 없이 설정된 일정에 따라 AWS 기술을 사용하고 AWS CLI(AWS 명령줄 인터페이스) 명령을 실행합니다. Data Pipeline은 Amazon S3(Amazon Simple Storage Service)에 로그를 작성하고 IAM 역할의 컨텍스트에서 실행되므로, 키 관리 요구 사항이 제거됩니다. 또한 Data Pipeline은 비용 효율적입니다. 예를 들어, Data Pipeline 프리 티어를 사용하여 매일 한 번 인스턴스를 중지하고 시작할 수 있습니다. 자세한 내용은 AWS Data Pipeline 요금을 참조하십시오.

참고: Amazon EC2 t1.micro 인스턴스는 Data Pipeline 실행을 위한 호스트 환경으로 시작됩니다. 이 목적으로 시작된 EC2 인스턴스는 50분의 기본 제한 시간 동안 실행됩니다. Data Pipeline의 실행을 호스팅하는 데 사용된 모든 리소스는 계정에 발생합니다. 파이프라인을 실행하여 100분 이내에 EC2 인스턴스를 중지하고 다시 시작하면 EC2 t1.micro 인스턴스를 계속 실행하는 것과 동일한 양의 리소스가 사용됩니다.

본 기사에 설명된 방법이 보존된 것보다 많은 리소스를 소비하지 않도록 하나 이상의 EC2 t1.micro 또는 더 큰 인스턴스를 100분 이상(중지하는 데 50분, 시작하는 데 50분) 중지하고 다시 시작해야 합니다.

AWS 관리형 정책은 읽기 전용이므로 Data Pipeline에서는 DataPipelineDefaultResourceRole 역할과 연결된 기본 정책이 AmazonEC2RoleforDataPipelineRole AWS 관리형 정책인 경우 이 역할에 대한 고객 관리형 정책을 생성해야 합니다. DataPipelineDefaultResourceRole에 연결된 정책이 AWS 관리형 정책이 아닌 경우 고객 관리형 정책을 생성할 필요가 없습니다. 대신, DataPipelineDefaultResourceRole 역할에 할당된 정책을 편집할 수 있습니다.

지정된 시간에 EC2 인스턴스를 프로그래밍 방식으로 시작 및 중지할 수 있도록 Data Pipeline을 설정하려면 다음 절차를 따르십시오.

DataPipelineDefaultResourceRole에 대한 사용자 지정 정책 생성 및 검증

1.   AWS Management Console의 보안 및 자격 증명 섹션에서 IAM(Identity & Access Management)을 선택하여 Identity and Access Management 대시보드를 엽니다.

2.   [Policies]를 선택합니다.

3.   정책 생성을 선택하여 정책 생성 페이지를 엽니다.

4.   Create Your Own Policy(자체 정책 생성)에 대한 옵션을 선택합니다.

5.   정책 이름을 입력하고 "DataPipelineDefaultResourceRole_EC2_Policy"와 같이 DataPipelineDefaultResourceRole에 연결합니다.

6.   "Data Pipeline을 사용하여 EC2 인스턴스를 시작하고 중지할 때 DataPipelineDefaultResourceRole에 연결된 정책"과 같이 정책에 대한 설명을 입력합니다.

7.   새 정책에 대한 정책 문서 섹션에 다음 정보를 입력합니다.

{
   "Version": "2012-10-17",
  "Statement": [
      { 
        "Effect": "Allow",
        "Action": [
            "s3:*", 
            "ec2:Describe*",
            "ec2:Start*", 
            "ec2:RunInstances",
            "ec2:Stop*", 
            "datapipeline:*",
            "cloudwatch:*" 
          ],
          "Resource": [
              "*" 
          ]
      }
    ]
}

참고: 여기에 설명된 것과 동일한 권한을 현재 "DataPipelineDefaultResourceRole" 역할과 연결된 모든 고객 관리형 정책에 적용하는 것이 좋습니다.

8.   [Validate Policy]를 선택합니다.

9.   정책을 검증한 후에는 정책 생성을 선택하여 새 정책을 생성합니다.

정책을 DataPipelineDefaultResourceRole 역할에 연결

1.   Policy Type(정책 유형) 필터 표현식에 "DataPipeline" 또는 다른 적절한 접두사를 입력합니다. 이 정책 옆에 있는 상자를 선택한 다음 Policy Actions(정책 작업) 드롭다운 메뉴에서 연결 옵션을 선택합니다.

2.   Attach Policy(정책 연결) 페이지에서 "datapipeline" 필터 표현식을 입력한 다음 필터에 의해 반환되는 DataPipelineDefaultResourceRole 항목 옆에 있는 확인란을 선택합니다.

3.   페이지 하단에 있는 Attach Policy(정책 연결)을 선택하여 새 정책을 DataPipelineDefaultResourceRole에 연결합니다.

Data Pipelines를 생성하여 AWS CLI 명령 실행

1.   Data Pipeline 콘솔을 엽니다.

2.   Create New Pipeline(새 파이프라인 생성)을 선택하고 다음 정보를 입력하여 파이프라인 두 개를 생성합니다.
이름: 예를 들어, EC2 인스턴스 시작EC2 인스턴스 중지입니다.
설명: 필요에 따라 파이프라인과 관련된 세부 정보를 제공합니다.
소스: Build using template(템플릿을 사용하여 빌드)을 선택하고 Run AWS CLI command(AWS CLI 명령 실행) 템플릿을 선택합니다.
AWS CLI 명령: 파이프라인에서 수행되는 사항을 지정합니다. 파이프라인 두 개를 생성합니다. 하나는 aws ec2 start-instances 명령을 실행하기 위한 것이며 다른 하나는 aws ec2 stop-instances 명령을 실행하기 위한 것입니다.

참고: ec2 start-instancesec2 stop-instances 모두 --region 파라미터에 대한 유효한 값이 필요합니다.

예를 들어, 다음 명령을 사용하여 지정된 EC2 인스턴스를 시작할 수 있습니다.

aws ec2 start-instances --instance-ids i-abcd1234 i-987a654b i-ba154f3c --region us-east-x 

이 명령은 시작한 것과 동일한 EC2 인스턴스를 중지하는 데 사용되는 구문을 제공합니다.

aws ec2 stop-instances --instance-ids i-abcd1234 i-987a654b i-ba154f3c --region us-east-x 

중요 --instance-ids 파라미터로 전달된 인스턴스 ID가 없는 경우 전체 명령이 실패하며 인스턴스가 중지 또는 시작되지 않습니다. 지정된 인스턴스 ID 중 하나라도 종료되면 문제가 됩니다. 예를 들어, 인스턴스 ID i-abcd1234가 종료되면 aws ec2 start-instances 예에서는 지정된 인스턴스 중 어떤것도 시작하지 않습니다. 이 시나리오를 방지하기 위해 별도의 세미콜론으로 구분된 명령의 실행을 고려하십시오.

aws ec2 start-instances --instance-ids i-abcd1234 --region us-east-x;
aws ec2 start-instances --instance-ids i-987a654b --region us-east-x;
aws ec2 start-instances --instance-ids i-ba154f3c --region us-east-x

AWS CLI를 사용하여 EC2 인스턴스를 시작 및 중지하는 방법에 대한 자세한 내용은 AWS CLI 설명서의 start-instancesstop-instances를 참조하십시오.

Data Pipeline 일정 및 로깅 구성

1.   적절한 일정 조정 정보로 각 Data Pipeline 일정을 구성합니다. 자세한 내용은 파이프라인 일정 조정을 참조하십시오.

2. 콘솔에 Amazon S3 위치를 지정하거나 SDK 또는 CLI의 기본 객체에 있는 pipelineLogUri를 사용하여 파이프라인 생성 시 파이프라인 수준 로깅을 활성화합니다. 자세한 내용은 파이프라인 로그 보기를 참조하십시오.

참고: Data Pipeline 로깅은 필수 사항이 아닙니다. 그러나 활성화된 경우 Data Pipeline 검증을 수행할 때 콘솔에 경고가 표시됩니다.

3.   보안 액세스 옵션을 설정합니다.
- IAM 역할: 사용자 지정 파이프라인 역할: DataPipelineDefaultRole 선택
- EC2 인스턴스 역할: DataPipelineDefaultResourceRole 선택

참고: Data Pipeline은 사용자에 필요한 IAM 역할을 생성합니다.

역할 권한 업데이트 및 파이프라인 활성화

1.   AWS Management Console에서 IAM을 선택한 다음 역할을 선택합니다.
– 비관리형 정책을 사용하고 있는 경우 DataPipelineDefaultResourceRole 역할을 선택하고 "DataPipelineDefaultResourceRole에 대한 사용자 지정 정책 생성 및 검증"의 7단계에 설명된 대로 연결된 정책을 편집합니다.
– 그렇지 않은 경우 DataPipelineDefaultResourceRole에 대한 사용자 지정 정책 생성에 설명된 대로 DataPipelineDefaultResourceRole을 사용자 지정 정책에 연결합니다. 자세한 내용은 파이프라인 편집을 참조하십시오.

2.   콘솔에서 활성화를 선택하여 파이프라인을 활성화합니다. 콘솔에서 Data Pipeline 활동을 모니터링하여 해당 작업이 일정에 따라 성공적으로 완료되었는지 확인할 수 있습니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2015년 5월 21일

업데이트됨: 2018-08-24