AWS를 활용한 EC2 - Spring 배포 해보기 2

정지인·2025년 5월 18일

오늘은 저번에 실패했던 aws를 통한 ec2 배포 해보기를 마무리 해보려한다.


 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _ | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::                (v3.4.3)


2025-05-12T14:57:20.916Z  WARN 1 --- [board] [           main] o.m.jdbc.message.server.ErrorPacket      : Error: 1045-28000: Access denied for user 'root'@'172.19.0.2' (using password: YES)
2025-05-12T14:57:21.920Z  WARN 1 --- [board] [           main] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 1045, SQLState: 28000
2025-05-12T14:57:21.921Z ERROR 1 --- [board] [           main] o.h.engine.jdbc.spi.SqlExceptionHelper   : (conn=15) Access denied for user 'root'@'172.19.0.2' (using password: YES)
2025-05-12T14:57:21.922Z  WARN 1 --- [board] [           main] o.h.e.j.e.i.JdbcEnvironmentInitiator     : HHH000342: Could not obtain connection to query metadata

org.hibernate.exception.GenericJDBCException: unable to obtain isolated JDBC connection [(conn=15) Access denied for user 'root'@'172.19.0.2' (using password: YES)] [n/a]
        at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:63) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]
        at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]    
        at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]     
        at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:116) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]
        at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:320) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]
        at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]
        at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]
        at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]
        at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]

저번에 해결하지 못했던 오류를 다시 가져와봤다.

사실 그 다음에도 이 문제가 계속 해결이 되지않았다.

위의 오류를 간단하게 해석하자면 , Spring 앱이 MariaDB에 접속을 시도했지만 아이디와 비밀번호가 맞지 않아 거부 당하고 있다는 것이였다.

docker-compose down  // 서버 정보 및 리소스 삭제

docker-compose up -d --build // 도커 파일에 있는 정보를 리소스

를 하여 서버를 다시 띄어준 후에

docker logs -f spring 

를 통해서 다시 spring에서 나오는 로그를 확인해줬지만 결국 문제는 해결되지 않았다.

그러다가 동아리 회장님께 도움을 청하던 날, 이미지는 만들어져있는데 왜 DockerDesktop에 이미지가 안 올라가 있었다.

이 부분이 뭔가 이상해서 잘 찾아보던 도중에 ...

"너 혹시 이거 코끼리 안 눌렀니 ? "

네???? .......

나는 여태까지 코끼리를 돌려야하는 것도 몰랐다.

내가 dockerfile의 정보를 바꾸고 코끼리를 돌려줘야지 바꾼 정보가 저장이 되는거였다 ...

나는 당연하게도 한 번도 코끼리를 돌린 적이 없었다.

회장님께 3대 정도 맞고 바로 코끼리를 돌린 후에

서버를 다시 돌려봤는데 !!!!

안됐어요...

뭐가 문제지 하고 처음부터 다시 시작하면서 도커 파일을 빌드하던 도중에 뭔가 이상한 점을 발견했다.

docker build -t jiinjung/study .

뭔가 이상한 점이 있었다.

"어 너 왜 이름이 이러냐 근데"

뭔가가 지금 달랐다.

어?

왜 나 도커 허브 계정 이름이 jungjiin이지 ...

그렇다 그런 것이였다. 존재하지 않는 이미지에 계속 push하고 있었던 것!!

간단히 말하자면 나는 지금까지 없는 파일에 계속 이미지를 올리고 , 그 파일을 통해서 서버에 대한 정보를 계속 올렸던 것이였다 ....

그러니 잘못된 정보가 들어간 파일은 계속 남아있고 , 나는 존재하지도 않던 파일의 정보를 계속 고치고 있던 것이였다 ....

이름을 바꿔주고 다시 시작해봤더니 ....

짜잔 !!

드디어 성공했다...


사실 이건 나의 혼자 힘으로 해결하지 못 했다. 사실 더 많은 문제들이 있었고, 생각보다 더 오래 걸렸는데 그때 동아리 회장님과 서로 현타 오면서 풀었던 문제라 어떤 오류들이 있었고, 어떤 오류들을 해결했는 지 일일히 저장하진 못했었다!! 그러나 내가 가장 실수였다고 느낀건 초반에 아무 생각 없이 잘못된 정보를 입력했던게 문제였다.
한 번 단추를 잘못 끼웠더니 그 뒤에 잘 끼웠던 단추들은 한 순간에 의미가 없어졌다. 그 순간에 많은 회의감이 들었던 적도 있었다.

이 문제를 3일정도 계속 붙잡고 있었더니 내가 꼭 풀고 싶다는 의지도 생겼지만 결국 다른 사람의 힘을 빌려서 문제를 해결하게 되었다. 뭔가 내가 진짜 열심히 고치려고 해봐도 안되는 문제가 있다는게 너무 나한텐 큰 벽을 만났던 것 같았다. 그래서 사실 나한테 많이 실망했다.

하지만 동아리 회장님이 이러면서 성장하고, 이렇게 고생해봐야 너의 기억에 제대로 박혀 다음에 같은 문제가 발생했을 때 무리 없이 잘 해결해 나갈 수 있을거라며 많은 위로를 해줬다. 그게 허탈감을 느끼던 나한텐 많은 힘과 도움이 됐던 것 같다.

나는 아직은 많이 부족하다. 내가 노력해도 안되는 부분이 있다.
그래도 괜찮다 나는 아직 배우고있고 아직 성장할 수 있다.

profile
멋쟁이사자 13기 백엔드

0개의 댓글