AWS 이용하기

Purple·2021년 12월 1일
0

TIL

목록 보기
65/73

1. AWS (Amazon Web Service)

  • Cloud Computing의 등장은 기존 서버 방식에는 한계에서 비롯됐다.

    • 주가적인 유지관리가 필요함
    • 공간의 한계에 부딪힘
  • 기존 서버의 한계 때문에 서버의 자원과, 공간 및 네트워크 환경을 제공하는 클라우드 컴퓨팅이 시작되었다. (이러한 환경을 “On-premise”라고 부른다.)

  • 최근 가상화 기술을 사용하는 클라우드 서비스는 기존의 On-premise 형식과는 다른 장점이 있다.

    • 필요할때마다 컴퓨팅 능력을 유연하게 조절할 수 있다.
    • 고정적인 비용이 들어가는 On-premise와는 달리 사용한 만큼의 요금만 지불하면 된다.
    • 컴퓨터의 스탭샷(이미지)을 이용해 다른 컴퓨터로 즉시 이주(migration)가 가능하다.
  • 하지만 단점도 있다.

    • 운영 환경 자체가 클라우드 제공자에게 종속되어, 만약 클라우드 서비스에 문제가 생기면 내가 배포하고 관리하는 환경에도 영향을 미친다.
    • 백엔드 구성을 클라우드 제공자의 기술로만 해야하므로, 해당 기술을 익혀야한다.

1-1. 대표적인 클라우드 서비스 형태 3가지

  1. SaaS(Software as a Service)
  • 클라우드 제공자가 당장 사용 가능한 소프트웨어를 제공하는 경우
    예) Google Docs
  1. PaaS(Platform as a Service)
  • 클라우드 제공자가 데이터베이스, 개발 플랫폼까지 제공하는 경우
    예) AWS RDS
  1. IaaS(Infrastructure as a Service)
  • 클라우드 제공자가 가상 컴퓨터까지만 (즉, 인프라만) 제공하는 경우
    예) AWS EC2

이런 재미있는 그림으로 설명도 가능하다 🤣

