Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- WORK폴더
- Java
- list
- aws #ec2 #instance #클라우드 #cloud #it
- JSON #javascript
- 클래스명과 파일명 동일한 이유
- Spring REST Docs #Swagger #JAVA #REST API
- 포트폴리오 작성
- 바인딩
- 인터페이스
- 객체정렬 #Java8
- 서버이전
- 인스턴스오류 #Tomcat #mysql
- 오류해결
- 나중에도 같은문제면 이렇게 시도해봐야겠다
- ROLLUP#합계
- Integer
- Spring #Scheduler #JAVA
- 개발자포트폴리오
- 자바프로그래밍
- dockerfile #dockerrun #빌드
- Tomcat
- 클래스명
- 서터 세팅이 잘못인가
- sql린이#공부중
- 클래스
- iBATIS
- brew #mariadb #Django #Python
- ArrayList
- 근데왜지
Archives
- Today
- Total
HoneyBee
AWS SDK 활용하여 인스턴스 생성 본문
- 사내 교육 시간에 SDK 를 통해 EC2 인스턴스를 생성하는 과제가 있었는데 하는법을 알고 있었지만 그래도 문서화 및 구체적으로 이해하고 싶어 정리했다.
- nodejs 기반으로 되어 있다.
- 방법론 위주로 되어 있기에 문의는 댓글로 요청드립니다.
AWS SDK를 통한 생성
- node js 기반 진행
생성 순서
- 디렉토리 생성 및 nodejs 프로젝트 생성
mkdir aws-ec2-demo
cd aws-ec2-demo
npm init -y
- aws-sdk 모듈 설치
npm install aws-sdk
- 액세스 키 환경 변수로 등록| 액세스 키 추가하는 법 : AWS Console -> IAM 서비스로 이동 -> 좌측 LNB 목록에 사용자 선택 -> 사용자 목록에서 해당하는 사용자 선택 -> 자격 증명 관리 -> 중간쯤에 '보안 자격 증명' 클릭 후 하단에 '액세스 키 만들기' 클릭 후 생성
export AWS_ACCESS_KEY_ID=your_access_key_id
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
- index.js 코드
const AWS = require('aws-sdk');
// AWS 자격 증명 및 한국 리전 설정
AWS.config.update({
region: 'ap-northeast-2', // 한국 리전
// accessKeyId와 secretAccessKey를 명시적으로 설정할 필요 없음
// AWS SDK는 환경 변수를 통해 자격 증명을 자동으로 검색함
});
// EC2 서비스 객체 생성
const ec2 = new AWS.EC2();
const params = {
ImageId: 'ami-045f2d6eeb07ce8c0', // AMI ID
InstanceType: 't2.micro', // 인스턴스 유형
MinCount: 1, // 최소 인스턴스 개수
MaxCount: 1, // 최대 인스턴스 개수
SubnetId: '{ 노출 위험으로 가리기 }', // 서브넷 ID를 명시합니다
// KeyName: 'your-key-pair-name', // (옵션) SSH 키 페어를 지정하려면 여기에 추가
};
// EC2 인스턴스 생성
ec2.runInstances(params, (err, data) => {
if (err) {
console.error('Could not create instance', err);
return;
}
const instanceId = data.Instances[0].InstanceId;
console.log('Created instance', instanceId);
// 인스턴스 태그 설정
const tagParams = {
Resources: [instanceId],
Tags: [
{
Key: 'Name',
Value: 'SDK Sample'
}
]
};
ec2.createTags(tagParams, (err) => {
if (err) {
console.error('Error tagging instance', err);
return;
}
console.log('Instance tagged');
});
});
- 실행 명령어
node index.js
첫번째 시도
- ami id 에러
- ami id 가 존재하지 않는 id 여서 발생
- 존재하는 id로 AWS console에서 찾아서 기입
{ code: 'InvalidAMIID.Malformed', time: 2024-07-28T05:02:47.765Z, requestId: '{ 노출 위험으로 가림 처리 }', statusCode: 400, retryable: false, retryDelay: 10.635335762119524 }
두번째 시도
- AMI AWS console 상에 있는거로 변경하고 두번째 시도
- subnet이 없어서 발생한 문제
- subnetId 추가하고 실행
{ code: 'VPCIdNotSpecified', time: 2024-07-28T05:03:06.258Z, requestId: '{ 노출 위험으로 가림 처리 }', statusCode: 400, retryable: false, retryDelay: 9.14876437626888 }
세번째 시도
- 성공
(node:67531) NOTE: The AWS SDK for JavaScript (v2) will enter maintenance mode on September 8, 2024 and reach end-of-support on September 8, 2025.
Please migrate your code to use AWS SDK for JavaScript (v3).
For more information, check blog post at https://a.co/cUPnyil
(Use node --trace-warnings ...
to show where the warning was created)
Created instance i-0acc9a893239546e4
Instance tagged
```