이전 글:
2023.10.09 - [코딩] - AWS 서버 배포 - 상
AWS 서버 배포 - 상
서버 생성은 이전 글을 참고하면 된다. 2023.10.09 - [코딩] - AWS 서버 생성, EC2 생성 (프리티어 기준, 최신 버전) AWS 서버 생성, EC2 생성 (프리티어 기준, 최신 버전) AWS의 계정은 이미 준비되었다고 가
codingtoday.tistory.com
1. PuTTY 터미널 접속
이 화면에서 시작하겠다.
2. 우분투 패키지 업그레이드 및 한글설정
다음과 같은 명령어를 순서대로 입력한다.
sudo apt update
sudo apt upgrade -y
sudo apt install language-pack-ko
sudo locale-gen ko_KR.UTF-8
sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX
locale
이런 창이 뜨면 enter
locale은 확인하는 명령어이다. 여기서 바로 입력하면 이렇게 뜨는데,
한 번 서버를 나갔다가 다시 들어오면 정상적으로 바껴있다.
이렇게 됐으면 정상적으로 한글 패치가 완료되었다!
2. MySQL 설치
sudo apt install -y mysql-server
sudo mysql_secure_installation
질문이 총 6개가 나온다.
질문1: validate password plugin을 사용할지 - 루트 암호를 설정할 것인지
yes를 입력하여 안전한 비밀번호를 사용하는 게 좋다.
원하는 policy 선택
그러면 저런 글자가 나온다. 일단 넘어가기
질문2: anonymous user를 삭제할것인지
y
질문3: 외부에서 root 계정으로 접근을 불허용할것인지
y
질문4: test db를 삭제할 것인지
y
질문5: privilege table을 reload할지
y
이렇게 뜨면 잘 된 거다.
3. MYSQL characterset 변경
sudo vim /etc/mysql/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
이 코드를 삽입
:wq 로 저장후 빠져나온다.
sudo /etc/init.d/mysql restart
재시작
그리고나서 mysql -u root -p
아까 1번에서 넘어갔던 설정을 해줘야한다.
아래 글 참고
2023.10.09 - [코딩] - Mysql root 비밀번호 재설정
Mysql root 비밀번호 재설정
$ sudo service mysql stop $ sudo /usr/bin/mysqld_safe --skip-grant-tables & 실행을 하면 아래와 같은 문제가 발생하는 경우가 있다. sudo mkdir -p /var/run/mysqld sudo chown -R mysql:mysql /var/run/mysqld sudo /usr/bin/mysqld_safe --skip-
codingtoday.tistory.com
비밀번호 입력
status 입력
이런 에러가 발생시,
SELECT User, Host, plugin FROM mysql.user;
update user set plugin='mysql_native_password' where user='root';
flush privileges;
이렇게 하면 된다.
그래도 안되면 아래 글 참고
2023.10.09 - [코딩] - Mysql root 비밀번호 재설정
Mysql root 비밀번호 재설정
$ sudo service mysql stop $ sudo /usr/bin/mysqld_safe --skip-grant-tables & 실행을 하면 아래와 같은 문제가 발생하는 경우가 있다. sudo mkdir -p /var/run/mysqld sudo chown -R mysql:mysql /var/run/mysqld sudo /usr/bin/mysqld_safe --skip-
codingtoday.tistory.com
4. 데이터베이스 추가 + 사용자 생성 및 권한부여
4-1. 데이터베이스 추가
create database 데이터베이스명
4-2. 사용자 생성 및 권한 부여
create user 사용자@'%' identified by '비밀번호';
grant all on DB이름.* to 사용자@'%';
flush privileges;
--table 생성
--알아두면 좋은 명령어--
mysql 서버 시작 sudo service mysql start
mysql 들어가기 mysql -u 사용자명 -p 비밀번호
mysql 빠져나가기: quit
5. Java 설치
sudo apt-get install -y openjdk-17-jre
sudo apt-get install -y openjdk-17-jdk
잘 설치 되었는지 확인
java -version
javac -version
환경변수 설정
sudo nano /etc/profile
맨 마지막에 이거 추가하기
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH
저장하고 나올때는 ctrl+x -y -enter로 입력
그 다음
프로파일 새로 불러와서
source /etc/profile
자바 환경변수 확인 명령어 입력하고
echo $JAVA_HOME
결과 이렇게 나오는지 확인
--Git clone--
1. 깃 설치
sudo apt-get install git
2. git --version
깃 버전 확인
<3번 안해도 될듯??>
3. 깃헙에서 SSH KEY 생성
cd ~/.ssh
ssh-keygen -t rsa -C github 계정 메일(example@github.com)
cat id_rsa.pub 로 파일 출력 후 깃헙 ssh에 저장해야함
github -> setting -> SSH and GPG keys 탭으로 이동 후 new SSH key 버튼 클릭
원하는 Title 입력 후 Key에 복사한 값 붙여넣
mkdir app
git clone git저장소주소
ls -l 해서 확인
6. 빌드 및 배포
cd 파일명
chmod +x gradlew
./gradlew --debug build 또는 ./gradlew build
테스트 없이 build하려면
./gradlew build -x test
명령어로 빌드 후
cd build/libs
nohub java -jar 파일명-0.0.1-SNAPSHOT.jar &
(java -jar 파일명-0.0.1-SNAPSHOT.jar )
ls로 nohub.out 파일 생성됐는지 확인
cat nohup.out
- 재배포시 -
cd 파일명/build/libs
ls- l
sudo rm 파일명 -0.0.1-SNAPSHOT.jar
--
이렇게 입력 말고 배포 파일 deploy.sh 을 생성해서
./deploy.sh 이렇게 실행하면 더 편하다!
--
deploy.sh 생성
#!/bin/bash
REPOSITORY=/home/ubuntu/app/step1
PROJECT_NAME=SEcodeverse-Back
cd $REPOSITORY/$PROJECT_NAME/
echo "> Git Pull"
git pull
echo "> 프로젝트 Build 시작"
./gradlew build -x test
echo "> step1 디렉토리로 이동"
cd $REPOSITORY
echo "> Build 파일 복사"
cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar $REPOSITORY/
echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=${pgrep -f ${PROJECT_NAME}.*.jar}
echo "현재 구동 중인 애플리케이션 pid: $CURRENT_PID"
if [ -z "$CURRENT_PID" ]; then
echo "> 현재 구동 중인 애플리케이션이 없으므로 종료하지 않습니다."
else
echo "> kill -15 $CURRENT_PID"
kill -15 $CURRENT_PID
sleep 5
fi
echo "> 새 애플리케이션 배포"
JAR_NAME=$(ls -tr $REPOSITORY/ | grep jar | tail -n 1)
echo "> JAR Name: $JAR_NAME"
nohup java -jar $REPOSITORY/$JAR_NAME 2>&1 &
-> 의존성 주입해야하는 경우 (나는 application.yml을 넣어줘야했다.)
---스프링 부트와 AWS로 혼자 구현하는 웹 서비스(이동욱) 참고---
docker 이용
2023.10.11 - [코딩] - Docker를 이용한 서버 배포
Docker를 이용한 서버 배포
aws 서버 생성 및 PuTTY setting 보려면 이전 글 참고 2023.10.09 - [코딩] - AWS 서버 배포 - 상 AWS 서버 배포 - 상 서버 생성은 이전 글을 참고하면 된다. 2023.10.09 - [코딩] - AWS 서버 생성, EC2 생성 (프리티어
codingtoday.tistory.com
'코딩 > Server' 카테고리의 다른 글
Docker를 이용한 서버 배포 (0) | 2023.10.11 |
---|---|
CI/CD 배포 자동화 구축 (github action 이용) - 1. CI (0) | 2023.10.10 |
AWS 서버 배포 - 상 (0) | 2023.10.09 |
AWS 서버 생성, EC2 생성 (프리티어 기준, 최신 버전) (0) | 2023.10.09 |
aws 키 페어 생성 (0) | 2023.10.09 |