일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 상속
- 오버라이딩
- 친절한 SQL 튜닝
- 비교 연산자
- 이클립스 설치
- @PreAuthorize("isAuthenticated()")
- 반복문
- 객체
- 연산자
- join
- 함수
- 친절한 SQL
- 예약어
- spring 게시판 삭제
- SpringSecurity 로그인
- 자바의정석
- 배열
- 오버로딩
- SQL
- 객체지향
- 스프링시큐리티 로그아웃
- 산술 연산자
- 식별자
- StringBuffer
- SQL튜닝
- java
- 인텔리제이 Web 애플리케이션
- 논리 연산자
- SpringSecurity 로그아웃
- SQL 튜닝
Archives
- Today
- Total
gi_dor
배포 자동화 중 발생한 문제 본문
The overall deployment failed because too many individual instances failed deployment, too few healthy instances are available for deployment, or some instances in your deployment group are experiencing problems.
검색을 해보니 CodeDeploy 공식문서를 참조해 로그를 확인 하라고 한다
less /var/log/aws/codedeploy-agent/codedeploy-agent.log
/ ERROR
InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform: Aws::S3::Errors::NoSuchKey - The specified key does not exist. - /opt/codedeploy-agent/vendor/gems/aws-sdk-core-3.121.1/lib/seahorse/client/plugins/raise_response_errors.rb:17:in call'
EC2의 IAM Role이 바뀌면 CodeDeploy Agent restart를 수행한다고 한다
1. IAM , codeDeploy , 정책 , 권한 S3 전부 삭제 후 재 설정
2. codedeploy-agent 재시작
sudo service codedeploy-agent restart
- name: Code Deploy를 활용해 EC2에 프로젝트 배포하기
run: aws deploy create-deployment
--application-name bookhub-server
--deployment-config-name CodeDeployDefault.AllAtOnce
--deployment-group-name Production2
--s3-location bucket=bookhub-server,bundleType=tgz,key=$GITHUB_SHA.tar.gz
성공적으로 작업이 완료되었다는걸 확인할 수 있다
하지만 해당 IP로 접속이 불가능하다
이제 이 부분은 scripts/start-server.sh를 점검하시면서 왜 작동이 안 됐는 지 체크해봐야할 것 같다
스크립트 파일의 코드를 실행시키다가 특정 부분에서 에러가 나서 작동이 안 됐을 가능성이 크다보니
스크립트 파일의 내부 코드를 EC2에서 로그를 입력해서 에러 원인을 찾아보려고 한다
nohup 명령어의 로그 파일 (output.log)을 확인해 어떤 오류가 발생했는지 확인
cat /home/ubuntu/BookHub_AWS/output.log
서버가 8080포트에서 실행 중인지 확인
lsof -i:8080
어림도 없지 역시나 실행되고있지 않다.
로그 확인결과
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'communityController' defined in URL [jar:nested:/home/ubuntu/BookHub_AWS/project.jar/!BOOT-INF/classes/!/com/example/bookhub/board/controller/CommunityController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'communityService': Injection of autowired dependencies failed
Spring Boot 애플리케이션에서 CommunityController를 생성하는 동안 의존성 주입이 실패하는 문제가 발생했다고 한다
원인은 communityService 빈을 생성하는 중에 image.upload.dir이라는 속성을 찾을 수 없기 때문이라고 하는데
왜 ? 갑자기 ? 이제와서 ?
application.properties 내에 image.upload.dir 경로가 없어서 그렇다는데 이미 있고.. 원하는대로 수정도 했잖아..
*************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of constructor in com.example.bookhub.user.util.MailService required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found. Action: Consider defining a bean of type 'org.springframework.mail.javamail.JavaMailSender' in your configuration.
이번에는 JavaMailSender 빈이 정의되어 있지 않다고 ??
이쁘게 잘있는데...
혹시나 하는 생각에 현재 프로젝트에는 application.properties 로 되어있는데
- name: application.properties 파일 만들기
run: echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application.properties
이 부분이 혹시나 문제일까봐 yml로 변경하고 나서 push 이후
다시 log를 찍어 확인하니 정상적으로 작동이 되었다..
728x90
'AWS > CI CD' 카테고리의 다른 글
Spring Boot 개인,토이 프로젝트에서 CI/CD (0) | 2024.06.18 |
---|---|
프로젝트 CI/CD 적용 , 설명 (0) | 2024.06.18 |
AWS EC2 포트 포워딩 (0) | 2024.06.14 |
AWS 배포 EC2 인스턴스 생성과 연결 배포 , MobaXterm (2) | 2024.06.14 |
AWS RDS 데이터베이스 만들기 , 설정 , 연결 (0) | 2024.06.09 |