스프링부트 독학-11장 AWS에 프로젝트 배포하기-a

jaegeunsong97·2023년 9월 10일
0

출처

신서영개발자님의 스프링부트 책

새롭게 알게된 내용 정리

AWS 사전 지식

  • 여태까지 local에다가만 함, 이제 이거를 다른 PC에서도 접속가능하게 만들려면 배포를 해야함

    • 배포 방법 2가지
      • 서버용 PC 구매해서 배포
      • AWS와 같은 클라우드 컴퓨팅 서비스 이용해서 배포(V)
        • 따로 운영체제 설치와 같은 작업 없어도 가능
        • 기업이 구축한 환경서버 환경을 마련할 수 있어 편리
        • 다만 서비스가 조금 복잡해서 서비스 사용을 위한 공부 필요
          • EC2, S3, RDS 등등
          • 공부? 해야지 부족함을 느끼고 안하면 안됨 ㅇㅇ 상남자가 아니다
    • AWS 서비스 구현
      • EC2 : AWS에서 제공하는 원격 서버, 클라우드 서비스에서 PC를 1대 빌리는 것
        • 오토 스케일링 : 유동적으로 EC2 관리해줌
          • 내가 만든 서비스 인기 급 상승 : EC2 증가
          • 내가 마든 서비스 인기 급 감소 : EC2 감소
        • 로드 밸런서 : 요청을 분산시킴
          • 분산 시킬려면 어디로 분산 시킴? 타겟 그룹이 필요
          • 타겟 그룹 : 로드 밸런서의 분산 목표 그룹
      • RDS : AWS에서 제공하는 원격 데이터베이스
        • DB도 클라우드에 옮기기
        • 아마존 관계형 데이터베이스
  • 엘라스틱 빈스톡 : 앞에 언급한 EC2, 오토 스케일링, 로드 밸런서, 타겟 그릅, RDS 한번에 관리 해줌

    • 밀키트라고 생각하기
    • 추가 비용 없이 애플리케이션 저장 및 실행하는데 필요한 AWS 리소스에만 비용이 할당
    • 엘라스틱 빈스톡 과정
      • 애플리케이션 생성
      • 애플리케이션의 소스를 번들 형태(.war)를 AWS 리소스에 업데이트
      • 엘라스틱 빈스톡이 자동으로 환경을 실행, 코드 실행이 필요한 AWS 리소스를 생성 및 구성
      • 환경을 직접 관리하고 필요한 경우 업데이트 또는 새로운 앱 버전 배포

AWS 계정 생성

회원가입하고 카드 번호 등록하기

엘라스틱 빈스톡으로 서버 구축

EB 생성


엘라스틱 빈스톡에 RDS 생성하기

데이터베이스 편집 클릭

사용자 이름, 비밀번호 기억

엔드포인트 + 포트 (기억하기)

다시 엘라스틱 빈스톡 -> 구성 -> 편집

SPRING_DATASOURCE_URL : jdbc:mysql://엔드포인트+포트번호/blog
SPRING_DATASOURCE_USERNAME : canine89(사용자이름)
SPRING_DATASOURCE_PASSWORD : 비밀번호
  • application.yml
spring:
  jpa:
    show-sql: true
    properties:
      hibernate:
        format_sql: true
    defer-datasource-initialization: true
# 애플리케이션 실행 시 엘리스틱 빝스톡에서 값을 덮어쓰므로 여기는 삭제
#  datasource: 
#    url: jdbc:h2:mem:testdb
#    username: song
  h2:
    console:
      enabled: true
  security:
  .
  .
  .

RDS 이동

VPC 클릭

인바운드 규칙 생성 클릭

(삭제 안하면 무슨 You may not specify a referenced group id for an existing IPv4 CIDR rule 에러 뜰거임)

삭제 -> 생성 -> 유형 : MYSQL/Aurora -> 소스 : 내 IP -> 규칙 저장

(만약 이렇게 해도 502에러가 뜬다? -> 아래 추가 후 실행 -> 그리고 다시 해당 부분 삭제 하고 다시 실행)

완성 장면

아이피 주소 확인(Ipv4)

  • 명령창에 ipconfig 쳐서 확인(알아서 확인들 하시요)

  • 인텔리제이와 연동하기

DB Browser 확인

HOST, PORT, USER, PASSWORD 입력 -> Test Connection 클릭

new SQL console

create database blog;
use blog;

create table article (
    id bigint not null AUTO_INCREMENT,
    author varchar(255) not null,
    content varchar(255) not null,
    created_at timestamp,
    title varchar(255) not null,
    updated_at timestamp,
    primary key (id)
);

create table refresh_token (
    id bigint not null AUTO_INCREMENT,
    refresh_token varchar(255) not null,
    user_id bigint not null,
    primary key (id)
);

create table users(
    id bigint not null AUTO_INCREMENT,
    created_at timestamp,
    email varchar(255) not null,
    nickname varchar(255),
    password varchar(255),
    updated_at timestamp,
    primary key (id)
);

  • build.gradle 추가
implementation 'mysql:mysql-connector-java'

세팅 끝

참고한 블로그

profile
블로그 이전 : https://medium.com/@jaegeunsong97

0개의 댓글