220427_내일배움캠프_TIL

Today Jeeho Learned·2022년 4월 27일
0

TIL

목록 보기
9/249

<오늘 배울 것>

  • AWS에서 DB다루기
  • RDS 사용방법
  • ElastiCache사
  • ElasticSearch service 사용방법

01. 클라우드 시대의 데이터베이스 관리

  • 1.웹서비스에서 가장 중요한 것은 데이터베이스였다.

  • 2.아키텍처의 변화로 데이터베이스가 가벼워지게 되었다.

  • 3.데이터베이스도 클라우드에 매니지드 되는 서비스를 사용하게 되었다.

  • 4.개발에 집중할 수 있게 되었다.

    2TIER아키텍처

MSA아키텍처

02. RDBMS(SQL) 알아보기

1) RDBMS(SQL) : 관계형 데이터베이스로 거의 모든 서비스의 메인 데이터 베이스이다.

2) RDBMS vs NoSql

  • RDBMS
  1. 엑셀과 같다고 보면 된다.

  2. 테이블을 만들때 컬럼이 고정되어 있기때문에 서비스가 시작되면 컬럼을 수정하기 쉽지않다.
    (그렇기 때문에 많은 서비스회사들이 정기점검을 한다.)

  3. 테이블을 여러개 만들어서 relaiton 할수있다.

  4. oracle(점유율 세계1위), mysql, postgresql, mssql이 있다.

  • Nosql
  1. key:value 값 형태인 json형태로 데이터가 저장된다.
    (도큐먼트라는 RDBMS의 테이블과 비슷한 곳에 저장된다.)
  2. 컬럼이 고정되지 않기 때문에 변경이 용이하다.
    (그렇기에 비정형화된 데이터를 저장하는 용도로 사용)
  3. MONGODB , 카산드라

03. RDS 설치

1) RDS: AWS에서 관리할수있는 관계형 데이터 서비스이다.
(클라우드를 사용비용은 들지만 개발에만 집중하게 해준다!)

t2.micro 생성

04. RDS 사용

  • 데이터를 저장 수정 조회 하기 위해서 사용한다!

  • 어플리 케이션과 연동하려면 엔드포인트가 중요!

  • MYSQL 기본 포트는 3306

  • 클라우드는 자동화를 지향!

  • 파이참 프로버전에서는 data베이스를 지원해주는데 name은 rds로 host는 아까 복사했던 엔드포인트값을 넣어준다.

  • DB를 설정할때 만들었던 user이름과 암호를 입력하고 testconnection하면 내 컴퓨터에서 aws상에서 만든 RDS에 접속하게 된다.

-데이터를 저장하는 최소단위인 테이블을 만드려면 스키마를 만들어야한다.
스키마는 테이블을 가지고있는 그룹의 한 형태(테이블을 가지고 있는 부모)
스키마를 여러개 만들고 그밑에 테이블을 만들어 관리할수있음


한글을 깨지지 않기 위해서 preview에 넣어준다.


file인 테이블을 만들고 그 안에 사용할 file_name컬럼과 type를 정해준다.

툴에서 제공하는 간단한 방법인데, 파일.png를 넣었다가 뺄수있다 두 과정에서 submit를 누르기


쿼리를 날려보았다! 조회가 된다!

insert into file테이블(컬럼명) values(넣을데이터) 형식

05. RDS, Python 연동해보기


EB에서 배포를 하고 EB에서 RDS에 연결해야하니 보안그룹이 연동이 되도록 설정되어있나 확인해야한다. (인바운드 규칙추가해주기)

(보안그룹: EC2와같은 아이템들의 포트, 들어오고 나오는 포트를 조절해주는 아이템) = 인바운드

모든 아이피를 받을수있도록 규칙을 추가해줘야한다.

강의처럼 바로 밑에 추가가 안되서 같은 조건에서 소스만 사용자지정이 아니라(사용자지정이 선택이 안됨) anywhere로 설정해주었다.


라이브러리를 설치해줘도 빨간줄이 계속있다. 왜이럴까 킹받는다..

환경변수를 4개 추가해준다, 각4개의 요소에 db생성시이름/db패스워드/테이블이름/엔드포인트를 넣어주면 된다.

my-front에서 eb의 url을 넣어주고 푸쉬

잘나온다. db에서 처음에 png파일 2개 올리것을 빼주니까 업로드한 사진만나온다!

06. Redis 알아보기

Redis : 인메모리 db이다. 데이터베이스가 메모리를 어디에 저장하는지 알아야한다!
DB는 데이터가 저장할수록 디스크에 관련된 파일의 사이즈가 늘어난다.
이런 데이터를 파일에 저장한다. 파일에 저장하는거보다 메모리에 저장하는것이 훨씬 빠르다.
(파일에서 읽고 쓰는 행위보다 메모리에 두게되면 접근성이 빨라진다. 과부화가 많아지는 쪽은 redis를 사용)

RDBMS의 부하를 덜어주기 위해서 Redis를 사용한다.
redis는 메모리, mysql은 파일에 저장

07. ElastiCache 사용

  • redis를 매니지드해주는 ElastiCache를 사용해보자
    RDS는 여러가지 매니지드해주지만 ElastiCache는 제일 유명한 Memcached,Redis 두가지만 있다.
  • RDS와는 다르게 보안그룹 먼저 생성

새로운 보안그룹을 생성해주었는데 redis의 기본 포트넘버는 6379이다.
모든 ip가 접속가능하도록 설정해주었다. 이렇게 열어놓아도 외부에서 접속이 안된다! aws내에서만 접속이 가능하다.


redis를 만들어주고있다. 분명히 보안그룹을 생성해줬는데 아까 만든 보안그룹이 보이지 않는다.
휴. 새로고침하니 보인다.

고급redis 설정따윈 없었는데, 설정하지않으면 안만들어준다..
결국 a,c를 묶어서 있는거 하나하긴했다.. 어찌될랑가,,

profile
기록해야 (살아)남는다 !

0개의 댓글