[AWS] 클라우드 컴퓨팅이란?

dereck·2024년 12월 12일

AWS CCP

목록 보기
1/29
post-thumbnail

클라우드 컴퓨팅이란?

클라우드 컴퓨팅은 컴퓨팅 성능과 데이터베이스 스토리지, 애플리케이션과 다른 IT 리소스를 온디맨드로 제공하는 것이다.

여기서 핵심은 온디맨드이다. 그리고 클라우드 서비스 플랫폼으로 종량제 요금을 이용할 수 있다. 이는 요청할 때 요청한 만큼만 비용을 지불하는 것으로 사용이 끝나면 비용을 지불하지 않는다.

온디맨드란 주문형 서비스라는 뜻으로 사용자가 필요할 때 즉시 자원을 요청하고, 그만큼만 비용을 지불하는 방식이다.

그래서 필요한 컴퓨팅 리소스의 정확한 유형과 크기를 프로비저닝 할 수 있다.

  • 큰 서버가 필요하든지, 작은 서버가 필요하든지 사용할 수 있다.
  • 서버 10개도 가능하고, 내일 당장 사용할 수도 있다.

프로비저닝이란 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다

또한 클라우드는 휼륭한 인터페이스를 제공해 서버, 스토리지, 데이터베이스 그리고 일련의 애플리케이션 서비스에 쉽게 액세스할 수 있다. 사무실에 자체 데이터 센터를 짓는 대신 클라우드를 사용하고, 금액은 사용한 만큼만 지불할 것이다.

클라우드의 유형

1. 개인 클라우드

기업이나 조직이 자체적으로 구축한 클라우드 컴퓨팅 환경을 의미한다. 기존의 물리적인 데이터 센터를 가상화하여 가상화된 컴퓨팅 자원들을 소유 및 관리하며, 서버, 스토리지, 네트워크 등 IT 인프라 자원들을 필요에 따라 할당하고 관리할 수 있다.

장점: 전용 인프라를 사용하므로 높은 안정성과 보안성을 보장하고, 기업이나 조직이 직접 인프라를 관리하기 때문에 성능이 우수하고 사용자 제어권이 높으며 기업이나 조직의 요구에 맞게 설계되므로 유연성이 높다.

단점: 전용 인프라를 구축해야 하므로 초기 비용이 많이 들고, 전문 기술과 인력이 필요하며 전용 인프라를 사용하기 때문에 확장성에 제한이 있을 수 있으며, 기업이나 조직이 직접 관리하는 만큼 내부적인 보안 취약성이 발생할 수 있다.

2. 공용 클라우드

클라우드 컴퓨팅 서비스 방식의 가장 일반적인 유형으로 인터넷을 통해 접근할 수 있는 클라우드 컴퓨팅의 형태이다. 서비스 제공자가 인프라, 플랫폼 또는 소프트웨어 서비스 등을 제공한다.

장점: 사용자가 필요한 만큼의 자원을 이용할 수 있도록 유연하게 제공함으로써 비용을 절감할 수 있고, 여러 지역에 데이터 센터를 구축하고, 여러 대의 서버를 구성하여 높은 가용성과 확장성을 가지며, 전문적인 관리 서비스를 제공하며 인터넷에 연결만 되어 있다면 언제든지 이용할 수 있다.

단점: 데이터가 인터넷을 통해 전송되고 저장되기 때문에 보안 문제가 있을 수 있고, 제공 업체가 제어하기 때문에 시스템 및 네트워크 구성과 관련된 제한을 받게 되며, 서비스를 지속적으로 이용할 경우 비용이 증가할 수 있음

3. 하이브리드 클라우드

개인 클라우드와 공용 클라우드를 결합한 것이다. 일부 서버를 온프레미스(=물리 서버)에 유지하고, 필요한 기능의 일부를 클라우드(=가상 서버)로 확장한다. 자체 인프라와 AWS 클라우드의 하이브리드를 의미하는 것이다. 사설 클라우드에 있는 민감한 정보는 제어하면서 공용 클라우드를 사용해서 유연함과 비용 효율성을 가지는 것이다.

장점: 중요한 정보는 개인 클라우드에, 가벼운 작업은 공용 클라우드에 배치하여 보안성을 높일 수 있고, 비즈니스 요구 사항에 따라 리소스를 즉시 확장하거나 축소할 수 있으며, 클라우드에서 필요한 만큼 리소스를 구매하여 비용을 절감할 수 있음