출처: (https://twitter.com/bobgillvan/status/530405224037765120?lang=fr)

2. AWS 서비스 EC2

  • Elastic Compute Cloud 로 사용한 만큼 비용을 지불하여 탄력적이고, 비용뿐만 아니라 필요에 따라 성능,용량을 자유롭게 조절할 수도 있다는 의미로 Elastic이라는 단어가 사용된 것으로 보인다. 즉, EC2 서비스는 AWS에서 비용, 성능, 용량 면에서 탄력적인 클라우드 컴퓨터를 제공하는 서비스라고 할 수 있다.
    아마존 웹 서비스(AWS) 에서 제공하는 클라우드 컴퓨팅 서비스로, AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한대 빌리는 것이다.
  • 이 클라우딩 컴퓨팅은 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스이다.
  • AWS에서 빌리는 컴퓨터를 Instance(인스턴스) 라 한다. 인스턴스는 1대의 컴퓨터를 의미하는 단위이다.
  • 아마존 EC2를 통해서 할 수 있는 가장 기본적인 일은 웹서버를 설치하고 웹 서버를 통해서 사용자가 웹 브라우저를 통해 요청하는 서비스를 제공하는 것이다.
  • EC2 서비스의 장점
    • 구성하는 필요시간이 짧다.
    • 다양한 운영체제에 대한 선택이 가능하다. AMI라는 다양한 템플릿을 제공하고 있어서 필요한 용도에 따라 손쉽게 운영체제를 선택하고 구성할 수 있다.
    • 운영체제 뿐만 아니라 CPU, RAM,용량까지도 손쉽게 구성할 수 있다.
  • AMI (Amazon Machine Image)
    • 인스턴스를 생성하는데 필요한 소프트웨어 구성(운영체제, 애플리케이션 서버, 애플리케이션)이 포함된 템플릿이다.
    • 단순히 운영체제(윈도우, 우분투 리눅스 등)만 깔려있는 템플릿을 선택할 수 도 있고, 아예 특정 런타임 (우분투+node.js, 윈도우+JVM 등)이 설치되어 있는 템플릿이 제공되는 경우도 있다.
  • 인스턴스는 선택한 AMI를 토대로 구성된다.
    • Amazon EC2 선택 → AMI 종류 선택 → Instance 생성
  • AWS EC2 인스턴스를 생성한다는 것은 AMI를 토대로 운영체제, CPU, RAM 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것이다.

3. AWS 서비스 RDS

  • RDS는 Relational Database Service의 약자로 AWS에서 제공하는 관계형 데이터 베이스 서비스를 말한다.

  • 단점으로는 모든 PaaS 서비스의 취약점 중에 하나는 사용 중이지 않을 때도 상관없이 계속 비용을 지불해야만 한다는 점이 있다.

  • EC2 인스턴스에 MySQL과 같은 관계형 데이테베이스 엔진을 설치하지 않고 RDS를 따로 이용하는 이유는 무엇일까?
    → RDS를 이용하면 데이터베이스 유지보수와 관련된 일들을 RDS에서 전적으로 자동관리한다. 사용자가 해야할 일은 초기 설정을 제외하고 데이터베이스에 저장된 데이터를 관리하는 일 밖에 없어 큰 편의성을 느낄 수 있다. 예를 들어 한쪽 가용영역에서 장애 및 에러가 발생할 경우, 문제에 영향을 받지 않게 독립된 다른 가용영역에 미리 복제된 데이터베이스를 자동으로 사용해서 복구(Failover)시키는 기능이 있다.

4. AWS 서비스 S3

  • Simple Storage Service의 약자로, 클라우드 스토리지 서비스를 생각하면 된다. 클라우드 스토리지는 인터넷 공간에 데이터를 저장하는 저장소이다.
  • 클라우드 스토리지 서비스는 뛰어난 접근성을 가지고 있다. 그리고 컴퓨터 뿐만 아니라 웹에 접속 가능한 다른 전자기기를 활용하여 클라우드 스토리지에 저장된 데이터에 접속할 수 있다.

4-1. Amazon S3의 장점

  1. 접근성 외에도 Amazon S3는 무한한 확장성을 가지고 있다. 그리고 사용한 만큼만 비용을 지불하면 되기 때문에 비용적인 측면에서 매우 효율적이다.
  2. 강력한 내구성을 가진다. 내구성이 높다는 것은 저장된 파일을 유실할 가능성이 낮다는 것이다.
  3. 가용성이 높다. 가용성이 높다는 것은 스토리지에 저장된 파일들을 정상적으로 사용할 수 있는 시간이 길다는 것이다. Amazon S3는 연간 99.99%의 스토리지 가용성을 보장하도록 설계되어있다.
  4. 다양한 스토리지 클래스를 제공한다. 클라우드 스토리지를 어떤 목적으로 활용할지에 따라 효육적으로 선택할 수 있는 스토리지 클래스가 달라진다. S3 Standard, S3 Glacier, Standard-IA, One Zone-IA, S3 Glacier Deep Archive 등
  • 대표적으로 많이 선택하는 클래스는 Standard와 Glacier클래스이다.
    • Standard는 범용적인 목적으로 사용하기 좋다. 데이터에 빠른 접근이 가능하고, 데이터 엑세스 요청에 대한 처리 속도가 빠르다. 대신 보관 비용이 높게 발생하므로, 데이터를 오래 보관하는 목적으로 효율적이지않다.
    • Glacier는 장기적인 보관 목적으로 스토리지를 사용할 때 효율적이다. 저장된 데이터에 엑세스하는 속도는 느리지만 데이터를 보관하는 비용이 매우 저렴하기 때문이다.
  1. 정적 웹 사이트 호스팅이 가능하다.
  • 정적 파일이란, 서버의 개입없이 클라이언트에 제공될 수 있는 파일을 뜻한다. 만약, 클라이언트가 서버에 요청을 보내고 서버가 요청에 마추거 그 자리에서 생성한 파일이 있따면 그 파일은 동적 파일이라고 부르는 것이다.
  • 웹 호스팅이란 서버의 한공간을 빌려주어 웹 사이트의 배포, 운영을 가능하게 만들어주는 서비스이다.
  • S3 에서는 버킷이 사용자들의 정적 웹사이트를 배포할 수 있는 공간을 제공한다. 버킷이라는 저장 공간에 정적 파일을 업로드하고 버킷을 정적 웹 사이트 호스팅 용도로 구성하면 정적 웹 사이트를 배포할 수 있다.
    • 버킷이란 S3에 저장되는 파일들이 담기는 바구니이다.
    • 파일을 저장하는 최상위 디렉토리라고도 설명할 수 있다.
    • S3에서 저장되는 모든 파일은 버킷안에 저장되어야하고, 버킷은 무한한 양의 파일을 저장할 수 있다.
    • 각각의 버킷은 이름을 가지고 있는데, 버킷의 이름은 버킷이 속해있는 리전(버킷이 생성된 지역)에서 유일해야한다.
    • 버킷 정책을 생성하여 해당 버킷에 대한 다른 유저의 접근 권한을 부여가능하며 관리할 수 있다.
    • S3에서 버킷에 데이터를 저장할 때 키-값 페어 형식으로 저장하기 때문에, 버킷에 담기는 파일을 객체라고 부른다.
    • S3에 저장되는 객체는 파일과 메타데이터로 구성된다.
    • 파일의 값에는 실제 데이터를 저장한다. S3 객체의 값으로 저장될 수 있는 데이터의 최대크기는 5TB 이다.
    • 파일의 키는 각각의 객체를 고유하게 만들어주는 식별자 역할을 한다. 파일의 키를 이용하여 원하는 객체를 검색할 수 있다.
    • 메타데이터는 객체를 설명하는 데이터로, 객체의 생성일, 크기, 유형과 같은 객체에 대한 정보가 담겨있다.
    • 모든 객체는 고유한 URL 주소를 가지고 있다. URL 주소는 http://[버킷의 이름].s3.amazonaws.com/[객체의 키]의 형태를 띠고, URL 주소를 통해서 원하는 데이터에 접근할 수 있다.
profile
다시 보면, 더 많은 것들이 보인다.

0개의 댓글