[aws] ec2 amazon linux 2에서 nginx & git & node 설치

Edward Hyun·2022년 6월 22일
0

AWS+MSA

목록 보기
10/24

nginx

sudo yum install nginx 로 안됨. 왜냐면 아마존 리눅스에서 사용하는 엔진엑스가 따로 있기 때문

sudo amazon-linux-extras install nginx1 

로 설치하자.

설치되는 directory는 /etc/nginx

sudo service nginx start

로 서비스 시작

출처 ::
https://velog.io/@ant-now/AWS-서버에-Nginx-설치
https://msyu1207.tistory.com/entry/AWS-EC2에-NGINX-설치-및-사용하기

git

sudo yum update -y
sudo yum install git -y
git version

출처: https://gamoo12.tistory.com/205

node

공식 자습서 대로 진행하면
https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v3/developer-guide/setting-up-node-on-ec2-instance.html

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh

nvm install node에서 에러가 난다.
/lib64/libm.so.6: version 'GLIBC_2.27′ not found (required by node)
관련 문서 : https://exerror.com/node-lib64-libm-so-6-version-glibc_2-27-not-found-required-by-node/

이 때 nvm install node 대신

nvm install 16

으로 하면 끝남.

port 열기

인스턴스 생성 시 보안 그룹을 설정할 때 3000번 PORT를 따로 설정하지 않았으므로 15.164.98.203:3000 주소에 요청을 보내도 응답받을 수 없다. 따라서 사용하는 인스턴스의 인바운드 규칙을 수정해야 한다.

AWS 홈페이지에서 왼쪽 탭의 네트워크 및 보안 탭에 있는 보안 그룹을 클릭한다.
이전에 생성한 test-security-group 을 체크 후 아래 인바운드 규칙을 클릭한다.
인바운드 규칙 편집을 클릭 후 아래와 같이 3000PORT 규칙을 추가한다.

규칙 저장 후 15.164.98.203:3000 주소로 GET 요청을 보내면 로컬에서 인스턴스에서 실행중인 서버에 접근할 수 있다. 아래 결과는 포스트맨을 통해서 GET 요청을 수행한 결과이다.

출처 :
https://velog.io/@limsw/AWS-EC2에-Node.js-서버-배포하기

고정ip 설정

참고:
https://any-ting.tistory.com/71

배포 환경 만들기

참고: GitHub과 Node.js Express를 이용한 자동배포 환경 만들기(feat. AWS-EC2, AWS CodeDeploy, AWS CodePipeline)
https://ookm1020.tistory.com/4?category=858485
https://ookm1020.tistory.com/5?category=858485
https://ookm1020.tistory.com/7?category=858485

pm2 실행

sudo npm install pm2 -g // 설치
pm2 start ./dist/main.js --watch //실행

nestjs -> docker-> cicd

[aws] ECS에 nestJS 프로젝트 배포하기 - CI/CD
출처:
https://bakjuna.tistory.com/106?category=875809

** nestjs는 정적 서버가 아니기 때문에 빌드 과정이 필요한데
이를 위해 훅크를 이용한다.

필요한 파일은
appspec.yml, Procfile, execute-deploy.sh

(1) appspec.yml

version: 0.0
os: linux
files:
  - source:  /
    destination: /home/ec2-user/build
permissions:
  - object: /home/ec2-user/build
    owner: ec2-user
    group: ec2-user
    type:
      - file
      - directory
hooks:
  ApplicationStart: #배포 후 실행할 명령
    - location: execute-deploy.sh
      runas: ec2-user

(2) Procfile

web: npm run deploy

(3) execute-deploy.sh

#!/bin/bash
source /home/ec2-user/.bash_profile
echo "try to build.........."
cd /home/ec2-user/build
# nvm install 16 // 간혹 npm 설치가 인식 안될 때 설치를 넣어준다.
npm run build

이렇게 하면 정적 소스뿐 아니라 배포후 빌드까지 진행되어 pm2 --watch로 인해 빌드된 내용으로 자동 실행이 된다.

profile
앱&웹개발(flutter, vuejs, typescript, react), 인공지능(nlp, asr, rl), 백엔드(nodejs, flask, golang, grpc, webrtc, aws, msa, nft, spring cloud, nest.js), 함수형 프로그래밍(scala, erlang)을 공부하며 정리합니다.

0개의 댓글