단점: 두 클라우드를 모두 운영하므로 관리 복잡성이 증가할 수 있고, 초기 구축 비용과 유지 관리 비용이 더 많이 들어갈 수 있으며, 서로 다른 클라우드 간에 데이터 이전 시 성능과 호환성 문제가 발생할 수 있다.

클라우드 컴퓨팅의 특징

클라우드 컴퓨팅의 5가지 특징에 대해 살펴보자.

  1. 완전한 온디맨드이며 셀프 서비스이다.
    • 사용자는 리소스를 프로비저닝할 수 있고, AWS의 개입 없이 사용할 수 있다.
  2. 광역 네트워크에 액세스할 수 있다.
    • 네트워크를 통해 리소스를 사용할 수 있고, 다양한 방법으로 액세스할 수 있다.
  3. 멀티 테넌시와 리소스 풀링이 가능하다.
    • 이는 나 말고도 AWS의 다른 고객도 동일한 인프라와 애플리케이션을 공유하면서도 보안과 프라이버시를 유지할 수 있다.
    • 고객은 동일한 물리적 리소스로 서비스를 받게 된다. 모든 고객이 클라우드의 전체 데이터 센터를 공유하는 것이다.
  4. 빠른 탄력성과 확장성을 제공한다.
    • 필요할 때 자동으로 신속하게 원하는 리소스를 획득하고 처리할 수 있다.
    • 온디맨드 기반으로 쉽고 빠르게 확장할 수 있다. (클라우드의 가장 큰 장점)
  5. 측정 가능한 서비스이다.
    • 사용량을 측정해서 정확히 사용한 만큼 지불하는 것이다. (온프레미스에서 가장 크게 바뀐 점)

멀티 테넌시: 여러 고객이 동일한 인프라나 애플리케이션을 공유하면서도, 각 고객의 데이터를 보호할 수 있게 해주는 기술입니다. (SaaS 제품이 대표적 예시)
리소스 풀링: 클라우드 사업자가 리소스를 풀로 사용하는 기술입니다.

멀티 테넌시는 비용과 확장성 측면에서 이점이 있지만, 보안 및 규제 문제를 야기할 수 있습니다. 클라우드 환경은 조직의 보호된 네트워크 및 IT 인프라 외부에 위치하기 때문에 공격에 더 많이 노출되기 때문입니다

클라우드 컴퓨팅의 장점

클라우드 컴퓨팅의 6가지 장점에 대해 살펴보자.

  1. 자본적 지출(CAPEX)을 업무 지출(OPEX)로 교환할 수 있다.
    • 사무실 내 자체 서버 구축 비용(자본적 지출)을 클라우드 컴퓨터를 유지하는데 필요한 소모 비용(업무 지출)으로 교환
    • 총 소유 비용(=TCO)과 업무 지출을 절감할 수 있다.
  2. 거대한 규모의 경제로부터 혜택을 얻을 수 있다.
    • 나뿐만 아니라 다른 고객과 많은 사람이 AWS를 사용하기 때문에 시간이 지남에 따라 AWS 가격이 인하된다.
    • AWS는 규모가 크기 때문에 실행하는데 더 효율적이기 때문이다.
  3. 용량을 짐작할 필요가 없다.
    • 애플리케이션의 실제 측정된 사용량을 기반으로 자동으로 확장할 수 있다. (전부 온디맨드이기 때문)
  4. 속도와 민첩성이 향상된다.
    • 바로 무언가 생성하고 운영할 수 있으며 효율을 방해하는 것이 없다.
  5. 데이터 센터의 운영 및 관리 비용을 지불하지 않아도 된다.
  6. 글로벌 애플리케이션을 몇 분 안에 생성할 수도 있다.
    • AWS 글로벌 인프라를 활용하면 가능하다.

클라우드를 사용해서 해결할 수 있는 문제

클라우드를 사용해 해결할 수 있는 문제에는 다음과 같은 것들이 있다.

  • 유연성: 필요할 때 리소스 유형 변경
  • 비용 효율성: 사용한 만큼만 지불
  • 확장성: 필요 시 리소스 추가 가능
  • 탄력성: 필요 시 스케일 인과 스케일 아웃을 할 수 있음
  • 고가용성 및 내결함성: 데이터 센터가 필요 없고, 전 세계의 데이터 센터에 의존할 수 있다.
  • 민첩성: 소프트웨어 애플리케이션을 신속하게 개발, 테스트 및 출시 가능

클라우드 컴퓨팅 유형

