AWS_EC2_08 (클라우드 기반 Application)
- Spring Application Setting
- Intellj에 코드 import / 소스코드 설명
- Spring boot Application 실행(yaml주소바꾸기, edit configuration에서 active profile prd로 )
- h2 주소 바꾸고 로그인
- default , prd 환경별 properties 설명( default : h2 db , production : mysql )
- Application build 후java -jar 명령어로실행및옵션
- -java -jar -Dspring.profiles.active={properties_name} projectsample-0.0.1-SNAPSHOT.jar
- ls 해서 현재 코드 파악하고 (인텔리제이내부터미널이용했음 ⇒ cd build ⇒ cd libs ⇒scp -i ~/경로(developer.pem 들어있는곳) projectsample-0.0.1-jar-SNAPSHOT.jar(jar 이름) ec2-user@퍼블릭ip:~/ ⇒ ssh -i/developer.pem(.pem이쓴ㄴ 경로)
- 클라우드에 application upload
- 터미널 들어가서 코드 치기(주의 , the authenticity of host can't be established 뜨면 yes하고 나중에비번치고들어가면되긴함)
- s 해서 현재 코드 파악하고 (인텔리제이내부터미널이용했음 ⇒ cd build ⇒ cd libs ⇒scp -i ~/경로(developer.pem 들어있는곳) projectsample-0.0.1-jar-SNAPSHOT.jar(jar 이름) ec2-user@퍼블릭ip:~/ ⇒ ssh -i/developer.pem(.pem이쓴ㄴ 경로)
- dependencies 설치 - yes하기(처음이라 그런듯)
- Ec2 server에 java install
- yum list | grep java-11 ⇒ yum install java-11~(나는 corretto.x86_64선택)
- jav —version으로 설치된 버전 확인
- Java -jar 명령어로 인해 application 실행
- java -jar project명
- ⇒이렇게하고 ip주소 포트 /api 주소 들가면 아마 안됨(포트안열어줘서)
- Ec2 server 보안그룹 인바운드 규칙 추가: Spring application port 8090 추가
- 인스턴스→인바운드→보안-보안그룹→ 아이디 누르고 규칙추가 8090 + anywhere ipv4 + 설명적기
- 서버 실행(exit해서 뒤로가기가 왜인지안됨) ⇒ java -jar -Dspring.profiles.active=prd projectsample-0.0.1-SNAPSHOT.jar(jar파일 주소)
- Ec2 public ip로 Application 서비스확인
- nohup java -jar -Dspring~ 하면 백그라운드로 실행됨
- tail -f nohup.out 해서 넣고
- mysql -h 엔드포인트 -u 아이디 -p 비번
- show databases; ⇒ projectdb들어간거확인
- select * from projectdb.SampleProject ⇒ 데이터들어간거 확인ㄷ턋
- ps-ef 해서 자바 백그라운드에서 실행되는지확인(nohup.out때문에)
- ps -ef | grep java ⇒ java들어간거만 잡아냄 ⇒ kill -9 뒤에 번호(ppid)