Steammend PJ 배포를 담당하지 않기도 했고 배포를 경험해보고 싶어 PJ 마감 이후에 추가로 GCP를 이용해 배포를 시도해봤다.
대상(모든 인스턴스 허용), 소스IPv4 범위(0.0.0.0/0), TCP(해당 서버 포트)
로 만들었다Port
를 열어도 트래픽을 허용해주지 않으면 문제 발생a010--------@instance-1:~$ sudo su
root@instance-1:/home/a010--------# ls
es python steam-env steammend-be steammend-de steammend-fe
es
: ElasticSearch 다운 폴더python
: python 다운 폴더steam-env
: Flask 가상환경steammend - be, de, fe
: 백엔드, 데이터, 프론트 git clone foldersudo su
: root 권한 계정 접속ls
: 해당 위치에서 folder listmkdir 디렉토리
: 디렉토리 생성cd 디렉토리
: 디렉토리 이동rm -r 디렉토리
: 내용물 존재하는 폴더 삭제sudo apt install git
: git 다운git clone 'git repository url'
: 해당 PJ repo url clonegit --version
: git 버전 확인curl -sL https://deb.nodesource.com/setup_18.x | sudo bash -
: 시스템에 NodeSource 리포지토리를 추가sudo apt install nodejs
: Node.js 및 npm을 설치node -v or node --version
: node 버전 확인npm -v or npm --version
: npm 버전 확인npm install package.json --save
: package.json 환경설정 다운로드, --save 해줘야 패키지에 적용된다 npm ls or npm list
: package list 확인npm start
: FE 위치에서 npm 서버 가동sudo apt install default-jdk
: JDK 11 다운java --version
: java version 확인java -jar steammend-be-0.0.1-SNAPSHOT.war
: .war file 실행which java
: javac 경로 확인, /usr/bin/javacreadlink -f (javac 경로)
: which java로 읽은 javac 경로, /usr/lib/jvm/java-11-openjdk-amd64/bin/javacsudo vim /etc/profile
: 설정 파일 저장소 openi
눌러 insert mode로 설정export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 > /etc/profile
: javac 경로에서 /bin/javac 전까지 경로 JAVA_HOME 등록esc -> :wq!
: 설정 맞춘 후 나오는 설정 파일에서 나오는 명령어source /etc/profile
: 설정 파일 저장echo $JAVA_HOME
: JAVA_HOME 조회sudo apt install wget
: wget 환경 설치wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.1-linux-x86_64.tar.gz
: PJ에서 사용한 ES 7.8.1 다운tar xvzf elasticsearch-7.8.1-linux-x86_64.tar.gz
: 다운받은 압축 파일 해제useradd es
: es라는 user 추가chown -R es:es /home/a010--------/es
: es 폴더 소유자 es(user)로 변경su es
: es로 계정 변경./elasticsearch
: elasticsearch bin 폴더에서 실행curl -XPOST http://localhost:9200/_bulk -H "Content-Type: application/json" --data-binary @final_top_seller_games.json
: final_top_seller_games.json bulk API 이용해 uploadsudo apt install redis-server
: redis 다운sudo nano /etc/redis/redis.conf
: redis config file opensudo systemctl restart redis
: config 변경사항 저장redis-cli
: redis server 실행sudo apt install python3-venv
: python3용 venv 모듈 설치python3 -m venv steam-env
: steam-env라는 가상환경 생성source steam-env/bin/activate
: steam-env 가상환경 활성화deactivate
: 가상환경 비활성화pip install -r requirements.txt
: requirements.txt에 있는 pip 패키지 다운로드pip list
: 가상환경 pip list 확인python app.py
: 실행 메서드sudo apt-get install mariadb-server
: Maria DB 다운mariadb -uroot -p
: root 권한으로 접속python3.9 --version
, python3.8 --version
이런식으로 조회하는 경우 다운 받았던 버전(ex, 3.9.1 or 3.8.6)이 뜨지만 기본 버전 설정이 업데이트가 되지 않았다alias python3=python
으로 python3도 버전 업데이트 시켜 가상환경을 만들었다https://dololak.tistory.com/467
참고해 두번째 명령어 치자마자 Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation 직면 그냥 sql storage 사용안한 debian 자체에 다운 받았던 mariadb에 설정 다 박으니깐 문제 없이 돌아갔다
22.12.01 이후로 오랜만에 들어옴
위에 인프라 배포 관련해 나의 경우는 프로세스를 포어그라운드로 배포한 경우이다
당시에는 프로세스를 실행할 때 백그라운드, 포어그라운드 환경을 구분하지 못했고 포어그라운드로 GCP 내에서 여러 VM(=SSH)창을 띄워 진행했는데 서버 개발 환경에서 백그라운드 환경에 프로세스를 실행함으로서 배포하는 것이 보다 일반적이라고 생각한다.
linux 환경에서 bash에 nohub 작업을 통해 백그라운드 작업 진행