서비스형 인프라(Infrastructure as a Service - IaaS)

  • 높은 유연성을 가진다.
  • 장비 자체를 클라우드 형으로 제공하는 것으로 애플리케이션, 데이터, 런타임, 미들웨어, 운영체제를 내가 관리한다.
    • EC2의 경우 인스턴스 생성 시 운영체제 AMI도 선택하지만 내가 생성한 AMI를 사용하거나 커뮤니티의 AMI를 사용할 수도 있기 때문에 IaaS로 분리된 것 같다.
    • 실질적인 미들웨어와 런타임은 인스턴스 생성 후 직접 구축해야 하기 때문이기도 한 것 같다.
  • 가상화, 서버, 스토리지, 네트워킹 등 물리적 인프라를 가상화하여 제공받는다.

예시) AWS EC2에서 가상 서버를 생성하고, 필요한 소프트웨어를 설치하여 운영하는 것

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

  • 플랫폼 자체를 클라우드 형으로 제공하는 서비스이다.
  • IaaS 형태의 가상화된 클라우드 위에 사용자가 원하는 서비스를 개발할 수 있도록 개발 환경(Platform)을 미리 구축해, 이를 서비스 형태로 제공하는 것이다.
    • IaaS + 운영체제, 미들웨어, 런타임 = PaaS
  • 내가 신경써야 할 것은 애플리케이션과 데이터뿐이다. 하지만 런타임부터 네트워킹까지 미리 구축한 상태로 제공하기 때문에 IaaS보다 관리상의 자유도가 낮다.

예시) AWS Elastic Beanstalk에 Spring Boot 애플리케이션을 배포하여 자동으로 환경 설정 및 실행.

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

  • SaaS는 클라우드 서비스 형태 중 가장 완성된 형태의 클라우드 서비스이다.
  • 클라우드 인프라 위에 소프트웨어를 탑재해 제공하는 형태로 IT 인프라 자원뿐만 아니라 소프트웨어 및 업데이트, 버그 개선 등의 서비스를 AWS가 도맡아 제공한다.
  • 사용자는 브라우저를 통해 별도의 프로그램을 설치하지 않아도 서비스를 제공받을 수 있다. 또한 인프라 구축, 개발 환경 세팅 및 소프트웨어 개발에 소요되는 비용을 절약할 수 있기 때문에 자체적으로 소프트웨어를 개발하는 것 대비 초기 비용을 줄일 수 있다.
    • 메일 시스템을 사용할 때 이미 만들어진 서비스를 사용하는 것이 자체적으로 소프트웨어를 개발하는 것보다 초기 비용(돈, 시간 등) 측면에서 이득

예시) Gmail을 사용하여 이메일 송수신을 하거나, Dropbox에 파일을 저장하는 것. 또한 필요 시 용량을 늘리는 구독을 결제하여 사용하는 것


AWS 클라우드 개요

AWS에서 할 수 있는 것

AWS에서는 거의 모든 것이 가능하다.

  • AWS를 통해 복잡하고 확장 가능한 애플리케이션을 만들 수 있다.
  • 다양한 산업 분야에 적용할 수 있다.
    • 기업의 IT를 이전하거나 백업과 스토리지를 위해 클라우드를 사용하거나 빅 데이터 분석을 할 수도 있다.
    • 웹사이트를 호스팅하거나 모바일 또는 소셜 애플리케이션에 대한 백엔드를 만들 수도 있다.
    • 게임 서버 전체가 클라우드에서 실행되도록 할 수도 있다.

AWS 글로벌 구조

  • AWS Regions
  • AWS Availability Zones
  • AWS Data Centers
  • AWS Edge Locations/Points of Presence

AWS Regions

AWS 리전은 전 세계에 걸쳐 있다. 그리고 리전에는 이름이 있다. us-east-1 또는 eu-west-3 같은 것들이다.

그럼 리전이란 무엇일까?

리전은 데이터 센터의 집합을 말한다.

AWS 서비스를 사용할 때 대부분의 서비스들은 특정 리전에 연결되어 국한된다. 즉, 한 리전에서 어떤 서비스를 사용하다 다른 리전에서 서비스를 사용하려고 하면, 서비스를 처음 사용하는 셈이 되는 것이다. (각 리전이 독립적임)

AWS 리전 선택에 영향을 미칠 수 있는 몇 가지 요인들이 있다.

1. 법률 준수

간혹 어떤 정부들은 애플리케이션을 배포하게 될 대상 국가 내에 데이터가 보관되기를 바란다.

