Daily Front_Minhhk

AWS 본문

Code개발일지

AWS

Minhhk 2023. 2. 2. 17:12

아마존 웹 서비스(AWS)

아마존 웹 서비스(AWS)란 아마존이 자사의 노하우를 살려 제공하고 있는 ‘클라우드 컴퓨팅 서비스’를 의미한다.

 

🥶 EC2 (Elastic Compute Cloud) - 사용한 만큼 지불

 

EC2란 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스 클라우드 컴퓨팅은 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스입니다. 정리하면 아마존에서 가상의 컴퓨터를 한 대 빌리는 것과 같습니다.

EC2 서비스는 AWS에서 비용, 성능, 용량 면에서 탄력적인 클라우드 컴퓨터를 제공하는 서비스

1.구성하는 데 필요한 시간이 짧다

2.AMI를 통해서 필요한 용도에 따라 다양한 운영체제에 대한 선택이 가능(CPU와 RAM, 용량까지도 손쉽게 구성)

 

 

🥶 인스턴스 - 1대의 컴퓨터를 의미하는 단위

 

AWS에서 컴퓨터를 빌리는 것을 ‘인스턴스를 생성한다’ 라고 한다.

인스턴스를 생성한다’ → AMI를 토대로 운영체제, CPU, RAM 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것

 

 

 

🥶 AMI - 소프트웨어 구성이 기재된 템플릿

 

이미지 종류로는 단순히 운영체제(윈도우, 우분투 리눅스 등)만 깔려있는 템플릿을 선택하거나

아예 특정 런타임이 설치되어 있는 템플릿이 제공(우분투 + node.js, 윈도우 + JVM 등)

 

 

 

🥶 RDS(Relational Database Service) - AWS에서 제공하는 관계형 데이터베이스 서비스

 

→ 개인 소유 차량과 렌터카 회사에서 대여한 차량으로 비유

RDS를 이용하면 데이터베이스 유지 보수와 관련된 일들을 RDS에서 전적으로 자동 관리한다.

사용자가 해야 할 일은 초기 설정을 제외하고 데이터베이스에 저장된 데이터를 관리하는 일 밖에 없으며,

큰 편의성을 느낄 수 있습니다.

다양한 데이터베이스 엔진 선택지를 제공

 

 

 

 

🥶 S3(Simple Storage Service) - AWS에서 제공하는 클라우드 스토리지 서비스입니다.

 

Cloud Storage : 인터넷 공간에 데이터를 저장하는 저장소, 웹 환경이라면 어디서든 저장된 데이터에 접근이 가능함(뛰어난 접근성)

  1. 높은 확장성 → 많은 시간과 수고를 들이지 않고 스토리지 규모를 확장/축소 가능,
  2. 비용 효율성 → 스토리지의 용량을 무한히 확장(사용한 만큼 지불)
  3. 높은 내구성
  4. 스토리지 클래스를 제공 → 어떤 목적으로 활용할지에 따라 효율적으로 선택
  5. Standard 클래스,, 범용적 목적, 빠른 접근, 빠른 처리속도 <> 오래보관 하면 과금 발생
  6. Glacier 클래스,, 장기적 보관 목적 <> 액세스 속도는 느리지만, 비용 매우 저렴
  7. 정적(서버의 개입 없이 생성된 파일) 웹 사이트 호스팅이 가능 → 클라이언트 앱을 정적 파일로 빌드하여 제공
  • 리전 → AWS에서 클라우드 서비스를 제공하기 위해서 운영하는 물리적인 서버의 위치
  • 가용 영역(Availability Zone) → 각 리전 안에 존재하는 데이터 센터(IDC)를 뜻
  • 버킷 → S3에 저장되는 파일들이 담기는 바구니입니다. 파일을 저장하는 최상위 디렉터리, S3에서 저장되는 모든 파일은 버킷 안에 저장되어야 하고, 버킷에는 무한한 양의 파일을 저장할 수 있고, 각각의 버킷은 이름을 가지고 있는데, 버킷의 이름은 버킷이 속해 있는 리전(버킷이 생성된 지역)에서 유일
  • 객체 → 버킷에 담기는 파일 (파일과 메타데이터로 구성), 파일(키-값) 파일의 값에는 실제 데이터를 저장(최대 5TB), 식별자 역할, 고유한 URL 주소를 갖고있음,
    • URL 주소는 http://[버킷의 이름].S3.amazonaws.com/[객체의 키]의 형태

 

 

 

🥶 Deploy Strategy

 

Front

S3를 이용해서 클라이언트를 배포

배포 → 개발한 서비스를 사용자가 이용할 수 있도록 하는 것

빌드 → 불필요한 데이터를 없애고, 여러 갈래로 퍼져있는 데이터들을 통합/ 압축하여 배포하기에 최적화된 상태를 만드는 것

CDN 서비스인 CloudFront → 각지의 데이터 센터에 데이터를 분산시켜서 저장해 뒀다가 가까운 지역에서 데이터를 주는 방식으로 사용자에게 더 빠르게 서비스를 제공

 

Back

EC2를 이용해서 서버 구성 및 서비스 제공, RDS 서비스

 

DNS

Route 53 → 직관적인 도메인 주소를 통해서 서비스에 접근하도록 할 수 있다.

 

 

 

 

 

🥶 Deployment

 

Development -> Integration -> Staging -> Production

 

배포에서는, 환경의 차이를 이해하고 환경 설정을 코드와 분리하는 것이 중요!

  1. 작성한 코드가 다른 환경에서 정상 작동할 수 있게 하려면, 설정을 환경 변수(envvars나 env라고도 불림)에 저장
  2. 절대경로대신 상대경로를 사용
  3. 환경에 따라 포트를 분기할 수 있도록 환경변수를 설정
  4. 도커와 같은 개발환경 자체를 통일시키는 솔루션 사용

'Code개발일지' 카테고리의 다른 글

React Proxy  (0) 2023.02.06
CI / CD  (0) 2023.02.03
Optimization 최적화  (0) 2023.02.01
TDD(Test-driven Development)  (0) 2023.01.31
Graph QL  (0) 2023.01.31