본문 바로가기
Dev/AWS

[AWS] 클라우드 서비스의 이해 AWS

by 싯벨트 2022. 9. 7.
728x90

[Infrastructure] Cloud Computing Services

1. 운영 서버

개발이나 테스트 목적이 아닌 실제 사용자들을 대상으로 서비스하는 서버.
빠른 응답 속도, 높은 가용성을 보장, 트래픽 대응을 통한 안정적인 운영 요구

2. 운영 서버 아키텍쳐

2-1. 단일 서버

애플리케이션과 데이터베이스가 동일한 서버에서 실행 - 별도의 네트워크 설정 불필요
간단한만큼 단점 존재

  • 높은 서비스 장애 발생 가능성
    • 애플리케이션, DB 중 하나라도 문제가 생기면 전체 서버 다운
  • 서버 자원의 효율적 사용 어려움
    • 서비스 속성에 따른 OS설정, 리소스 종류(CPU, 메모리 등)이 다를 수 있음
  • 낮은 보안성
    • DB는 접속 지점(IP주소, 포트)을 최소화해야 하지만 단일 서버의 경우는 애플리케이션이 불특정 요청을 받아서 처리하기에 DB 보안에 취약함
  • 자원 확장 어려움(Scale-out)
    • 똑같은 데이터를 여러 서버에 복제해야 확장 가능

2-2. 애플리케이션/ 데이터베이스 서버 분리

  • 두 서버가 다른 자원을 사용하며 단일 서버의 단점 일부 보완
  • 서버의 개수가 늘어남으로써 구성의 복잡도와 서버간 지연 시간 처리 및 네트워크 보안에 대한 프로세스 필요
  • 여전히 하나의 애플리케이션 서버이기 때문에 Scale-out 어려움

2-3. 서버 단위 로드 밸런서

로드 밸런스: 클라이언트의 수많은 요청들을 확장한 여러 대의 서버에 적절히 나눠주는 네트워크 장치 혹은 프로세스

  • 클라이언트는 로드 밸런서 서버와 통신하며, 로드 밸런서 서버와 연결된 여러대의 애플리케이션 서버에 연결됨
  • Scale-out을 통한 확장 용이
  • 특정 어플리케이션 서버 문제 발생 시 정상 가동되는 다른 서버로 요청을 넘겨주며 서버 다운 최소화
  • 단, 로브 밸런서 자체의 장애는 치명적

2-4. 서버 내 앱 단위의 로드 밸런서

서버 내에 앱 단위의 로드 밸런서가 추가 된 방식
애플리케이션 서버 안에서 똑같은 애플리케이션을 여러 프로세스로 구성하여 실행 후, 요청을 프로세스 중 하나로 보내주는 방식

  • 하나의 서버에서 여러 개의 요청을 동시 처리할 수 있기 때문에 서버의 자원을 효율적으로 사용 가능

3. 온프레미스(On-premise)

IT 서비스를 기업이 자체적으로 보유한 물리적인 서버에 직접 설치해 운영하는 방식
보안에 민감한 조직(군대, 보안 회사)들에 적합한 방식

2-1. 온프레미스의 특징

기업이 직접 구성에 맞게 하드웨어를 구입(물리적 환경 세팅)
최대 사양을 기준으로 구성되기 때문에 예측과 실제 프로젝트의 차이로 불필요한 비용 발생 가능성 농후
구축 후 문제발생 관련 지속적인 모니터링, 유지, 보수가 필요

4. 클라우드 컴퓨팅(Cloud Computing)

4-1. Compute

CPU, RAM, Storage, Network 기능으로 구성된 물리적인 서버

  • 컴퓨팅은 스토리지 및 네트워킹과 함께 클라우드 컴퓨팅 인프라 계층의 핵심 컴포넌트 중에 하나
  • Linux, Ubuntu, Debian, Window, MacOS와 같은 운영 체제를 실행하는 데 필요한 CPU, Memory, Storage와 일부 가상화된 네트워크 기능으로 구성된 물리적인 서버(컴퓨터)
    • CPU(Central Processing Unit) - 프로그램의 명령 수행
    • RAM(Random Access Memory) - 초고속 임시 저장 장치 (CPU와 저장장치 사이에서 처리 속도 향상)
    • Storage - 운영체제 파일 또는 모든 소스코드 및 데이터가 저장되는 저장소
    • Network - 인터넷을 통해 다른 서버와의 연결할 수 있도록 만들어주는 네트워크 인터페이스 카드(NIC)

4-2 클라우드 컴퓨팅

인터넷에 제공된 서로 다른 물리적 위치에 존재하는 가상화 기술로 통합된 컴퓨팅 자원

  • 서버 팜 - 제공 업체의 물리적 서버
  • 비용 측면 효율적 - 물리적 서버 구축 불필요/ 사용한 만큼 비용을 지불
  • 서비스 확장 축소 용이

4-3. 관리 주체와 수준에 따른 구분

1) 서비스형 인프라스트럭처(IaaS - Infrasturcture as a Service)

  • 클라우드 컴퓨팅의 가장 기본적인 계층
  • 비즈니스 운영에 필요한 스토리지, 네트워킹 및 컴퓨팅 자원 제공
  • 가장 넓은 사용자 관리 가능 영역 - 사용자가 직접 OS, Middleware, Runtime 등 구성 및 관리 가능
    • 인프라 운영에 대한 지식, 경험이 필요
  • Ex) AWS Elastic Compute Cloud (EC2), Microsoft Azure Virtual Machines, Google Compute Engine..

