Cute Bow Tie Hearts Blinking Pink Pointer

AWS

AWS 이용해서 웹 애플리케이션 배포하기 2

청포도 에이드 2022. 5. 13. 15:41
728x90

목차

  • 탄력적 IP 설정하기
  • 할당받은 IP로 터미널 연결하기(조작하기)
  • 구동환경 세팅하기
  • 배포하기(로컬에서 작업한 파일 누구나 다 볼 수 있게 연결하기)

 

탄력적 IP 설정하기

 

여기서, 탄력적 IP란? 접속할 때마다 할당된 ip주소가 바뀌는데 이를 고정시켜주는 것!

 

1) 검색창에 치면,

 

 

2) 탄력적 IP 클릭

 

 

3) 탄력적 ip 주소 할당 클릭(저는 미리 만들어놓음. 처음이면 아무 것도 안뜨는 게 맞다.)

 

 

4) 할당

 

 

5) 할당된 ip가 뜬다.

 

 

6) 탄력적 ip 주소 연결 클릭

 

7) 연결한 인스턴스 선택

 

지난 게시물에서 만들었던 test 인스턴스를 연결하겠다.

 

8) 연결

 

 

9) 확인

 

탄력적 IP가 설정되었음을 확인 할 수 있다.

 

 

터미널 연결하기(할당 받은 ip주소와 연결)

 

1) 아이디 클릭

 

2) 연결

 

3) 복사해서 터미널에 붙여넣기

wsl인 경우 앞에 sudo 붙이는 거 잊지말자.

 

4) 터미널에서 key-pair 있는 디렉토리로 이동 후 복붙해야함.

 

5) wsl는 sudo 붙이기.

 

sudo ssh -i "my-key.pem" ubuntu@ec2-3-39-241-7.ap-northeast-2.compute.amazonaws.com

6) 아래와 같은 문구가 뜨면,

 

yes 치고 엔터

 

7) 연결 완료

 

 

 

구동 환경 세팅하기

 

여기서 할당 받은 서버 컴퓨터엔 아무 것도 없기때문에! 서버 구동 환경을 세팅해주어야한다.

 

터미널에 아래 순서대로 입력한다.

 

1) node 설치하기

 

sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential
sudo apt install net-tools
sudo apt install curl

2) nvm 설치

 

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

nvm 버전 확인

nvm --version

nodejs LTS 설치

nvm install node --lts

설치된 노드 버전 확인

 

nvm ls
node --version
npm --version

3) mysql 설치하기

 

sudo apt install mysql-server -y

버전 확인

mysql --version

sevice 명령어로 실행하기

sudo service mysql start
sudo mysql -u root

루트 계정 비밀번호 설정해준다.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '[password]';

setting 하기

sudo mysql_secure_installation

실행

sudo mysql -uroot -p[패스워드]

 

use mysql
UPDATE user SET plugin='caching_sha2_password' WHERE User='root'

 

mysql user  계정 생성하기

 

create user 'userid'@'%' identified WITH mysql_native_password by 'userpassword';

생성한 user 계정에 모든 권한 부여

grant all privileges on *.* to 'userid'@'%' with grant option; FLUSH PRIVILEGES;
exit
sudo service mysql restart
mysql -u[userid] -p[userpassword]

mysql 외부접속 설정

 

sudo netstat -ntlp | grep mysqld

mysqld.cnf 파일 찾기

 

cd /etc/mysql/mysql.conf.d
ls
sudo vi mysqld.cnf

insert 모드에서

 

bind-address 부분을 0.0.0.0 으로 바꿔주기 후 저장.(esc -> wq! 엔터)

 

service mysql restart
sudo netstat -ntlp | grep mysqld
ifconfig

 

Nginx(제품이름)

 

웹서버 구축하는데 사용한다.

 

-리버스 프록시라고 한다.

https 설정이 쉽다.

1) 기본 설정

sudo apt update && sudo apt upgrade
sudo apt install nginx
sudo service nginx start
# sudo service nginx status nginx 상태를 확인할 수 있는 명령
#sudo service nginx stop

 

 

cd /etc/nginx/sites-enabled
ls
sudo vi default

 

root ~~ 라는 명령어는

app.get('/') 까지랑 동일하다.

 

default 파일의

location 안에서

proxy_set_header HOST $host;
proxy_pass http://127.0.0.1:3000;
proxy_redirect off;

 

를 추가한다.

type 어쩌고 저쩌고는 주석처리한다.

 

저장후, (esc->wq!->enter)

 

sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

뜨면 잘된것

sudo service nginx restart

 

로컬에서 작업한 파일, 연결하기

 

 

 

1) 로컬에서 한 작업을 git에 올린 뒤, 할당 받은 ip로 접속해서 git clone 받는다.(작업내용이 수정될경우 git pull)

 

 

간편히 사용할 수 있는 테스트용 깃헙 ↓ (빌드까지 마쳐있음)

git clone -b next_project --single-branch https://github.com/ingoo-blockchain/ingooTemplate.git

2) Next 빌드하기

cd ingooTemplate
cd next_front
npm install
npm run start

원래는 원격 ip주소에서 빌드를 해야하는데(로컬에서 빌드 x)

무료로 사용할 수 있는 인스턴스 메모리가 1g인 관계로...(너무 느리다.)

로컬에서 빌드를 끝내고, 원격 ip에서는 npm install만 해주기로 했다.

 

위 깃허브는 build 마친 것을 push한 상태임!

 

3) 할당 받은 ip 주소로 들어가보면?

 

연결 완료!

728x90

'AWS' 카테고리의 다른 글

AWS 이용해서 웹 애플리케이션 배포하기 1  (0) 2022.05.12