반응형
AWS SDK?
- SDK : Software Development Kit의 약자로 특정 서비스를 프로그래밍적으로 제어하기 편리하도록 제공되는 라이브러리들을 의미한다.
- 따라서 AWS SDK는 AWS를 프로그래밍적으로 제어하기 편리하도록 제공되는 라이브러리들을 의미하는 것이다.
- 언어별로 다양한 SDK가 제공되며, 이 중 Node.js의 SDK를 사용해보자.
튜토리얼
패키지 설치
$ npm install aws-sdk --save
- aws-sdk 패키지를 프로젝트에 설치해준다.
- 이렇게 설치한 SDK는 바로 사용할 수 없고, 자격검증이 포함되어야 한다.
- 일반적으로 AWS 환경 위에서 node.js를 돌리거나,
~/.aws
에credentials
파일를 생성하여 자격검증을 진행한다.
자격검증
📃 credentials
[default]
aws_access_key_id = <YOUR_ACCESS_KEY_ID>
aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>
- AWS의 Security and Identity에 위치한 IAM 서비스를 이용해 해당 정보를 받아올 수 있다.
- IAM 서비스에서
Create User
를 하고,User Names
를 설정한뒤Generate an access key for each user
를 클릭하면<YOUR_ACCESS_KEY_ID>
와<YOUR_SECRET_ACCESS_KEY>
에 해당하는 각 값을 얻어올 수 있다. 해당값을 파일에 입력하면 되는 것이다. (해당 키는 외부에 유출되어선 안된다.) - 이제 해당 user에게 인스턴스를 사용할 수 있는 권한을 주어야 한다.
user 탭
으로 돌아가permissions 탭
에서Attach polish
를 누른다.Amazon EC2 full Access
를 체크하고 다음 스텝으로 넘어가면EC2
접근에 대한 모든 권한을 설정한다. (다른 서비스라면 다른 권한을 체크해주어야 한다.) - cf. credentials 관련 문서
사용예제
📃 app.js
var express = require('express');
var app = express();
var AWS = require('aws-sdk');
AWS.config.region = 'ap-northeast-2';
var ec2 = new AWS.EC2();
app.get('/', function(req, res){
res.send('Hello world');
});
app.get('/ec2', function(req, res){
ec2.describeInstances({}, function(err, data) {
res.json(data);
});
});
app.listen(80, function(){
console.log('Connect 80 port');
});
- app.js에
require('aws-sdk')
을 통해 AWS SDK 객체를 불러온다. - AWS.config.region을 통해 어떤 지역의 인프라를 사용할지 적절한 명칭을 찾아 불러온다. 한국의 경우 명칭은
ap-northeast-2
이다. - cf. region list
new AWS.EC2()
를 통해 EC2 객체를 생성한다. (현재 사용중인 서비스가 EC2가 아니라면 다른 것을 사용하면 된다.)/ec2
에 대해 라우팅을 설정해놓았기 때문에/ec2
로 접속시 현재 사용중인 ec2의 리스트를 리턴하는ec2.describeInstances
를 사용해 response에 해당 정보를 넘겨주고 출력하도록 한다.
반응형
'🛠 기타 > 인프라' 카테고리의 다른 글
AWS - S3 (0) | 2021.01.30 |
---|---|
AWS - Scalability (0) | 2021.01.29 |
AWS - EC2 (0) | 2021.01.28 |
AWS - region, availability zone (0) | 2021.01.28 |