내가 직접 AWS를 사용해서 인스턴스 서버를 생성하고 관리해보자.
- Amazon AWS 아이디를 만든다.
- AWS 홈페이지 검색창에 EC2 입력해서 인스턴스 생성 페이지로 들어간다.
- 인스턴스를 생성한다.
3-1) 애플리케이션 및 OS 이미지에서는Ubuntu
를 선택
3-2) 무료로 사용하기 위해t2.micro
를 사용
3-3) 키 페어 생성 후 다운받기
3-4) 네트워크 설정 기존 보안 그룹 선택 -default
값 선택
3-5) 인바운드 규칙 설정해주기(아래와 같이 설정 가능)이렇게 하면 서버 생성이 완료되었고 git bash를 열어서 연결해주면 된다.
cd Desktop
ls | grep kt.pem
ssh
명령을 이용하여 로컬 컴퓨터에서 서버 컴퓨터로 원격 접속
ssh -i /c/Users/user/kt.pem ubuntu@54.180.1.46
.ssh
로 된 곳에 키페어(현재 kt.pem으로 설정한 곳
)가 있는 위치와 자신의 IP주소를 입력해서 연결한다.- 이렇게 하면
git bash
에ubuntu
가 뜬다.
현재 파이썬을 설치하려고 하기 때문에 환경설정 파일을 전송해야 한다.
접속할 때는 ssh
를 사용하고 파일을 전달할 때는 scp
를 사용한다.
파일을 전달하기 위해서는 4가지가 필요하다.
1) IP : EC2 인스턴스에서 생성한 퍼블릭 IPv4 주소
2) ID : ubuntu
3) PW : kt.pem
4) PATH : ~/
현재 env
파일에 환경설정 파일을 저장해두었기 때문에 아래 env를 추가해줬다.
1) ls /c/Users/user/env
2) scp -ri /c/Users/user/kt.pem /c/Users/user/env ubuntu@54.180.1.46:~/
3) cat ~/env/pyenv.sh
- 3번 코드를 통해 잘 설치가 되었는지 확인해 볼 수 있다.
1) ubuntu $ source ~/env/pyenv.sh
설정에서 선택하는것이 나오면 모두 기본 값으로 설정 <tab + enter>
2) ubuntu $ pyenv global 3.8.5
파이썬 기본 버전을 3.8.5로 설정
3) ubuntu $ pip install -r ~/env/requirements.txt
requirements.txt
에 정의된 파이썬 패키지 설치
4) sudo apt-get install tree
- 4번 코드를 추가함으로써 tree 구조를 보여준다.
그렇다면 서버에 쉽게 접속하는 방법은 없을까?
1) cd~
2) pwd
3) vi .bashrc
4) 'i'로 insert해주고
5) alias server=ssh -i /c/Users/user/kt.pem ubuntu@54.180.1.46 입력
6) 그리고 esc 누르고 :wq 하고 엔터 (이렇게 하면 저장하고 나가기가 된다.)
7) source. bashrc 입력
8) server 입력
9) server를 저장해놨기 때문에 이게 출력된다.
패스워드를 변환을 해서 저장할 것이다.
1) 주피터 노트북 설정 파일 생성
ubuntu $ jupyter notebook —generate-config2) 암호화된 패스워드 생성
ubuntu $ ipython3) In [1]: from jupyter_server.auth import passwd
4) In [2]: passwd()
5) Enter password: ktpw # 보안의 이유로 실제로 입력문자가 출력되지는 않음
6) Verify password: ktpw # 보안의 이유로 실제로 입력문자가 출력되지는 않음
7) Out[3]: 'argon2:v=19P5lONOLrRu/
FEM3gtDQOEw$nWH4/2BFoquRWzFQq31V8Gm9a/MG5Ufl8FLKpMfICO0'
이거 복사해서 들고 있어야 한다.8) In [4]: quit
0) ubuntu $ sudo vi /home/ubuntu/.jupyter/jupyter_notebook_config.py
아래 3가지 전부 입력해야
1) c.NotebookApp.ip = '172.31.7.236' # private ip address
2) c.NotebookApp.open_browser = False # 자동 브라우져 실행 설정
위에서 출력한 패스워드 설정
3) c.NotebookApp.password = 'argon2:v=19m=10240,t=10, p=8 $P5lONOLrRu/FEM3gtDQOEwnWH4/2BFoquRWzFQq31V8Gm9a/MG5Ufl8FLKpMfICO0'
이렇게 3가지 입력 완료가 되었으면 esc 누르고 :wq 하고 엔터누르면 편집 완료가 된 것이다.
이렇게 하고 인터넷에 내 아이피와 :8888 해주면 로그인이 된다.
http://54.180.1.46:8888/
1) javascript 실행을 위한 패키지 설치
ubuntu $ sudo apt-get install nodejs npm jupyter
2) 중간에 tmux 사용해주기 (kt라는 세션을 만들어주는 중)
2-1) tmux new -s kt
이후에 0번 창에서 아래의 코드 실행
(ctrl +b 떼고 1초안에 0 를 누르면 0번으로 이동 된다.
)
3) ipython에서 실행 가능한 javascript를 npm으로 설치 및 설정
ubuntu $ sudo npm install -g --unsafe-perm ijavascript
ubuntu $ sudo ijsinstall --install=global
- 이렇게 설치를 하는 중에
ctrl +b
떼고 1초안에c
를 누르면 새로운 윈도우가 생성된다. 그리고 1번 창이 생성된다.- 추가로
ctrl + b
떼고 1초안에c
누르면 2번 창이 생성된다.- 원래 있던 창으로 가려면
ctrl + b
떼고 1번을 누르면 1번창, 2번으로 가려면ctrl +b
떼고2
를 눌러주면 된다.
현재 어떤 파일이 실행중인지 확인해보자.(중요! 현재 실행중인 프로세스 kill)
ps - e
만 해도 확인이 가능하지만 그러면 너무 많은 파일이 확인된다.- 현재 jupyter 파일을 확인하고 싶기 때문에
ps -e | grep jupy
이걸 입력하면 확인 가능하다.- 그리고 현재 실행중인 파일을 삭제하길 원한다면
kill -9 12345(
포트번호)
를 해주면 삭제된다.
참고자료
reference : https://www.cherryservers.com/blog/install-mongodb-ubuntu-22-04
1) 설치 명령
ubuntu $ sudo apt install software-properties-common gnupg apt-transport-https ca-certificates -y
2) 설치 명령2
ubuntu $ curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
3) 설치 명령3
ubuntu $ echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0
multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
4) 설치 명령4
ubuntu $ sudo apt update
5) 설치 명령5
ubuntu $ sudo apt install mongodb-org -y
6) MongoDB 서버 실행 및 실행확인
ubuntu $ sudo systemctl start mongod
ubuntu $ sudo systemctl status mongod
7) mongo shell 실행 및 관리자 계정 생성
- 이걸 실행하면 아래와 같이 나온다.
ubuntu $ mongosh8) test> use admin
(switched to db admin : 실행값)9) admin> db.createUser({ user: "kt", pwd: "ktpw", roles: [ "root" ] })
( { ok: 1 } : 실행 값)10) admin> quit
11) 외부접속 허용 및 패스워드 사용설정
ubuntu $ sudo vi /etc/mongod.conf
12) network interfaces ( IP 바꿔줘야 한다.)
net:
port: 27017
bindIp: 0.0.0.0 (여기 IP바꿔야)
13) security:
security:
authorization: enabled (여기 반드시 두 칸만 띄워야! Tab 하면 안됨)
14) 설정 적용을 위한 MongoDB 서버 재시작
ubuntu $ sudo systemctl restart mongod
15) 서버 접속 URI
URI : mongodb://<user>:<password>@<public ip>:<port>/?authSource=admin
URI : mongodb://kt:ktpw@54.180.1.46:27017/?authSource=admin
1) nginx 설치
ubuntu $ sudo apt-get install nginx
2) nginx 실행 확인
ubuntu $ sudo systemctl status nginx
3) 그 다음 html 파일 생성
env html
echo 'Hello Nginx!' > html/index.html
cat html/index.html
이러면 Hello Nginx! 라는 문구가 들어간 파일이 생성된다.
만약 tree가 없다면 추가
- sudo apt install tree
4) 이제 외부망으로 등록하기 위해서
- cd html/
- pwd
그러면 /home/ubuntu/html 으로 가게 된다.
5) nginx 설정해준다.
ubuntu $ sudo vi /etc/nginx/sites-available/default
6) # 정적 파일 설정
대문자 G를 눌러 준다. 그러면 맨 아래 쪽으로 이동한다.
그 다음server { listen 8080; location / { root /home/ubuntu/html; } }
이거 추가해주고 esc 누르고 :wq 누르고 엔터하면 저장된다.
7) 설정 적용을 위한 재시작
sudo systemctl restart nginx
8) # ubuntu 디렉토리 실행권한(+x) 추가
chmod +x /home/ubuntu
현재 html을 web으로 변경해보자(html,css,javascript가 구현되어 있는 파일이 있다고 가정)
- 먼저 웹 파일의 위치 확인 ( 나는 ~/OneDrive/문서/Downloads)
- $ cd ~/OneDrive/문서/Downloads
- ls web 으로 문서들 확인
contents.html css/ emmit.html font/ index.html join.html js/ login.html
이렇게 출력되는 것을 확인할 수 있다.
- scp 로 파일 전송하기
$ scp -ri /c/Users/user/kt.pem ~/OneDrive/문서/Downloads/web ubuntu@54.180.1.46:~/
- 서버로 접속
ssh -i ~/.ssh/kt.pem ubuntu@54.180.1.46
- 이후에 파일 확인하고 nginx 한번 더 수정하자. 아래 코드 입력해서 경로 확인
- cd web/
- pwd
sudo vi /etc/nginx/sites-available/default
입력해서 아래와 같이
html
수정server { listen 8080; location / { root /home/ubuntu/web; //html -> web } }
여기서
html
을web
으로 바꿔줌
- 설정 적용을 위한 재시작
~/web$ sudo systemctl restart nginx
이후에 54.180.1.46:8080
입력하면 잘 실행되는 것을 알 수 있다.