본문 바로가기

Study/GW

(7)
[Spring Boot3] 로컬-운영 환경 분리 보통 데이터베이스, 포트 등 로컬에서 개발할 때와 실제 서비스 환경에서 사용할 때 설정을 달리 한다.  Spring Boot에서는 application.yml 파일에서 이런 내용을 관리하는데, 분리 설정은 아주 간단하다.     방법은 크게 두 가지가 있는데, 나는 하나의 파일에서 관리하는 2번 방식을 선택했다. 서비스 규모가 크지 않기 때문에 내용이 많지 않아 하나의 파일에서 설정하는게 더 편할 것 같기 때문이다.  1. resources/application-{환경변수}.yml + application.yml (default) 형식으로 환경별로 설정 파일을 생성 2. resource/application.yml 하나의 파일에서 '---' 구분자로 구분      1. application.yml 파일 ..
[AWS] 에러해결 - 인스턴스 연결성 검사 실패, 메모리 부족 갑자기 ssh 접속이 되지 않아 aws EC2 콘솔에서 확인해보니, 상태 검사 에서 1/2개 검사 통과 라는 표시가 있었다.   인스턴스 > 상태 및 경보 메뉴에 들어가보니, 인스턴스 연결성 검사 실패가 원인이였다.  구글에 해당 에러 해결 사례를 검색해보니, 시스템 로그 가져오기에서 에러 원인을 파악하는 것 같았다.나도 에러를 확인하기 위해 먼저 EC2 서버 재부팅 후 로그를 봐도 도저히 에러 문구에 해당하는 내용을 찾지 못했다.     그래서 위 사진 속, 시스템 로그 페이지에서 아래쪽에 있는 연결 을 클릭해보았다.     EC2 직렬 콘솔은 또 뭘까..? 지금 이 계정이 EC2 직렬 콘솔을 사용할 권한이 없다고 하니까, 권한을 줘야겠지. Manage access 를 클릭한다.   '허용' 에 체크!..
[AWS, Spring Boot3] EC2 배포, 서버 스크립트, Nginx 설치 1. EC2 인스턴스 인바운드 규칙 추가(HTTP/S, SSH는 이전에 추가) Spring Boot Server, React Server 접근 허용을 위해 아래와 같이 추가해준다.      2. 서버 Java 설치, 환경변수 설정아래 명령어를 순서대로 입력한다# 서버 접속ssh -i "키페어파일명.pem" ubuntu@{퍼블릭_DNS_주소}# 우분투 패키지 업그레이드sudo apt-get update# Java17 설치sudo api install openjdk-17-jdk# 설치 확인java -version    그리고 아래 명령어를 통해 자바 환경 변수를 설정해준다# 환경변수 설정 확인 (결과 없음 상태)$ echo $JAVA_HOME# Java 절대경로 확인$ whice java/usr/bin/ja..
[Spring Boot3] SSH 터널링 설정 (EC2 > RDS 데이터베이스) 2024년 초부터 RDS 인스턴스에 Public IP 주소를 무료로 사용하지 못하게 되면서, RDS 데이터베이스를 EC2에 연결하는 작업을 진행했다.  Spring Boot 서버에서도 EC2 서버를 거쳐 RDS DB에 접근하도록 설정했다. Jsch 라이브러리를 사용했다.    1. build.gradle 추가dependencies { ... implementation 'org.mariadb.jdbc:mariadb-java-client:3.4.0' implementation 'com.jcraft:jsch:0.1.55'}  2. application.yml 수정spring: datasource: url: jdbc:mariadb://{DB_HOST명}/{DB명} driver-class-..
[AWS] 프리티어 EC2 생성, EC2-RDS 연결, DataGrip SSH 연결 EC2 생성하기 1. EC2 대시보드에서 "인스턴스 시작" 버튼 클릭  2. AMI (Amazon Machine Image) 선택  3. 키페어 생성   4. 네트워크 설정 / 스토리지 구성 * 스토리지 구성 - 30GiB로 용량을 높였다.    5. 인스턴스 생성 완료  6. 보안 그룹 생성  [ 인바운드 규칙 추가 ]- SSH : pem키로 인스턴스 접근 가능하도록 설정- HTTP(80포트), HTTPS(443포트)로 기본적으로 접근할 수 있도록 설정+ 추후에 EC2에 올린 스프링이나 리액트 접근시 인바운드 규칙에 추가 필요!     7. EC2 인스턴스에 보안 그룹 설정  8. 인스턴스 접속(연결)         EC2와 RDS 연결하기 이전에 만들었던 RDS에 EC2를 연결하려고 보니 아래와 같은..
[AWS] RDS Free Tier 과금 해결 어느 날 갑자기 AWS 에서 결제가 되었다. 일주일 전 RDS 하나 만들 때 분명 프리티어 허용량에 맞춰 생성 했는데 이게 무슨일인가 싶어 원인을 찾아봤더니..  https://aws.amazon.com/ko/about-aws/whats-new/2024/02/aws-free-tier-750-hours-free-public-ipv4-addresses/ 즉, 프리티어로 하나의 Amazon EC2용 무료 IPv4 주소를 사용할 수 있고 그 외에는 시간당 0.005USD 요금이 부과된다고 한다. 지금 내가 사용중인건 EC2가 아니라 RDS를 생성한거라 무료 사용에 해당되지 않아 요금이 부과된 것 같다. 로컬 컴퓨터에서 DataGrip 같은 툴을 사용해 DB에 접근할 수 있도록 하려 했는데, 이렇게 되면 ssh ..
[AWS] 프리티어 RDS 생성, DataGrip 연결 RDS 데이터베이스 생성AWS 프리티어로 RDS(Relational Database Service) 를 생성했다. DB 생성 설정과, 과금 방지를 위해 확인 할 부분은 아래와 같다. DB 설정 내용엔진 옵션 > MariaDB / 10.11.6 버전템플릿 > 프리 티어(Free Tier)설정DB 인스턴스 식별자 > "gods-work-db"마스터 사용자 이름 > "root"마스터 암호, 암호 확인 > "******"인스턴스 구성 > "db.t3.micro"스토리지할당된 스토리지 > 20 GiB스토리지 자동 조정 활성화 > OFF연결 / 퍼블릭 액세스 > "예"추가 구성초기 데이터베이스 이름 > 예)"gods-work"자동 백업 활성화 > OFF유지관리 / 마이너 버전 자동 업그레이드 사용 > OFF 기본적..