AWS DevOps 강의 6장 정리

minyeob·2023년 4월 18일
0

aws

목록 보기
12/18

AWS DevOps

6장 정리


엘라스틱 빈스톡 종료하기

  • EC2 의 보안그룹도 삭제 default를 제외하고 삭제해주기
  • Elastic Beanstalk 의 애플리케이션도 삭제해주기

엘라스틱 빈스톡 생성하기

소프트웨어→ 편집 → 환경 속성

  • RDS_HOSTNAME 은 추후에 MariaDB IP 주소로 변경

보안

  • EC2 키페어 설정

이렇게 설정해주고 EB 를 만들어 주면 된다!..


VPC 구성 이해

구성 정리

(1) EC2

퍼블릭 ip : 43.200.50.98

프라이빗 ip : 172.31.10.35

VPC ID : vpc-07522b959b6f9b266

보안그룹 이름 : awseb-e-qmdcwqz2yi-stack-AWSEBSecurityGroup-1H2QNSGMU5A5Q

보안그룹 ID : sg-02811273243c920a5

정리 해놓기

일단 VPC 는 Virtual Private Cloud 의 약자로 가상 개인용 클라우드라는 뜻을 가지고 있다.

VPC 의 내부에는 다음 그림과 같이 EC2가 있고, EC2 의 보안그룹이 오른쪽 그림과 같이 존재할 것이다.

우리는 이제 RDS 를 추가할 건데 RDS 가 무엇이냐? RDS는 Relational Database Service 의 약자로서

EC2 서버에 DB가 깔려 있는 것이라고 생각 하면 된다.

  1. RDS 는 밑의 그림처럼 VPC를 외부 엑세스를 금지시켜놓고 그곳에 놓은 다음에 EC2 서버 하고만 연결 가능하도록 설정할 수도 있고
  2. 위의 그림처럼 VPC 내부에 EC2와 RDS를 함께 놓고 EC2에서만 접근 가능하도록 설정하고, 또한 로컬 컴퓨터에서도 테이블 등을 넣어야 하므로 접근 가능하도록 설정해주면 된다.

그렇다면 위의 그림처럼 RDS를 EC2 에게만 개방하려면 어떻게 해야할까?

첫번째로는, 파란 줄이 쳐져있는 EC2의 IP들을 개방하는 방법이 있고

두번째로는, 같은 보안그룹에 넣어주면 된다!(같은 보안그룹끼리는 접근이 가능해지기 때문에!)


RDS 생성 및 Windows 접속

자~ 이제 RDS 를 한번 생성해보자

밑에 그림으로 설명을 대신하도록 하겠다.

정상적으로 생성된 RDS 확인.

이름 : aws-v4-rds

엔드포인트

aws-v4-rds.c18iilhiyk2x.ap-northeast-2.rds.amazonaws.com

포트 : 3306

VPC 보안 그룹 클릭

인바운드 규칙에 3306 포트가 없으므로 추가해주자!

로컬 컴퓨터에서 통신 가능하도록 내 IP보안그룹을 열어줘서 보안 그룹내에서 자유롭게 통신 가능하도록 설정!

이제 RDS와 연결해보도록 하자.

HeidiSQL을 설치

신규 클릭

이름: aws-v4-marid

호스트명 : RDS 엔드포인트

사용자 : RDS 만들때 적었던 사용자 명

암호 : RDS 만들때 적었던 암호 값

RDS 에 원격으로 접속 성공!


RDS 세팅하기

테이블을 만들어주고(MariaDB는 대소문자 구별 Book 주의!)

기존 character set 이 latin 으로 잡혀서 한글이 깨질 수 있기 때문에 utf8mb4 로 변경해 준다.


배포 v4 프로젝트 살펴보기

  • application-dev.yml
server:
  port: 8081
  servlet:
    encoding:
      charset: utf-8

spring:
  ...
	jpa:
	    open-in-view: true
	    hibernate:
	      ddl-auto: create
	      naming:
	        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
	    show-sql: true
	    properties:
	      '[hibernate.format_sql]': true
	output:
	    ansi:
	      enabled: always
	//서버 실행시에 색깔이 이쁘게 나타난다
	logging:
	  level:
	    '[org.springframework.boot.web]': DEBUG  
	// 로깅 레벨 : DEBUG INFO WARN ERROR 
	//로깅 레벨을 DEBUG로 설정해주면 모든 log 가 다 뜰것이고
	//로깅 레벨을 INFO로 설정해주면 INFO WARN ERROR log 만 뜨게 된다.
  • application-prod.yml
server:
  port: 5000   //포트가 5000번인 모습 
  servlet:
    encoding:
      charset: utf-8

spring:
  datasource:
    url: jdbc:mariadb://${rds.hostname}:${rds.port}/${rds.db.name} 
    driver-class-name: org.mariadb.jdbc.Driver
    username: ${rds.username}
    password: ${rds.password}

  jpa:
    open-in-view: true
    hibernate:
      ddl-auto: none
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

logging:
  level:
    '[org.springframework.boot.web]': INFO

rds.hostname:{rds.hostname}:{rds.port}/${rds.db.name} 이 값들은 도대체 뭐지?

깃허브에 코드들이 쌩으로 올라가게 되면 보안이 좋지 않기 때문에 우분투에서 환경변수를 사용하듯이 위에서 엘라스틱 빈스톡을 만들때 설정한 환경 속성 값을 설정하고 ${ } 안에 변수를 넣으면 값이 들어가게 된다. 이렇게 되면 노출될 일이 없을 것이다.

참고)RDS_HOSTNAME 에는 RDS 엔드포인트 값이 들어간다


배포완료 및 테스트

jar 파일 만들어서 엘라스틱 빈스톡에 배포

postman 을 통해 post 요청 보낸 후 확인해보니 RDS 까지 연결이 잘 된 모습!


오늘의 한마디

CI/CD 만 남았다.. 힘내보자
profile
백엔드 개발자를 꿈꾸며 공부한 내용을 기록하고 있습니다.

0개의 댓글