[AWS] EC2 aws linux 2, mongoDB, Robo 3T, nginx 연결

soob·2022년 6월 7일
0

deploy

목록 보기
1/4
post-thumbnail

Node.js / MongoDB로 작업한 프로젝트를 AWS EC2를 이용해 배포하고자 한다. 우선 연결 과정부터 보도록 하자.

1. 인스턴스 생성

EC2 대시보드에 들어가서 인스턴스 시작 버튼을 누른다.

사용하고자 하는 AMI를 선택 해준다.
프리 티어 사용 가능(12개월 무료)인 것으로 선택.

키 페어 생성
AWS에서 가상 서버에 접근하려면 개인키(private key)와 공개키(public key)로 구성된 키 페어(key pair)가 필요하다. 공개키는 AWS에 업로드되어 가상 가상 서버에 삽입되고, 개인키는 자신이 소유하지만 훨씬 더 안전하다. 기존에 만든 키 페어가 있다면 기존의 것으로 선택한다.

보안그룹

보안그룹은 aws에서 임대한 가상 방화벽이다. 인바운드 규칙과 아웃바운드 규칙을 설정하여 여러 가지 트래픽을 제어 할 수 있다.
HTTPs, HTTp 트래픽을 허용해 주었다. 인스턴스 생성하고 보안그룹에서 인바운드 규칙 편집으로 바꿔주어도 된다.

설정을 마친 뒤에 인스턴스 시작 버튼을 누른다.

  • 탄력적 IP(Elastic IP) 할당 받아서 바꿔줬다.
    => 인스턴스를 중지하고 다시 실행 시키면 ip가 바뀐다. 탄력적 ip를 사용하면 고정적인 ip를 사용할 수 있다.

2. SSH 접속

1) 터미널을 키고 생성한 키 페어.pem가 있는 경로로 이동한다.

cd {pemkey 경로}

2)key파일에 대한 권한 설정 변경

chmod 400 {pemKey이름}.pem

이 명령을 실행하여 키를 공개적으로 볼 수 없도록 한다. 400은 나에게만 읽기 권한을 부여함.

3) ssh 접속

 sudo ssh -i {pemKeyName}.pem ec2-user@{퍼블릭 IPv4 DNS}

3. MongoDB 설치

Amazon linux에서 mongodb 설치
Ubuntu에서 mongodb 설치

위의 문서대로 설치 해준다.

1) 패키지 관리 시스템 구성

sudo vi /etc/yum.repos.d/mongodb-org-5.0.repo

안에 이 내용을 넣어준다.

[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

2) mongoDB 패키지 설치
linux는 yum / ubuntu는 apt-key

sudo yum install -y mongodb-org

3) mongodb 시작

sudo service mongodb start //시작
sudo service mongodb restart //재시작
sudo service mongodb stop //중지
sudo service mongodb status //상태확인

4) db 계정 생성

mongo

use admin //루트 계정
db.createUser({user: "아이디", pwd: "비밀번호", roles: ["root"]});

use customdb //다른 계정 생성
db.createUser({user: "아이디", pwd: "비밀번호", roles: ["readWrite"]});

5) mongodb config 변경

sudo vi /etc/mongod.conf

모든 곳에서 접속할 수 있도록 하기 위해서 bindIp를 0.0.0.0 으로 수정.
security 주석도 풀어주고 authorization: enabled로 수정.
esc + : wq!(저장하고 나가기)

*security 주석 풀고나서 db 계정 추가하는데 에러가 났다. 다시 주석 처리하고 계정을 추가하자.

6) sudo service mongodb restart
다시 시작 해주자.

4. Robo 3T 확인



Test를 통해 연결 되는지 확인
저장하고 연결.

5. node.js 설치

aws에 node.js 설치
위 링크에 나온 대로 하면 됨.
node.js 설치하면서 최신 버전 v18.3.0으로 설치가 되었다.
node -v 해도 not found가 나오길래 구글링 해보니 V16.15.1 LTS로 사용하면 된다고 한다. nvm install 16.15.1로 설치해주고 nvm use 16.15.1로 하니까 잘 됐다.
node -v / npm -v 확인

6. nginx 설치

Amazon Linux 2에서는 yum을 통한 nginx 설치가 지원되지 않는다.
Amazon Linux에서 사용하는 nginx가 따로 있다.

1) 설치

sudo amazon-linux-extras install -y nginx1

2) 설치 확인

nginx -v

3) 서비스 시작

sudo service nginx start
Redirecting to /bin/systemctl start nginx.service
  • 보안그룹에 포트 80이 설정 되어있는지 확인하고 안되어 있으면 추가해준다.

4) 상태확인

sudo servive nginx status //상태확인

7. 마무리


퍼블릭 주소로 브라우저로 들어가면 이 화면이 나온다. 다른 블로그에 나온 welcome nginx 화면이 아니라서 연결이 안되었나 생각했다. nginx 서비스 종료하고 들어가보니 연결이 끊긴다.

0개의 댓글