0. 터미널 접속하기
✔︎mac
: Mac은 ssh가 있어서, 터미널 명령어로 바로 접근 가능
: 터미널 열기 (spotlight에 terminal 입력)
* spotlight 단축키 : command + space
sudo chmod 400 받은키페어를끌어다놓기
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
예시는 다음과 같다.
ssh -i /path/my-key-pair.pem ubuntu@12.345.678.90
중간에 yes/no 입력하는 부분 나오면 yes 입력하고 enter
✔︎window
: window는 ssh가 없으므로, git bash라는 프로그램을 이용
: gitbash 실행하기
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
예시는 다음과 같다.
ssh -i /path/my-key-pair.pem ubuntu@12.345.678.90
중간에 yes/no 입력하는 부분 나오면 yes 입력하고 enter
1. node.js 설치하기
(복붙하면 바로 실행됨 걱정x, 중간에 멈추고 sudo apt-get install -y nodejs 나오면 enter 한 번 눌러주면 됨)
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
설치확인
node -v
npm -v
2. mongoDB 설치하기 (mongoDB 5.0: 220325 기준 최신 안정화 버전)
(복붙하면 바로 실행됨 걱정x, 중간에 멈추고 sudo apt-get install -y mongodb-org 나오면 enter 한 번 눌러주면 됨)
❗️ubuntu 버전 확인 후 (ubuntu 18.04 or ubuntu 20.04) 맞는 버전으로 설치
* ubuntu 버전 확인방법
cat /etc/issue
✔︎ ubuntu 18.04 버전
* 이전 게시물에서 이어서 하는 경우 ubuntu 버전을 18.04로 설치했기 때문에 해당 버전으로 설치하면 됨
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
✔︎ ubuntu 20.04 버전
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
설치확인 (아무것도 안 뜨면 성공)
sudo service mongod start
3. mongoDB 접속 계정 생성하기
방금 만든 mongoDB를 외부에 열어주기 전에, 접속에 필요한 아이디와 비밀번호를 세팅하기. 세팅 안 하면 누구나 열어볼 수 있음.
mongo
❗️ 1번 방법, 2번 방법 중 하나로만 원하는 방법으로 생성하기
(6.에서 프로젝트 몽고디비 주소 변경하는 방법이 조금 다름)
1번 방법: admin(최고 관리자)로만 사용하기
# admin(최고 관리자) 등록
use admin;
# 계정 생성하기
db.createUser({user: "test", pwd:"test", roles:["root"]});
2번 방법 : 세부 관리자 사용하기 (원하는 db에 따로 권한을 주기)
예시 설명 : 최고관리자 admin 등록하고 나서 권한이 생기면 -> 세부관리자 hello 등록
# admin(최고 관리자) 등록
use admin;
# 계정 생성하기
db.createUser({user: "test", pwd:"test", roles:["root"]});
# 원하는 서버이름 적기
use hello;
# 계정 생성하기
db.createUser({user: "test", pwd:"test", roles:["dbOwner"]});
계정 생성 확인해보기 (정상적으로 들어갔는지)
# 생성된 계정이 권한 확인이 가능한 상태인지 확인 (정상적으로 처리되면 1 리턴됨)
db.auth("아이디", "비밀번호")
# 계정 권한 확인
db.getUsers();
계정 생성 완료 되었으면 나가기
# 나오기
exit
# MongoDB 재시작
sudo service mongod restart
4. mongoDB 외부에 열어주기 (권한 설정)
sudo vi /etc/mongod.conf
# sudo: 관리자(SuperUser) 권한으로 다음을 실행
# => "관리자 권한으로 /etc 폴더 아래 mongod.conf 파일을 Vim으로 켜줘!"라는 뜻
입력하려면 i 누르고 키보드 방향키로 이동하면서 수정한다.
다음과 같은 내용을
아래와 같이 바꿔준다.
❗️0.0.0.0 확인, # 뺐는지 확인, 스펠링 확인!!! 오류의 주범!!!!
authorization: enabled
# 내용 저장하고 에디터 종료하기. esc 누르고 다음 입력.
:wq
# 재시작
sudo service mongod restart
5. 서버 연결되는 지 중간에 확인하기
EC2 인바운드 규칙을 추가하지 않으면 서버연결, 디비연결 통로가 막혀있다.
따라서 인바운드 규칙을 먼저 추가해주어야한다.
✔︎ 인바운드 규칙 추가
EC2 로그인, 인스턴스 페이지 이동
https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2#Instances:
보안그룹 클릭
인바운드 규칙 편집 클릭
사용자 지정 TCP 27017 Anywhere-IPv4 추가
HTTP Anywhere-IPv4 추가
통로를 열어주었다면, 다시 터미널로 이동해서 내 프로젝트 파일을 실행하기
<터미널로 이동>
✔︎ git clone 내 깃허브 레파지토리 주소 입력 enter
git clone https://github.com/account/test.git
✔︎ cd 폴더이름(레파지토리 이름) enter
* 위에서 클론하고 나서 생긴 폴더 이름임
cd test
✔︎ npm i
npm i
✔︎ 포트 포워딩 터미널에 입력
❗️ 해당하는 인스턴스 유형에 따라 둘 중 하나 입력하기
* 인스턴스 유형 t2(t2.micro, t2.small)로 선택했을 경우
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
* 인스턴스 유형 t3로 선택했을 경우
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
✔︎ node app.js (node.js 기본 파일 실행)
node app.js
<프로젝트 폴더로 이동>
6. 내 프로젝트 폴더의 mongodb 주소를 다음과 같이 변경해줌.
❗️ 3. 에서 했던 방법에 따라서 둘 중에 해당되는 것으로 바꾸면 됨.
(1) 3. 에서 1번 방법으로 했을 때 (admin)
const connect = () => {
mongoose.connect('mongodb://test:test@localhost:27017/admin',
{
dbName:"hello",
}
).catch((err) => console.log(err));
};
(2) 3. 에서 2번 방법으로 했을 때 (세부 관리자)
const connect = () => {
mongoose.connect('mongodb://test:test@localhost:27017/hello')
.catch((err) => console.log(err));
};
7. robo3T 켜기
- 노트북 두개 모양 클릭하기
- create 누르기
connection 정보 다음과 같이 작성
상단 Authentication 탭을 클릭합니다.
- Perform authentication 체크박스를 클릭
- 생성한 계정의 아이디와 비밀번호를 입력하고 좌측 하단 Test 눌러서 초록불 뜨나 확인
- 'save'를 클릭
❗️ 3. 에서 했던 방법에 따라서 둘 중에 해당되는 것으로 바꾸면 됨.
(1) 3. 에서 1번 방법으로 했을 때 (admin)
(2) 3. 에서 2번 방법으로 했을 때 (세부 관리자)
참고자료
'Server' 카테고리의 다른 글
[Server] 인터넷 통신 | 인터넷에서 컴퓨터는 어떻게 통신할까? | 패킷, IP프로토콜 (0) | 2022.04.26 |
---|---|
[Server] ip주소란 무엇일까? | 공유기 하나로 어떻게 여러대의 컴퓨터가 나눠쓸까? (0) | 2022.04.18 |
[Server] PM2로 Node.js 무중단 서비스하기 | pm2 reload restart 차이 (0) | 2022.04.01 |
[Server] File Zilla 파일질라로 서버에 파일 올리기 (0) | 2022.03.25 |
[Server] AWS EC2 서버 접속하기 (0) | 2022.02.20 |