TIL #22 Deploy (배포하기)

Joshua Song / 송성현·2020년 1월 8일
0

이머시브_16

목록 보기
25/29

Introduction

Use SPA (Single Page Application) serve strategy to deploy data on web.

  • 단일 페이지 애플리케이션...단일 페이지로 구성. 서버 사이드 렌더링 보다 배포가 간단.
  • 모든 정적 리소스를 최초에 한번 다운로드. 이후 요청시 갱신에 필요한 데이터만을 전달 받아 갱신. 트래픽 감소.
  • 트래픽 감소와 속도, 사용성, 반응성 향상.
  • 사용자 경험 향상
  • 단점
    • 초기 구동속도: 최초에 한번 다운로드하기에 초기 구동 속도가 상대적으로 느림.
    • SEO(검색엔진 최적화): 자바스크립트 기반 비동기 모델(클라이언트 렌더링 방식). 웹페이지보다는 애플리케이션의 적합.

How should we deploy then?

S3

  • Amazon Simple Storage Service 는 인터넷용 스토리지 서비스.
  • 웹 서비스 인터페이스를 사용해 웹에서 데이터를 저장 및 검색.
  • 데이터 스토리지 인프라에 액세스도 가능.
  • 기능 세트를 사용하여 구현.
    • 버킷 만들기
    • 데이터 저장
    • 데이터 다운로드
    • 권한
    • 표준 인터페이스
  • 데이터 일관성 모델
    • PUT에 대한 한 가지 주의 사항을 제시 => 읽기 후 쓰기 일관성 제공.
    • Provides eventual consistency
    • Updates to a single key are atomic. Will never return corrupted or partial data.
    • Replicating changes in data after storage can take some time...may list the deleted object before all process is finished.
    • Does not support object locking. When two same requests are made, the one with the latest timestamp wins.

버킷

  • S3에 저장된 객체에 대한 컨테이너. 포장 박스? 담은 박스
  • 네임 스페이스를 최상위 수준으로 구성
  • 스토리지 및 데이터 전송 요금을 담당하는 계정 식별
  • 엑세스 제어에 사용
  • 사용량 보고를 위한 집계 단위

객체

  • 저장되는 기본 개체.
  • 객체 데이터와 메타데이터로 구성. (데이터는 S3에서 볼 수 없음)
  • 메타 데이터는 객체를 설명하는 이름-값 페어의 집합.
  • 키 및 버전 ID를 통해 버킷 내에서 고유하게 식별

리전 (Regions)

  • 버킷을 저장할 지리적 AWS 리전을 선택 가능.
  • 사용자가 명시적으로 객체를 다른 리전으로 전송하지 않는 한 해당 리전을 벗어나지 않음.

Features

  • 스토리지 클래스: 사용 사례에 따라 다양하게 설계된 스토리지 클래스가 있음.
    • S3 Standard: 자주 액세스 하는 데이터의 범용 스토리지 용
    • S3 Standard_IA: 수명이 길지만 액세스 빈도가 덜한 데이터
    • GLACIER: 장기적 아카이브

버킷 정책

  • 버킷 및 객체에 대한 중앙 집중식 액세스 제어를 제공

작업

일반적인 작업

  • 버킷 만들기: 객체를 저장할 고유한 버킷을 만들고 이름 지정
  • 객체 작성: 객체를 만들거나 덮어써서 데이터 저장. 버킷 네임스페이스에 고유한 키를 지정. 엑세스 제어를 지정하는 것도 굳.
  • 객체 읽기: 데이터를 다시 읽기. HTTP 또는 BitTorrent로 데이터 다운로드 가능.
  • 객체 삭제
  • 키 나열: 버킷 중 하나에 포함된 키 나열. 접두사로 목록 필터링 가능.

REST 인터페이스

  • REST API => HTTP 인터페이스: 표준 HTTP 요청으로 버킷과 객체 생성, 가져오고 삭제
  • HTTP를 지원하는 임의의 도구 키트로 REST API 사용 가능. 객체를 익명으로 읽을 수 있어야 함.
  • *SOAP 지원은 중단되었지만 (HTTP), HTTPS 를 통해 계속해서 사용할 수 있다. 하지만 새로운 Amazon S3 기능은 SOAP 에 대해 지원되지 않는다.

