AWS 기본

InSeok·2023년 1월 31일
0

TIL

목록 보기
43/51

배운 내용


Cloud Computing

등장배경

  • 만약 서버가 요청에 대한 수용 능력이 한계에 도달한다면 어떻게 대처할까?
    • 과거
      • 같은 공간에 더 많은 컴퓨터를 제공하여 한 대가 해결할 수 있는 요청을 여러 대가 나누는 방식을 사용
      • 혹은 컴퓨터 한 대의 성능을 높이는 방식
      • 전산실 모습

Untitled

  • 기존 방식 한계
    • 주기적인 유지 관리가 필요
    • 공간의 한계 → 일부 거대 기업이 데이터 센터라는 거대한 건물을 세우기 시작 → 데이터 센터의 유휴 자원을 대여하는 서비스가 등장 →서버의 자원과 공간, 및 네트워크 환경을 제공을 빌려 사용하는 클라우드 컴퓨팅이 시작
  • 온프레미스
    • 데이터 센터에서 서버의 자원과 공간, 및 네트워크 환경을 제공하는 환경
  • 현대의 클라우드 컴퓨팅은 앞서 설명한 데이터 센터와 비슷한 역할을 하지만, 물리적인 컴퓨터가 아닌, 가상 컴퓨터를 대여한다.
  • 최근의 가상화 기술을 사용한 클라우드 서비스의 기존 온프레미스 형식 대비 장점
    1. 필요할 때마다 컴퓨팅 능력을 유연하게 조절할 수 있습니다.
    2. 고정적인 비용이 들어가는 온프레미스와는 달리 사용한 만큼의 요금만 지불하면 됩니다.
    3. 컴퓨터의 스냅샷("이미지"라고 부릅니다) 을 이용해 다른 컴퓨터로 즉시 이주(migration)가 가능합니다.
  • 단점
    • 운영환경이 특정 클라우드 사업자(vendor)에게 종속된다
  • 클라우드는 모든 것을 서비스화하는 것을 목표로 합니다.

Untitled

Untitled

Deployment

  • 배포란 개발한 서비스를 사용자들이 이용 가능하게 하는 일련의 과정

Untitled

  • 작성한 코드가 다른 환경에서 정상 작동할 수 있게 하려면, 설정을 환경 변수( env)에 저장해야 합니다.
  • 환경 변수는 코드 변경 없이 배포 때마다 쉽게 변경할 수 있습니다.
  • 절대경로 대신 상대경로 사용
  • docker와 같은 개발환경 자체를 통일시키는 솔루션을 사용

EC2

  • 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스
  • AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는것
  • 아마존이 전 세계에 만들어 놓은 데이터 센터(인프라)에 만들어져 있기 때문에
    컴퓨터를 조작하기 위해 네트워크(인터넷)를 통해서 컴퓨터를 제어해야 한다
  • EC2에서는 AMI라는 다양한 템플릿을 제공하고 있어서 필요에 따라 손쉽게 운영체제를 선택하고 구성할 수 있습니다.
  • 운영체제뿐만이 아니라 CPU와 RAM, 용량까지도 손쉽게 구성
  • AMI(Amazon Machine Image)는 소프트웨어 구성이 기재된 템플릿

클라우드 컴퓨팅
인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스

클라우드 스토리지

  • 클라우드 스토리지란 쉽게 말해서 인터넷 공간에 데이터를 저장하는 저장소
  • ex) 구글의 Google Drive,
  • 뛰어난 접근성 - 웹 환경이라면 언제 어디서나 저장된 파일에 접근가능

웹호스팅

  • 웹 호스팅이란 서버의 한 공간을 임대해 주는 서비스
  • 개인 또는 단체가 웹 호스팅 업체가 제공하는 서버의 한 공간을 빌려서 원하는 서비스를 배포할 수 있습니다.
  • 정적 파일은 서버의 개입 없이 생성된 파일을 뜻합니다. 반대로 클라이언트가 서버에 요청을 보내면, 서버가 요청에 맞추어 그 자리에서 생성한 파일을 '동적' 파일이라고 부릅니다

