저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
AWS API, CLI 활용하기
이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30
EC2
EC2 인스턴스 정보를 가져오는 방법은 다음과 같습니다.
- Filters: 가져온 EC2 인스턴스 정보 중에서 조건대로 걸러내는 옵션입니다.
- Name: 걸러낼 항목입니다. availability-zone, instance-state-name 등 EC2 인스턴스 정보에서 모든 항목을 설정할 수 있습니다.
- Values: 걸러낼 항목의 값을 배열 형태로 설정합니다.
- InstanceIds: 가져올 EC2 인스턴스의 ID를 배열 형태로 설정합니다.
ec2_1.js
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./config.json');
ec2 = new AWS.EC2();
var params = {
Filters: [
{
Name: 'availability-zone',
Values: [
'ap-northeast-1a',
]
}
],
InstanceIds: [ 'i-0e7abc17', 'i-4d7bbd54' ]
};
ec2.describeInstances(params, function (err, data) {
if (err)
console.log(err, err.stack);
else
console.log(data);
});
AWS CLI
$ aws ec2 describe-instances --instance-ids i-0e7abc17 i-4d7bbd54 --filters "Name=availability-zone,Values=ap-northeast-1c"
EC2 인스턴스를 시작하는 방법은 다음과 같습니다.
- InstanceIds: 시작할 EC2 인스턴스의 ID를 배열 형태로 설정합니다.
- DryRun: 테스트 실행 옵션입니다. DryRun 옵션을 사용하면 API 호출 결과가 반영되지는 않지만 API 호출 에러는 그대로 표시되므로 디버깅할 때 유용합니다.
EC2 인스턴스를 재부팅하는 rebootInstances, EC2 인스턴스를 삭제하는 terminateInstances 함수도 사용 방법이 동일합니다.
ec2_2.js
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./config.json');
ec2 = new AWS.EC2();
var params = {
InstanceIds: [ 'i-0e7abc17' ], // 필수
DryRun: false
};
ec2.startInstances(params, function (err, data) {
if (err)
console.log(err, err.stack);
else
console.log(data);
});
AWS CLI
$ aws ec2 start-instances --instance-ids i-0e7abc17 --no-dry-run
$ aws ec2 start-instances --instance-ids i-0e7abc17 --dry-run
$ aws ec2 reboot-instances --instance-ids i-0e7abc17
$ aws ec2 terminate-instances --instance-ids i-0e7abc17
EC2 인스턴스를 정지하는 방법은 다음과 같습니다.
- InstanceIds: 정지할 EC2 인스턴스의 ID를 배열 형태로 설정합니다.
- DryRun: 테스트 실행 옵션입니다.
- Force: 시스템 종료로 정지시키지 않고 강제로 정지시키는 옵션입니다.
ec2_3.js
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./config.json');
ec2 = new AWS.EC2();
var params = {
InstanceIds: [ 'i-0e7abc17' ], // 필수
DryRun: false,
Force: false
};
ec2.stopInstances(params, function (err, data) {
if (err)
console.log(err, err.stack);
else
console.log(data);
});
AWS CLI
$ aws ec2 stop-instances --instance-ids i-0e7abc17 --no-force
$ aws ec2 stop-instances --instance-ids i-0e7abc17 --force
$ aws ec2 stop-instances --instance-ids i-0e7abc17 --no-dry-run
$ aws ec2 stop-instances --instance-ids i-0e7abc17 --dry-run
EC2 인스턴스 생성하는 방법은 다음과 같습니다.
- ImageId: EC2 인스턴스를 생성할 AMI 이미지 ID를 설정합니다.
- MaxCount, MinCount: 생성할 EC2 인스턴스 개수를 설정합니다.
- Monitoring: 세부 모니터링 사용 옵션입니다.
- DryRun: 테스트 실행 옵션입니다.
- IamInstanceProfile: EC2 인스턴스에 사용할 IAM 역할 이름을 설정합니다.
- InstanceType: 인스턴스 유형을 설정합니다.
- KeyName: EC2 인스턴스 접속에 사용할 키 쌍 이름을 설정합니다.
ec2_4.js
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./config.json');
ec2 = new AWS.EC2();
var params = {
ImageId: 'ami-25dd9324', // 필수
MaxCount: 1, // 필수
MinCount: 1, // 필수
Monitoring: { // 필수
Enabled: false
},
DryRun: false,
IamInstanceProfile: {
Name: 'ExampleEC2Role'
},
InstanceType: 't1.micro',
KeyName: 'awskeypair'
};
ec2.runInstances(params, function (err, data) {
if (err)
console.log(err, err.stack);
else
console.log(data);
});
AWS CLI
$ aws ec2 run-instances --image-id ami-25dd9324 --count 1 --monitoring Enabled=false --iam-instance-profile Name=ExampleEC2Role --instance-type t1.micro --key-name awskeypair --no-dry-run
다른 함수들의 사용 방법은 다음 링크를 참조하기 바랍니다.
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.
Published
2014-09-30