Amazon EC2

  • Amazon Elastic Compute Cloud 는 AWS에서 확장식 컴퓨팅을 제공.
  • Works the role of localhost.
  • 가상 서버 구축, 보안 및 네트워크 구성 및 스토리지 관리.
  • 규모를 확장하거나 축소도 가능.

기능

  • 인스턴스: 가상 컴퓨팅 환경
  • Amazon 머신 이미지 (AMI): 서버에 필요한 운영체제와 여러 소프트웨어들이 구성된 상태로 제공되는 템블릿을 사용해서 인스턴스를 쉽게 만들 수 있다.
  • 인스턴스 유형: 인스턴스를 위한 CPU, 메모리, 스토리지, 네트워킹 용량의 여러가지 구성 제공
  • 키 페어를 사용하여 인스턴스 로그인 정보 보호(AWS는 퍼플릭 키 저장 후 개인 키를 안전한 장소에 보관)
  • 인스턴스 스토어 볼륨: 임시 데이터 저장용 스토리지 볼륨. 인스턴스 종료시 삭제.
  • Amazon Elastic Block Store(Amzon EBS 볼륨)을 사용해 데이터 저장.
  • EC2의 리소스를 다른 장소에서 액세스 할 수 있게 리전 및 가용 영역 제공
  • 보안 그룹 사용, 방화벽 기능
  • 탄력적 IP 주소 (EIP): 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소
  • 태그: 사용자가 생성하여 Amazon EC2 리소스에 할당할 수 있는 메타데이터
  • 가상 네트워크 (Virtual Private Clouds)

RDS

  • Amazon Relational Database Service(Amazon RDS): 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹서비스
  • 데이터베이스 서비스 관리 작업을 해줌.

개요

  • CPU, 메모리, 스토리지 및 IOPS가 따로 분할 돼 독립적으로 확장 가능.
  • 백업, 소프트웨어 패치, 자동 장애 감지 및 복구 관리.
  • DB 인스턴스에 대해 shell 액세스를 제공하지 않음
  • 자동화된 백업 수행 혹은 고유한 백업 스냅샷을 수동으로 만들 수 있음. 데이터 베이스 복원 가능.
  • 동기식 보조 인스턴스에서 가용성을 높일 수 있음.
  • MySQL, MariaDB, PostgreSQL, Oracle 및 Microsoft SQL Server 같은 데이터 베이스 제품 사용 가능.
  • DB 패키지 보안 외에 AWS Identity and Access Management(IAM) 을 사용해 RDS 데이터 베이스에 액세스할 수 있는 사용자 제어 가능. 가상 사설 클라우드에 넣어 데이터 베이스 보호 가능.

DB 인스턴스

  • RDS의 기본 빌딩 블록.
  • 격리된 데이터 베이스 환경
  • 생성하고 수정 가능.
  • 계산 및 메모리 용량은 해당 DB 인스턴스 클래스에 의해 결정

리전 및 가용 영역

  • 가용성이 높은 데이터 센터 시설에 하우징.
  • 리전마다 가용 영역은 분리 되어 다른 영역의 장애에서 격리.
  • 가용 영역은 다른 영역에 대해 저렴하고 지연 시간이 짧은 네트워크 연결 제공

보안

  • DB 인스턴스에 대한 액세스 제어.
  • 지정 IP 주소 범위 또는 EC2 인스턴스에 액세스 할 수 있도록 허용하는 방법으로 제어
  • DB 보안그룹 & VPC 보안 그룹 & EC2 보안 그룹

RDS 작업 방법

  • AWS Management 콘솔
    • 웹 기반 사용자 인터페이스
    • 콘솔에서 DB 인스턴스 관리
  • 명령행 인터페이스
    • AWS CLI 를 사용해 대화식으로 액세스
  • Amazon RDS 사용 프로그래밍
    • RDS API 레퍼런스
    • AWS 소프트웨어 개발 키트 사용
      • 인증, 재시도 로직, 오류 처리 등 저레벨 정보 처리.
      • 애플리케이션 로직에 집중 가능
profile
Grow Joshua, Grow!

0개의 댓글