본문 바로가기

스파르타 내일배움캠프

TIL32

오늘은 팀장님이 프로젝트기간중에 aws배포부분도 도맡아하셨기에 저희가 해보기에는 많은 시행착오가있을거같아서 팀장님이 이번프로젝트때 AWS 에서 서비스를 제공하고있는 RDS라는 데이터베이스를 사용해서 EC2에서 RDS를 거쳐서 S3에서 static 폴더에서  js파일들이나 css파일들 혹은 이미지파일을 가져오는 그런 역할을 한다 그래서 팀장님이 오늘 프로젝트의 끝 발표전에 팀장님이 해왔던 그 배포과정을 팀원들에게 어떻게하는지 해보고 또 그 과정에대해서 교정을 해주셨다. 너무나도 감사한일이였다 이 관계에 대해서 명확하게 인지가 아직은 안돼서 자료를 찾아봤더니 아래와같이 정리를 해놨다.

 

 

 

requirements.txt 
가상환경에 쓰인 라이브러리 적어두는곳

pip install -r requirements.txt


mysql
db에서 스키마를 만들고 dbname을 settings.py에 있는 DATABASES에 있는 부분에


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # engine: mysql
        'NAME' : 'project1', # DB Name
        'USER' : 'admin', # DB User
        'PASSWORD' : <설정한 패스워드>, # Password
        'HOST': 'database-1.c81rqsppwitx.us-east-1.rds.amazonaws.com', # 생성한 데이터베이스 엔드포인트
        'PORT': '3306', # 데이터베이스 포트
        'OPTIONS':{
            'init_command' : "SET sql_mode='STRICT_TRANS_TABLES'"
        }
    }
}

AWS 의 기본 서비스 S3, EC2, RDS에 대하여

AWS는 Amazon Web Service, 즉 아마존에서 제공하는 클라우드 서비스로 다양한 서비스를 제공한다. AWS는 쉽고 빠른 확정성을 제공하고 저렴한 비용으로 사용한 용량 만큼만 비용을 지불하며 빠른 속도 등 여러가지 장점을 지니고 있다. AWS 서비스 중 3가지 S3, EC2, RDS에 대해서 알아보고자 한다.

  1. S3
    S3(Simple Storage Service)는 데이터를 저장하거나 추출하게 해 주는 온라인 스토리지 웹 서비스이다. 즉 파일 서버의 역할을 하는 서비스이다. 하나의 저장 공간을 구성하고 그 공간에 데이터를 자유롭게 업로드, 다운로드 할 수 있다. HTTP 프로토콜로 파일에 접근할 수 있다. 일반적인 시스템과는 다르게 파일(또는 데이터) 이름인 key 와 파일 자체인 value 로 구분되는 객체 형태로 파일을 저장한다.

*S3의 기본 개념

객체(Object) : S3에 데이터가 저장되는 최소 단위. 1) 파일 2) 메타데이터로 구성된다.

- 기본적으로 객체의 Key가 데이터의 이름이고, Value가 데이터 파일입니다.
- 객체 하나의 크기는 최소 1Byte부터 4TB까지임.
- 메타데이터는 HTTP Content-Type 형식이다. 파일의 확장자에 따라 자동으로 설정되며 임의로 설정할 수도 있다. Key-Value 형식으로 저장됨.
- 버킷(bucket) : S3에서 생성할 수 있는 최상위 디렉토리로 버킷은 각 Region 별로 생성이 가능하고, 버킷의 모든 이름은 모든 S3 Region에서 유일해야 한다. 계정별로 100개까지 생성할 수 있습니다.

특징

  • 많은 사용자가 접속을 해도 이를 감당하기 위해서 시스템적인 작업을 하지 않아도 된다.
  • 저장할 수 있는 파일 수 및 용량의 제한이 없다.
  • 저속 제어 및 권한 관리가 가능하다.

2.EC2
EC2(Elastic Compute Cloud)는 아마존 웹 서비스에서 제공하는 서비스로 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스이다. 개발자가 더 쉽게 웹 규모의 클라우드 컴퓨팅 작업을 할 수 있도록 설계되었다.