S3(Simple Storage Service)

  • AWS에서 제공하는 클라우드 스토리지 서비스
  • 정적 웹사이트 호스팅이 가능
  • 높은 확장성과 강력한 내구성

가용 영역(Availability Zone)이란 각 리전 안에 존재하는 데이터 센터(IDC)를 뜻합니다. 가용 영역은 각각 개별적인 위치에 떨어져서 존재합니다. 그래서 한 곳의 가용 영역이 재난이나 사고로 인해 가동이 불가능해지더라도 다른 가용 영역에 백업을 해놓은 데이터를 활용하여 문제없이 서버가 가동되게 합니다. 이런 가동 방식 덕분에 AWS에서 제공하는 서비스들은 높은 가용성과 내구성을 보장

Bucket

  • S3에 저장되는 파일들이 담기는 바구니
  • 버킷이 사용자들이 정적 웹 사이트를 배포할 수 있는 공간을 제공
  • 버킷이라는 저장 공간에 정적 파일을 업로드하고 버킷을 정적 웹 사이트 호스팅 용도로 구성하면 정적 웹 사이트를 배포할 수 있습니다.
  • 버킷의 이름은 각 리전에서 고유해야한다.
  • 버킷의 정책을 생성하여 액세스 권한 부여 가능
    • 객체
      • 객체는 버킷에 담기는 파일을 뜻한다.
      • 객체는 key-value 페어 형식으로 데이터를 저장
      • 객체는 파일과 메타데이털 구성
      • 모든 객체는 고유한 키를 가짐
      • url 주소를 통해서 객체에 접근 가능

RDS( Relational Database Service)

  • AWS에서 제공하는 관계형 데이터베이스 서비스
  • EC2 인스턴스에 관계형 데이터베이스 엔진을 설치해서 데이터를 관리할 때와 RDS를 통해 데이터를 관리할 때의 차이

Untitled

Untitled

3 Tier Architecture

빌드란?
일반적인 의미의 빌드는, 소스코드를 실행 가능한 번들로 변환하는 컴파일 과정을 의미

불필요한 데이터를 없애고, 통합/압축하여 배포하기 최적화된 상태를 만드는 것
데이터의 용량이 줄어들고 웹 사이트 로딩 속도가 빨라진다.

  • 프론트 배포

Untitled

  • S3로 사용자들에게 Client Application을 제공하고 있는데, 사용자가 지구 반대편에 있다면 어떻게 빠르게 서비스를 제공할 수 있을까요?
  • AWS에서 제공하는 CDN 서비스인 CloudFront를 통해서 각지의 데이터센터에 데이터를 분산시켜서 저장해 뒀다가 가까운 지역에서 데이터를 주는 방식으로 사용자에게 더 빠르게 서비스를 제공할 수 있습니다
  • 백엔드 배포

Untitled

  • AWS에서 제공하는 Route 53 서비스를 이용하면직관적인 도메인 주소를 통해서 서비스에 접근하도록 할 수 있습니다.

보안 그룹

  • 보안그룹이란 인스턴스로 들어가고 인스턴스에서 나가는 트래픽에 대한 가상 방화벽
  • 인스턴스로 들어가는 트래픽은 인바운드
  • 인스턴스에서 나가는 트래픽을 아웃바운드
  • 인바운드규칙
    • EC2 인스턴스로 들어오는 트래픽에 대한 규칙입니다.
    • 인바운드 규칙에 허용되지 않은 규칙은 인스턴스로 접근하지 못하도록 필터링
    • EC2 인스턴스에서 실행중인 서버가 인터넷에서 요청을 받을수 있도록 인바운드 규칙을 설정

Untitled

  • 아웃바운드 규칙
    • EC2 인스턴스에서 나가는 트래픽에 대한 규칙
profile
백엔드 개발자

0개의 댓글