해당 포스팅은 이론보다 순수한 시행착오 기록입니다.
파일 업로드를 할 공간이 필요해서 S3 Bucket을 생성해보자.
설정을 보다 보면 이 옵션은 이렇게 설정하는 게 맞나? 싶을 때가 많다. 생성 후 수정이 골치아프니까.
s3 버킷 생성 참고
https://celdan.tistory.com/36
위 블로그로 버킷을 생성한 뒤에는 아래를 따라한다.
https://gaeggu.tistory.com/33
요약하자면 EC2가 더 싸고, RDS는 비싼 대신 전문 기능들을 더 제공한다.
참고
https://www.smileshark.kr/post/amazon-ec2-vs-amazon-rds-how-to-choose-right-hosted-database
뭘 쓸까 하다가 사수한테 여쭤봤더니
"왜 굳이 ec2를?" 니가 직접 다 커스텀 할 게 아니면 걍 rds로 해~
그런고로 rds를 연동해보자. 디비는 Mysql을 사용하겠다.
아래 사이트를 따라한다. (Spring boot 디비 연동까지)
https://velog.io/@u-nij/Spring-Boot-AWS-RDS-MySQL-연동하기
쭉~ 따라하다가 보안그룹 부분은 일단 스킵했다.
내 로컬 PC에서 접속하려면 아래 처럼 보안 그룹 생성 > 대상에 내 ip 옵션을 select 하면 된다.
보안 그룹이 중요하긴 한데, 연결 빨리 하려고 일단 디비버에 연동을 했다.
aws 가서 엔드포인트와 포트를 메모해둔다.
1. Connect by 를 Host로 설정한다.
2. Server Host에 아까 엔드포인트 붙여넣고 Database에 이름 추가.
3. 계정 정보 넣는다. => 나의 경우 admin/비밀번호
4. Test Connection 눌러서 확인
커넥션 성공하면 완료
프로젝트 gradle 설정을 초기에 db 관련을 추가하고 생성했더니 이거 연결을 안하고 안 돌아간다.
Gradle 설정 추가는 쉬우니까 제발 작게 시작하자.
얼른 프로젝트랑 연결을 해보자.
전체 프로젝트 구조 한번 찰칵
application.yml에 아래 설정 추가
# DB 관련
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://{엔드포인트}:{포트번호}/{(초기)데이터베이스}?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
username: {마스터 사용자 이름}
password: {마스터 암호}
해결) 인텔리제이 우측의 Gradle 탭 가서 build 누르면 끝.
출처) https://sanghye.tistory.com/30
성공적으로 프로젝트 실행 완료. (Git에 application.yml 정보는 올리지 말자!)
다음 포스팅에는 S3 테스트를 할 예정이다.