*클라우드란?
컴퓨터 통신망이 구름과 같은 것에 싸여 안이 보이지 않고, 일반 사용자는 이 복잡한 내부를 굳이 알 필요도 없이 어디에서나 구름 속으로 손을 집어넣어(통신망에 접근해서) 자기가 원하는 작업을 할 수 있다는 것이다. 이른바 동일한 체험을, 인터넷이 연결된 어디에서나 보장해주는 것이다.

클라우드 컴퓨팅은 클라우드 속에서 클라우드에 연결된 다른 컴퓨터로 정보를 처리하는 기술을 의미한다.

EC2는 가상의 컴퓨터를 빌려주는 서비스라고 생각하면 이해하기가 쉽다. 비록 가상이지만 실제 컴퓨터와 동일하게 사용할 수 있다. 가상 컴퓨터에 운영체제를 설치하고 프로그램들을 설치하여 서버를 구축할 수 있다. EC2에서 말하는 인스턴스라는 것은 생성된 1대의 가상 컴퓨터를 의미한다.

EC2는 물리적이 아니라 아마존에서 세계 각 지역에 만들어놓은 인프라(데이터 센터)에 만들어지는 것이기 때문에 네트워크를 통해 제어를 해야한다. 웹 서버를 설치하고 이 웹서버를 통해서 사용자가 웹브라우저를 통해 요청하는 웹페이지나 이미지, 동영상 등을 제공한다.

특징
- 인터넷을 통해서만 접속을 할 수 있다.
- 컴퓨터 주문 후 1분안에 생성이 가능하며 삭제 역시 즉시 제거가 가능하다.
- 하드웨어 및 소프트웨어를 구입하고 온사이트 데이터 센터를 설치 및 운영하면서 발생하는 지출을 줄일 수 있다.

3.RDS
RDS 에 대해 알아보기 전에 먼저 RDB 에 대해서 알아본다. RDB(Relational Database)란 관계형 데이타 모델에 기초를 둔 데이터베이스이다. 즉 데이터 항목 간에 사전 정의된 관계가 있을 때 그러한 데이터 항목들의 모음을 가리킨다.

*관계형 모델이란?

이 모델은 데이터를 행과 열을 이루는 하나 이상의 테이블(또는 관계)로 정리하며, 고유 키(Primary key)가 각 행을 식별한다. 일반적으로 각 테이블/관계는 하나의 엔티티 타입(고객이나 제품과 같은)을 대표한다. 행은 그 엔티티 종류의 인스턴스(예: “Lee” 등)를 대표하며 컬럼은 그 인스턴스의 속성이 되는 값들(예: 주소나 가격)을 대표한다.

*용어
튜플(Tuple) : 하나의 항목을 대표하는 데이터
속성(어트리뷰트, attribute) 또는 필드 : 튜플의 이름 요소 (예: “주소”, “태어난 날짜”)
관계 또는 기초 관계변수 : 같은 속성을 공유하는 튜플의 모임. (컬럼이나 로우의 모임.)

특징

  • 모든 데이터를 2차원 테이블로 표현
    - 테이블은 row(record, tuple)과 column(field, item)으로 이루어진 기본 데이터 저장 단위
    - 상호관련성을 가진 테이블(table)의 집합
    - 만들거나 이용하기도 비교적 쉽지만, 무엇보다도 확장이 용이하다는 장점을 가짐

RDS(Relational Database Service) 는 RDB를 간편하게 운영하고 설정하고 확장하게 해 주는 서비스이다. RDS 의 특징으로는

  • DB 의 설치 및 관리를 할 필요가 없고 백업이나 복구가 더욱 편리하다.
  • 확장성이 뛰어나다.
  • API 호출을 통해 쉽게 처리하도록 설계되어 있다.
  • 키를 이용하여 DB를 암호화함으로서 보안성이 뛰어남.

 

 

 

 

 

 

'스파르타 내일배움캠프' 카테고리의 다른 글

TIL34  (0) 2022.06.16
TIL33  (0) 2022.06.16
판타스틱4 KPT 회고  (2) 2022.06.14
TIL31  (0) 2022.06.13
TIL30  (0) 2022.06.11