한바다
[배포]aws에 git프로젝트 올리기 본문
☑️ 프로젝트 배포 과정은 아래와 같다.
1. 자바파일 jar로 만들기
2. jar로 만든 파일 깃허브 올리기
3. aws에가서 git clone 내가 올린 파일 가져오기
4. aws에서 백엔드 실행
✔️[지난주 복습]팀프로젝트 최종본을 git clone 하여 1번 과정을 진행하였다.
우선 프론트앤드(리액트)파일을 백앤드 경로에 폴더를 생성하여 public,src,package.json을 붙여 넣는다!
1.백앤드 경로에서 폴더를 생성할 때 build.gradle과 이름이 같은지 확인한다.
해당폴더 안에 프론트 엔드의 public, src, package.json을 복사해서 넣어준 후
build.gradle이 있는 폴더 경로에서 cmd를 입력 후 아래와 같이 진행한다!!
[명령어]
C:\Users\user1\sixsence\Sixsence>gradlew build
BUILD SUCCESSFUL in 13s
C:\Users\user1\sixsence\Sixsence>cd build
C:\Users\user1\sixsence\Sixsence\build>cd libs
C:\Users\user1\sixsence\Sixsence\build\libs>java -jar Sixsence-0.0.1-SNAPSHOT.jar
위 과정을 통해 localhost:666에서 정상적으로 불러왔다
▶ 이 과정은 지난주에 진행했던 과정으로 금일은 aws에 백앤드와 프론트앤드가 합쳐진 것을 올린다.
☑️aws에 올리기 위해서 개인클라우드 컴퓨터를 생성하는 과정 인스턴스를 생성한다!
그리고 aws에서 gradlew build과정을 생력할 파일질러프로그램에서 내컴퓨터에 있는 프로젝트 내 파일을 aws로
전송하는 과정을 거친다.
해당 과정은 생성한 인스턴스 퍼블릭 IPv4주소를
- 파일질러 사이트 파일>사이트관리자 경로로 들어가서 아래와 같이 진행한다!
- 주의할 점은 사용자를 임의로 적으면 안되고 ec2-user을 입력한 후 연결 버튼을 클릭한다
- 그리고 파일용량이 너무 커서 build폴더를 옮겨 준다!
그리고 aws 콘솔창에서 아래의 명령어를 입력한 후 git clone을 진행한다!
- sudo yum install git : 깃 설치
- sudo yum install npm : npm 명령어 연동설치
- sudo yum install java-17-amazon-corretto-devel -y : 자바설치
그리고 aws콘솔에서(파일질러에서 build파일을 옮겨 줬기 때문에) grdlew build를 할필요는 없고
바로 아래 명령어를 입력한다!
[ec2-user@ip-172-31-18-223 ~]$ cd build
[ec2-user@ip-172-31-18-223 build]$ cd libs
[ec2-user@ip-172-31-18-223 libs]$ java -jar Sixsence-0.0.1-SNAPSHOT
<위 명령어가 잘못되어 있어 에러가 난다>
Error: Unable to access jarfile Sixsence-0.0.1-SNAPSHOT
[ec2-user@ip-172-31-18-223 libs]$ java -jar Sixsence-0.0.1-SNAPSHOT.jar
[위 명령어 진행시 아래와 같은 오류가 떳다]
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-09-02T09:16:31.873Z ERROR 29165 --- [Sixsence] [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Failed to initialize dependency 'dataSourceScriptDatabaseInitializer' of LoadTimeWeaverAware bean 'entityManagerFactory': Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Unsatisfied dependency expressed through method 'dataSourceScriptDatabaseInitializer' parameter 0: Error creating bean with name 'dataSource' defined in class path resource [com/six/common/config/DBConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to initialize pool: Communications link failure
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/six/common/config/DBConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to initialize pool: Communications link failure
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to initialize pool: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) ~[spring-beans-6.1.12.jar!/:6.1.12]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) ~[spring-beans-6.1.12.jar!/:6.1.12]
... 41 common frames omitted
Caused by: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Caused by
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
Caused by
java.net.SocketTimeoutException: Connect timed out
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:551) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602) ~[na:na]
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[na:na]
at java.base/java.net.Socket.connect(Socket.java:633) ~[na:na]
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:153) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:62) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
... 66 common frames omitted
[에러 원인과 해결]
위 에러는 DB가 정상적으로 연결되지 않아 발생한 오류로 build한 이클립스에서 application.properties에서
spring.datasource 주소를 변경해줘야 한다.
[에러난 주소/상대주소]
[정상적으로 연결되는 주소/절대주소/공용]
'aws' 카테고리의 다른 글
[배포]mySql 복제 (2) | 2024.09.05 |
---|---|
Mysql Dialect 설정 에러 (0) | 2024.09.04 |
[배포]명령어 정리, awc mysql (2) | 2024.09.03 |