IT/SpringBoot&AWS
-
[오류] org.apache.catalina.LifecycleException: Protocol handler start failedIT/SpringBoot&AWS 2022. 5. 15. 22:25
참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 참고 URL - https://github.com/jojoldu/freelec-springboot2-webservice/issues/724 원인: 새로운 프로젝트가 8080 포트로 띄워야 하는데 이미 8080 포트를 사용하고 있어 기동 실패 해결방안: 기동 전 8080 포트 사용여부 확인하여 사용 중이면 kill 후 진행할 수 있도록 조치 사실 deploy.sh 스크립트에 8080 포트 사용여부 확인하는 부분이 적용되어 있어서, deploy.sh 실행 권한이 아닐까? 보안 그룹 설정 문제 아닐까? 뒤적뒤적 해봤는데.. 스크립트 명령어가 잘못 기재되어 있었다. ▶ pgrep -fl freelec-springboot2-webservice | gr..
-
nginx를 사용한 무중단 배포 환경 구성IT/SpringBoot&AWS 2022. 5. 15. 16:12
참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 앞선 실습에서 Travis CI를 사용해서 EC2에 배포 자동화 환경을 구성하였다. 그런데 기본 포트인 8080 포트로만 접속이 가능하므로, 만약 배포를 하게 되는 경우 잠시라도 접속이 끊기는 현상이 발생한다. 실제 고객이 사용하는 서비스라면 장애 상황이므로 중단없이 배포 가능한 환경 구성이 필요하다. chapter 10.에서는 nginx를 사용해서 무중단 배포 환경을 구성한다. nginx는 리버스 프록시(외부 요청을 받아 백엔드 서버로 요청을 전달하는 기능)가 있어 무중단 환경 구성이 가능하다. 기존 EC2 인스턴스에 추가로 nginx를 설치하면 되고, 구조는 아래와 같다. 즉, nginx가 80(http), 443(https) 포트를 할당..
-
AWS EC2 에 tree 설치하기IT/SpringBoot&AWS 2022. 5. 15. 14:55
What is a Tree? - tree 명령어는 디렉토리 내 파일을 트리 형식으로 보여주는 명령어이다. - ls 명령어도 디렉토리 내 파일을 보여주지만, tree 명령어는 구조화된 리스트로 시각화하여 보여주기 때문에 유용하다. How to install tree on linux? 1. 확인 [ec2-user@ip-xxx-xx-xx-xx ~]$ tree -bash: tree: command not found 2. 설치 [ec2-user@ip-xxx-xx-xx-xx ~]$ sudo yum install tree Loaded plugins: extras_suggestions, langpacks, priorities, update-motd amzn2-core | 3.7 kB 00:00:00 amzn2extra..
-
AWS EC2 - CodeDeploy 연동 설정IT/SpringBoot&AWS 2022. 5. 14. 16:42
참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 기본 흐름 - repository인 github에 소스가 커밋/푸시되면, github이 Travis CI로 트리거를 걸어 build, test, notify(slack, email, etc ..) 완료하게 된다. - build 결과인 jar 파일은 일종의 파일 서버 역할을 하는 S3로 전달 - 이후 실제 배포를 CodeDeploy를 통해 배포 요청을 하면 S3에 저장된 jar 파일을 EC2 서버로 배포하게 된다. 각 시스템 간 연동이 필요한데 * github - Travis CI 간 연동 ㄴ github 에 .travis.yml 설치하므로써 트리거를 걸어줌 * Travis CI - AWS S3 간 연동 ㄴ .travis.yml에 빌드 후 ja..
-
Travis CI로 빌드하기IT/SpringBoot&AWS 2022. 5. 14. 08:53
참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 드디어 CI/CD를 실습해볼 차례다. 도서에서는 아래와 같은 순서로 가이드 하고 있다. travis-ci.org에 접속 > 로그인 후 settings를 통해 저장소를 활성화 Travis CI 설정을 위해 .travis.yml 파일 작성 후 커밋/푸시 Travis CI 저장소 페이지에서 build 상태 확인 => 빌드 완료되면 기 설정한 이메일로 완료 메일 확인 그런데 실제 진행해보니 변경된 사항이 있다. 1. 접속 경로 : travis-ci.org => travis-ci.com 2. plan 설정 - 도서에서는 파일을 커밋/푸시하면 자동으로 빌드가 진행되는 것으로 안내하였지만 그 사이 정책이 바뀐듯 하다. - 실제 상단에 아래와 같은 얼럿이 ..
-
소셜 로그인 - OAuth 2.0 구글API 등록 오류IT/SpringBoot&AWS 2022. 5. 14. 00:05
참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 8장 "EC2 서버에 프로젝트를 배포해 보자" 말미에 AWS상에 올린 서비스에 소셜 로그인 (구글, 네이버) 기능 처리 방법이 있다. 구글, 네이버 개발자 센터에 등록한 URL이 기본 localhost:8080 으로 등록하였는데, 이제 로컬환경이 아닌 실제 운영(production) 환경이기 때문에 AWS에서 제공한 퍼블릭 DNS를 등록하면 된다. 우선 구글 로그인 사용을 위해 책에서 안내하는 대로 [ 사용자 인증 정보 > 승인된 리디렉션 URI ] 에서 등록을 하려는데 아래와 같이 붉은 메시지를 띄우면서 진행이 되지 않는다!! 내용인 즉슨... http가 아닌 https로 등록을 하라는 것인데.... 그럴라믄.. 인증서 발급받아서 적용해야하..
-
MySQL(MariaDB) 에러 해결 방법 - No database selected.IT/SpringBoot&AWS 2022. 5. 13. 21:30
참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 AWS RDS로 MariaDB를 선택하여 환경 구성 중이다. 테이블 생성을 위해 쿼리를 수행하였는데, 아래와 같은 에러가 발생한다. Error executing SQL statement. (conn=293) No database selected - Connection: freelec: 24ms 이는 MariaDB 뿐만 아니라 MySQL에서 흔하게 발생하는 오류인데, use 명령어를 통해 쿼리를 수행할 DB를 지정해줘야 한다. /* 쿼리를 수행할 데이터베이스 활성화 */ use freelec_springboot3_webservice ; 끝~
-
[이슈] IntelliJ - DB Browser 통한 AWS RDS 접속 오류 해결 방안IT/SpringBoot&AWS 2022. 5. 12. 23:43
참고도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 chap07 에서는 AWS RDS 환경을 구성하고 로컬에서 정상 접속되는지 테스트를 해본다. 그런데 아래와 같은 메시지가 뜨면서 진행이 안된다! 결론부터 말하면, IntelliJ comm. 버전 문제로 책과 다르게 MySQL 이 아닌 "Custom" 으로 선택해서 진행해야 함!! 상세 내용은 아래 깃허브 이슈에서 확인~ -> https://github.com/jojoldu/freelec-springboot2-webservice/issues/757 #. 요약 - IntelliJ Community 2021.03 이후 버전에서 DB Browser를 통한 MariaDB 접속 시 접속 오류 발생! - 별도 MariaDB jdbc jar파일 다운 받고, ..