Spring 플랫폼 환경설정

Ogu·2022년 5월 7일
0

⛔ 중간에 gradle빌드는 되는데 스냅샷 파일 실행이 되지 않았다. 알아보니 AWS 인스턴스와 RDS가 연결이 안돼서, RDS와 인스턴스가 지역이 같아야 해서 오류를 해결하는 과정을 거쳤다.
인스턴스는ㄴ 초반에 지역을 서울로 바꿨었는데 자동으로 또 북부로 바뀐걸 모른 채 진행해서 버지니아 북부에, RDS는 서울에 구축했었다.
그래서 인스턴스 region을 다시 서울로 옮기는 작업을 진행했다. (인스턴스 이미지를 복사해서 이전)
참고 URL : https://velog.io/@imchanyang/AWS-EC2-%ED%94%84%EB%A6%AC%ED%8B%B0%EC%96%B4%EC%97%90%EC%84%9C-%EB%A6%AC%EC%A0%84resion-%EC%A7%80%EC%97%AD-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0
참고 URL : https://ndb796.tistory.com/257

  • 다시 WinSCP, IntelliJ, 가비아, AWS에서 ip주소, 보안 그룹 등등 설정을 다시했다.
    동기분들 감사합니다 .. 😢😢😢

1. 백엔드 언어 준비

javac  # 텍스트 파일로 작성된 java 파일을 bytecode로 컴파일, java 설치 여부 확인
sudo apt install default-jdk -y

2. 깃 클론

깃 레포지토리 생성 - Github Desktop프로그램을 이용해 local에 클론해주고, 다운받은 디렉토리를 push했다.

putty에 깃 클론

git clone [url]

⛔ 처음에 깃허브 클론을 하는 도중 접속 오류가 났다. 알아보니 해당 폴더에 관한 접근 권한이 없어서 발생한 것이었다. 우분투 CLI를 실행하고 처음에 꼭 sudo su를 입력해 root 권한으로 시작하자!
참고 URL : https://jazzodevlab.tistory.com/67

Username : 깃허브 id
PW : pulic access token 생성한 것 입력

Github Personal access token 생성

프로필 - Settings - Developer settings(가장아래) - Personal access tokens - Generate new token

nginx 서버 관리 블록 해당 루트 설정

sudo vim /etc/nginx/sites-available/default
# root /var/www/RisingCamp_Spring-boot;  로 편집
# SSL 인증 부가적으로 각자

systemctl restart nginx

3. 인텔리제이 연결 및 설정 편집

사전 준비 : intelliJ 설치

로컬에 받아둔 디렉토리 열기

설정 및 편집

Tools - Deployment - Configuration... 클릭
new - SFTP - create new Server

SSH 설정 - 연결 성공이 확인되면 Apply - OK

Root Path에 아까 루트 경로 복사한것 입력
Web server URL 에 만들어둔 도메인 입력
Test Connection

Tools - Development - Browse Rmote Host 클릭, 연결 확인

권한 부여

# git 폴더 삭제
rm -rf .git
cd ..
chmod -R 777 RisingCamp_Spring-boot/

⛔ -R 옵션
해당 폴더로부터 하위 폴더까지 모든 권한을 동일하게 준다.

spring_edu/src/main/resources/application.yml 로 이동

스프링 부트 안에는 내장톰캣이 있는데 default는 8080이다. yml의 port 9000을 지워주게 되면 default인 8080로 연결이 된다.

⛔ error : Cannot Rung Git - Git is not installed
Download and install을 눌러 Git for Window를 설치했다.

빌드 및 실행

아래의 디렉토리로 이동, TestController.java파일 열기

다시 putty로 / intelliJ에서 터미널창으로!

intelliJ에서 터미널 창 실행 방법

cd RisingCamp_Spring-boot
# 빌드
./gradlew clean build

⛔ build하는 과정에서 28퍼에서 20분째 멈춰있길래 putty를 강제적으로 종료하고 재부팅했더니 WinSCP에서 접속이 안됐다.. 오류는 2가지가 떴는데 아래와 같다.


1. 호스트가 15초 이상 응답하지 않습니다.
1번째 문제는 아래 링크를 참조해서 다시 접속을 시도했다.
https://jun7222.tistory.com/576


2. 소프트웨어적인 연결 중단입니다
2번째 에러가 발생했다.
여러 방법으로 https://suzxc2468.tistory.com/153 를 참고하기도 하고 aws에서 인스턴스와 데이터베이스를 재부팅도 해보았다. 하지만 해결이 계속 되지 않았다. 한 8번째 재부팅 하기 전 마지막으로 다시 접속 시도 중에 아무생각 없이 다른것을 보며 기다리고 있던 중 갑자기 접속이 됐다.. 동기는 1번 에러만 발생했는데 계속 접속 오류 무한뱅뱅이다가 나랑 똑같이 갑자기 접속이 됐다.. 도대체 기준이 뭘까?

⛔ 빌드 오류 - SWAP 메모리 할당

# 1.dd 명령어를 통해 swap 메모리를 할당한다.
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16
# 2. 스왑 파일에 대한 읽기 및 쓰기 권한을 업데이트합니다.
$ sudo chmod 600 /swapfile
# 3. Linux 스왑 영역을 설정합니다.
$ sudo mkswap /swapfile
# 4. 스왑 공간에 스왑 파일을 추가
$ sudo swapon /swapfile
# 5. 절차가 성공했는지 확인합니다.
$ sudo swapon -s
# 6. /etc/fstab 파일을 편집하여 부팅 시 스왑 파일을 활성화합니다.
$ sudo vi /etc/fstab
7. 메모리 할당 확인
$ free
# 참고 - 디엠,몬테 개발일지

java -jar build/libs/demo-0.0.1-SNAPSHOT.jar

Imsomnia를 api 통한 테스트

ogululu.shop:9000/test/log를 GET으로 요청으로 전송했다.
Sucess Test가 반환된다!

스프링부트에서 서버를 실행하면 메인 화면로 접속 가능
실행 안하면 메인화면으로는 접속 불가능, 서브도메인으로는 접속 가능

⛔ 중간에 RisingCamp_Spring-boot 권한 설정을 위해 권한을 root로 바꿔주었다.
chmod 명령어 사용 - https://madplay.github.io/post/how-to-use-the-chmod-command-on-linux

RDS 연결 확인 code

mysql -u master -p -h [RDS 앤드포인트]

4. Reverse Proxy 설정

Reverse Proxy란?
https://phsun102.tistory.com/47

현재는 9000포트를 이용해서 접속했지만 이는 보안 상 취약하다.
원래는 80,8080등 기본 포트를 이용해서 Web Server에 접근하고 Backend language에 접속해야 한다.

리버스 프록시를 적용하기 위해 서버 블록으로 이동

$ sudo vi /etc/nginx/sites-available/default

49번 라인을 주석처리 하고
그 아래줄에 proxy_pass http://127.0.0.1:9000; 를 추가 후 저장한다.

서버를 재부팅

sudo systemctl restart nginx

새로 빌드 진행 후 jar 파일 실행

./gradlew clean build # 재빌드
java -jar build/libs/demo-0.0.1-SNAPSHOT.jar # 만들어진 jar 파일 실행

결과

자물쇠 모양이 생겼다! HTTPS 연결이 되었다.

업로드중..

profile
Hello! I am Ogu, a developer who loves learning and sharing! 🐤🐤 <br> こんにちは!学ぶことと共有することが好きな開発者のOguです!🐤

0개의 댓글