2) 서비스형 플랫폼(PaaS - Platform as a Service)

  • 애플리케이션 및 서비스를 구축할 수 있는 플랫폼을 제공
  • OS, Middleware, Runtime 등 개발 환경을 미리 구축하여 서비스 형태로 제공 - 환경에 대한 개발 의존성 존재
  • 개발, 비즈니스에만 집중 가능 및 인프라를 운영하는 인력의 불필요로 유지 및 보수 비용을 절약
  • Ex) AWS Elastic Beanstalk, Heroku, Redhat OpenShift

3) 서비스형 소프트웨어(SaaS - Software as a Service)

  • 기본적인 클라우드 인프라와 소프트웨어를 함께 제공 - 소프트웨어 업데이트, 버그 픽스 등의 서비스를 업체가 제공
  • 사용자가 필요하지 않은 기능에 대해서도 비용을 지불해야 할 수도 있음
  • Ex) Google Drive, iCloud, Slack, Zoom, Dropbox

[AWS] Amazon Web Services

1. AWS 장점

클라우드 컴퓨팅 특징

  • 물리적인 장비의 구매나 임대 계약 없이 사용 가능
  • 컴퓨팅 자원을 사용한 만큼만 비용 지불
  • 서버 자체의 성능을 향상시키는 Scale-up과 서버의 개수를 늘리는 방법 Scale-out 모두 가능
  • 리소스의 타입과 사이즈의 유동적 변경 가능
  • 글로벌 서비스로의 확장이 용이 - 다양한 리전 제공
  • 정상적으로 사용 가능한 정도가 높은 고가용성(High-availability) 보장

AWS는 특장점

  • 기업의 프로그래밍 모델, OS, 데이터베이스 및 아키텍처 사용 가능하도록 지원
  • 다양한 비즈니스 요구 사항에 맞게 아키텍처를 혼합하고 구성 가능한 유연성 제공
  • 자체 애플리케이션에 AWS 리소스를 신속하게 추가 및 제거 가능한 확장성 및 탄력성
  • 서비스에 적절한 보안 기능을 도입하며 해당 보안 기능의 사용법 문서화 등 뛰어난 보안성 제공
  • downtime이 매우 적은 신뢰성 높은 대규모의 글로벌 인프라

2. AWS 글로벌 인프라

2-1. Regions(리전)

  • 전 세계에서 데이터 센터를 클러스터링하는 기준이 되는 물리적 위치
  • 완전히 독립적인 개별 지리 영역
  • 사용자와 리전이 가까울수록 네트워크 지연 최소화

2-2. Availability Zones(가용 영역)

  • 리전안에 존재하는 데이터 센터의 논리적인 그룹
  • 리전 내에 격리된 위치 - 물리적으로는 분리되어 있지만 리전들보다 빠르게 통신 가능 및 높은 서비스 결합 정도
  • 복수의 가용 영역은 물리적 격리를 통해 자연재해 등에 의한 피해를 최소화 가능
  • 네트워크 링크를 통해 논리적 연결을 통해 장애 발생 시 다른 곳으로 인스턴스 주소를 매핑하며 정상 동작 가능

2-3. Edge Location

  • AWS의 CDN(Content Delivery Network) 서비스인 CloudFront의 캐싱 콘텐츠가 위치하는 곳
  • CloudFront만을 위한 공간
  • CDN은 인터넷상에 콘텐츠를 캐싱하여 전달 속도 높임
  • CDN 엣지 근처일수록 빠른 전달 가능

3. AWS의 주요 서비스 및 개념

3-1. EC2 (Elastic Compute Cloud)

  • 실제 클라우드 컴퓨터를 인스턴스화하여 제공하는 서비스
  • 사용자는 단순 클릭 몇 번을 통해 쉽게 사양, 시간 선택하여 EC2 인스턴스 생성 및 해당 서버로 API를 배포 가능

3-2. RDS (Relational Database Service)

  • 클라우드에서 간편하게 데이터베이스를 설치, 운영 및 확장
  • 프로비저닝(사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 즉시 사용할 수 있는 상태로 미리 준비), 설정, 백업 등의 소모적 DB 관리 테스크를 제거하며 효율적 운영 가능

3-3. S3(Simple Storage Service)

  • 파일을 쉽게 저장할 수 있는 공간 제공
  • 파일마다 고유 주소를 부여 - 웹상에서 쉽게 읽어들일 수 있음
    • 사이트상의 이미지들 저장 후, 사이트에서 읽어들여 렌더링 가능

3-4. VPC (Virtual Private Cloud)

  • 클라우드 환경을 계정 별로 독립된 네트워크 환경을 구성하는 서비스

3-5. CloudFront

  • CDN(Content Delivery Network) 서비스
  • 인터넷상에 콘텐츠 캐싱을 통해 빠르게 전달
    • 요청 발생 시, 서버는 캐싱 여부 판단 후 사용자와 근접한 엣지 서버 중 캐싱 데이터가 존재한다면 요청에 맞는 데이터를 응답하고 요청에 적합한 데이터가 캐싱되어 있지 않다면 오리진 서버로 요청이 포워딩됨.

3-6. Route 53

  • DNS(Domain Name System) 서비스 - 사람이 읽을 수 있는 도메인 이름을 기계가 읽을 수 있는 IP주소로 변환

3-7. ELB(Elastic Load Balancer)

  • 로드 밸런서를 제공 - 서버로 들어오는 높은 애플리케이션 트래픽을 여러 대상에 적절하게, 자동으로 분산

3-8. IAM

  • AWS의 리소스(계정별)에 대해 개별적으로 접근제어를 하거나 권한을 가지도록 계정 또는 그룹을 생성 및 관리하는 서비스