예를 들어 프랑스의 데이터는 프랑스 내에 있어야 하는 것이다. 이 경우에는 애플리케이션을 프랑스 리전에서 출시해야 될 것이다.

2. 지연 시간

만약 애플리케이션을 사용하는 대부분의 사용자가 미국에 있는 경우 애플리케이션 역시 사용자와 가까이 있도록 미국에서 출시하는 것이 바람직할 것이다. 그래야 지연 시간이 줄어들기 때문이다.

서비스하려는 대상 국가에서 너무 먼 리전을 사용할 경우 해당 애플리케이션을 사용할 때 심한 렉을 경험하게 될 것이다.

3. 리전의 서비스 가용 여부

모든 리전이 모든 서비스를 가지고 있지는 않다. 일부 리전에는 서비스가 없을 수도 있다.

따라서 애플리케이션에 특정 서비스를 활용 중이라면 그 애플리케이션을 출시하려는 리전에 해당 서비스가 있는지를 확인해야 한다.

4. 요금

리전마다 요금이 달라진다. 리전 간 요금의 차이를 확인하려면 서비스 요금 페이지를 참고하면 된다.

AWS Availability Zones

가용 영역은 리전 내에 존재한다. 각각의 리전은 많은 가용 영역을 가지고 있다. 보통은 3개씩 있고, 최소는 2개, 최대 6개를 가지고 있다.

예를 들어 시드니 리전을 보면 시드니 리전의 코드는 ap-southeast-2 이다. 그리고 시드니 리전의 코드는 ap-southeast-2a , ap-southeast-2b , ap-southeast-2c 이다.

각각의 가용 영역은 여분의 전원 네트워킹, 그리고 통신 기능을 갖춘 하나 또는 두 개의 개별적인 데이터 센터로 이뤄져 있다.

즉, ap-southeast-2a 내에 2개의 데이터 센터가 있을 수 있고, ap-southeast-2b 에도 2개, ap-southeast-2c 에도 2개가 있을 수도 있다. 정확한 개수는 AWS가 공개하지 않아서 알 수 없다.

하지만 한 가지 확실한 것은 각각의 가용 영역들이 재난 발생에 대비해 서로 분리되어 있는 것이다. 만약 ap-southeast-2a 에 문제가 생긴다고 해도 나머지 데이터 센터에는 영향을 미치지 않도록 설계되었다는 것이다.

이런 데이터 센터와 가용 영역들은 높은 대역폭의 초저지연 네트워킹으로 서로 연결되어 리전을 형성한다.

AWS Edge Locations/Points of Presence

글로벌 섹션에서 자세히 다룰 내용이지만, AWS가 42개국 84개의 도시에 200개가 넘는 전송 지점을 가지고 있다는 것은 알아둬야 한다.

이런 점으로 인해 최소 지연 시간으로 최종 사용자에게 컨텐츠를 전달하는 것에 아주 유용하다.

AWS Console

AWS는 아래와 같은 글로벌 서비스를 지원한다.

  • IAM (Identity and Access Management)
  • Route 53 (DNS Service)
  • CloudFront (Content Delivery Network)
  • WAF (Web Application Firewall)

하지만 대부분의 AWS 서비스들은 특정 리전에 국한된다.

  • Amazon EC2
  • Elastic Beanstalk
  • Lambda
  • Rekognition

리전 테이블을 통해 선택한 리전에서 특정 서비스가 제공되는지의 여부를 알 수 있다.


공동 책임 모델 및 AWS 허용 정책

AWS 공동 책임 모델은 클라우드를 사용할 때 나의 책임과 AWS의 책임을 정리해 놓은 것으로 공동 책임도 있다.

는 고객으로서 클라우드 내의 보안 책임이 있다. 클라우드 내에서 무엇을 사용하고, 어떻게 구성하든 모든 것은 나의 책임이다. 여기에는 보안, 데이터 그리고 운영체제와 네트워크, 방화벽 구성 등이 포함된다.

AWS클라우드에 관한 보안 책임이 있다. 모든 인프라와 하드웨어 그리고 스프트웨어와 자체 내부 보안이 전부 AWS 책임이다. 그래서 공동 책임이 있는 것이다.

마지막으로 AWS를 사용할 때는 이용 목적 제한 방침에 동의해야 한다.

  • 불법적이고 공격적이거나 유해한 사용이나 콘텐츠를 금함
  • 보안을 위반하거나 네트워크를 남용할 수 없음
  • 이메일이나 다른 유형의 메시지를 남용할 수 없음

References

0개의 댓글