본문 바로가기
Develop/DevOps

Cloud 개요 및 AWS 서비스 - 수동 배포

by jaeyoungb 2022. 12. 8.

데이터 센터에서는 서버의 자원과 공간, 네트워크 환경을 제공한다. (On-premise)

현대의 클라우드 컴퓨팅은 On-premise 환경과는 달리, 가상 컴퓨터를 대여한다.

 

클라우드 컴퓨팅의 장점

  1. 필요할 때마다 컴퓨팅 능력을 유연하게 조절
  2. 고정적 비용이 들어가는 On-premise 환경과는 달리, 사용한 만큼의 비용만 지불
  3. 컴퓨터의 스냅샷을 통해 다른 컴퓨터로 즉시 이주 가능

클라우드 컴퓨팅의 단점

  1. 특정 클라우드 벤더에 종속되기 때문에, 그 벤더 서비스에 문제가 생기면 내가 배포하고 관리하는 환경에도 영향을 미친다.

클라우드의 대표적인 서비스 및 기본 제공 서비스 범위

  1. SaaS(Software as a Service) : 클라우드 제공자가 당장 사용 가능한 소프트웨어를 제공
  2. Paas(Platform as a Service) : 클라우드 제공자가 데이터베이스, 개발 플랫폼까지 제공
  3. IaaS(Infrastructure as a Service) : 클라우드 제공자가 가상 컴퓨터까지 제공

 

Deployment

배포라는 뜻으로, 개발한 서비슬르 사용자들이 이용할 수 있게끔 하는 일련의 과정을 말한다.

기본적으로 4단계를 거쳐 배포하게 된다.

  1. Development : 로컬 환경에서 코드를 작성하고 테스트하는 단계 (더미 데이터 이용)
  2. Integration : 각자의 컴퓨터에서 작성한 코드를 합치는 단계
  3. Staging : 다양한 환경에서 테스트 진행하는 단계 (Production 단계와 가장 유사한 환경에서 테스트)
  4. Production : 개발된 서비스를 출시하는 단계 (문제가 생기면 안되는 단계)

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

→ 절대경로 대신 상대경로 사용, 환경변수 설정, Docker와 같은 가상화 도구 사용

 

 

Amazon EC2 (Elastic Compute Cloud)

  • AWS에서 제공하는 클라우드 컴퓨팅 서비스
  • AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것
  • 구성하는 데 필요한 시간이 짧음
  • AMI를 통해서 다양한 운영체제를 선택 가능, CPU, RAM, 그리고 용량까지도 손쉽게 구성
  • 인스턴스는 AWS에서 빌리는 1대의 컴퓨터를 의미하는 단위
  • AWS EC2 인스턴스를 생성한다는 것은 AMI를 토대로 운영체제, CPU, RAM, 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것을 의미

 

RDS (Relational Database Service)

  • AWS에서 제공하는 관계형 데이터베이스 서비스
  • 데이터베이스 유지 보수와 관련된 일들을 RDS에서 전적으로 자동 관리해줌
  • 다양한 데이터베이스 엔진 선택지를 제공

 

S3 (Simple Storage Service)

  • AWS에서 제공하는 클라우드 스토리지 서비스
  • 접근성, 확장성, 가용성, 내구성이 아주 뛰어남
  • 다양한 스토리지 클래스를 제공 (Standard 클래스, Glacier 클래스)
  • 정적 웹 사이트 호스팅 가능

 

 

AWS에서 제공하는 서비스 실전 사용

## S3를 통해 사용자들에게 Client를 제공한다.

## CDN 서비스인 CloudFront를 통해 사용자들에게 컨텐츠를 더 빨리 배포한다.

## EC2를 통해 서버를 구성하고 서비스를 제공한다.

## RDS를 통해 EC2를 통해 배포된 Server Application의 데이터를 저장, 제공하는 데이터베이스를 배포한다.

## Route 53를 통해 직관적인 도메인 주소를 통해서 서비스에 접근하도록 한다.

 

 

 

AWS 서비스를 이용한 수동 배포 과정

'Develop > DevOps' 카테고리의 다른 글

Cloud 운영 전략  (0) 2022.12.09
리눅스 명령어 - 프로세스 Kill  (1) 2022.12.08
Cloud 배포 자동화  (0) 2022.12.08
Docker  (0) 2022.12.06
애플리케이션 빌드 / 실행 / 배포  (0) 2022.11.15