-
AWS EC2, Node js 서버 만들기 (API 만들기)DEV/aws 2023. 1. 10. 16:45
주변에서 친구들이 AWS AWS! 난리를 친다.
클라우드가 답이며 미래라며 신봉하는 친구들이 있다...
(그냥 필요할 때 하면 되는 거 아닌가...?)
아무튼 점차 클라우드의 의존도가 높아지고 있는 것은 사실이다.
(지금 다양한 업체의 대규모 서비스도 AWS, Microsoft Azure 등 클라우드 기반으로 서비스를 운영하고 있으니까...)
아무튼 나도 Node도 공부해야 하고 AWS도 궁금하여 한번 테스트 서버를 구축해보려고 한다.
해당 글은 2023.01.10일을 기준으로 한다.
아직 회원가입을 안했다고...?
https://seokbong.tistory.com/123
1. AWS 로그인 후 EC2 검색
상단 검색창에 EC2를 검색하자.
2. EC2 대시보드
EC2 대시보드에서 인스턴스(실행 중) 클릭 (Running instance)
3. 인스턴스 시작(우측 상단) 클릭
4. 서버 설정
서버 이름을 작성,
OS 선택 (본인은 Ubuntu를 선택함)
인스턴스 유형은 t2.micro (프리 티어 사용 가능) 선택함.
(추가적으로 프리 티어에서 사용 가능한 인스턴스가 존재한다.)
그 외 나머지 옵션은 기본값을 지정
모든 설정이 완료된 경우 우측 "인스턴트 시작" 버튼을 클릭
5. 키 페어 생성
서버 설정에서 키 페어를 설정하지 않으면 키 페어를 생성하는 것이 좋다고 알림 창을 하나 띄워줌
키 페어 이름을 입력하고 "키 페어 생성" 클릭
그러면 .pem 파일을 하나 자동으로 다운로드하게 된다.
그다음 우측의 "인스턴트 시작"을 다시 클릭하자.
6. 인스턴스 시작 완료
인스턴스 시작이 완료!
"모든 인스턴스 보기"를 눌러서 인스턴스를 확인하자.
참고로 생성 직후 인증을 위해 약간의 시간이 필요할 수 있다.
잠시 기다리면 인증이 완료된다.
7. 연결
Mac OS, Linux의 경우 터미널, Windows의 경우 Putty 등 다양한 방법으로 ssh 연결이 가능하다.
다른 블로그들을 보면 위 방식을 많이 사용했다.
근데 내가 봤을 때는 그냥 브라우저에서 연결을 지원하더라..
(최근에 생긴듯...?)
본인은 그냥 브라우저에서 연결해 보겠다.
우측 상단의 "연결"을 누르고...
EC2 인스턴스 연결 --> 우측 하단 "연결"
접속이 잘 됨을 알 수 있다.
8. on console
나는 nodejs가 필요하다.
(해당 글 하단에 내가 작성한 NodeJS 코드 링크를 달아두었다. 참고하시고 싶으신 분은 링크를 참조해주세요!)
콘솔에 한 줄씩 입력해 주자.
sudo apt update sudo apt install nodejs sudo apt install npm
아! 이 시점에서 준비물이 필요하다.
서버에 올릴 node를 github에 올리고 AWS 서버에서 git clone을 하여 받아야 한다.
깃허브 name과 password를 물어보면 본인의 깃허브 name와 password(password 자리에는 깃허브 비밀번호가 아닌 토큰값을 넣어야 함)를 넣어서 설정하자.
다운로드가 끝나면 해당 폴더로 진입하여
npm install
의존성 패키지를 모두 받아주자.
그리고 나서 node (js명).js로 실행해주자.
(nodemon을 쓰는 경우 nodemon으로 실행)
9. 보안 설정
다시 AWS 대시보드로 들어가 포트 설정을 해주도록 하자.
네트워크 및 보안 --> 보안 그룹 --> (우측하단) "인바운드 규칙 편집"
규칙 추가 후 유형을 사용자 지정 TCP로 지정
포트 범위는 노드에서 설정한 포트로 지정!!
10. 확인.
AWS에서 정상적으로 node가 실행되었다면 AWS 대시보드의 인스턴스 세부정보에서 퍼블릭 IPv4 주소를 확인하자.
확인 후 웹 브라우저에 본인이 만든 노드 설정에 맞춰 해당 주소를 입력해보자.
(IPv4주소):(노드포트)/라우트
본인이 만든 API는 정상적으로 작동하였다.
THE 꿀잼스
처음 해보는 API 만들기... 정말 재미있었다.
일단 실행이 되는지 확인하기 위해 대충 만든 node를 이제 수정해야겠다.
(API 구성인 노드 파트는 따로 나중에 작성해보겠다.)
* 구현한 NodeJS 코드를 참조하고 싶은 경우...
https://github.com/Seokhyeon-Park/stock-index-server/blob/master/README.md
본인은 사용 후 인스턴스를 중지하였다.
ref
https://velog.io/@rheey90/AWS-EC2-Node.js-%EC%84%9C%EB%B2%84-%EB%B0%B0%ED%8F%AC
'DEV > aws' 카테고리의 다른 글
AWS Bedrock이란..? (0) 2024.01.12 AWS Kendra SDK(Vanilla javascript) 기본 설정 - CDN, Client, QueryCommand (0) 2024.01.12 AWS Zendesk에 Kendra 끼얹기 (1) 2024.01.05 AWS Kendra 준비... (2) 2024.01.04 AWS 아마존 AWS(Amazon Web Services) 회원가입 (0) 2023.01.10