클라우드 인프라 기본 사항
현대 백엔드 배포를 뒷받침하는 클라우드 인프라의 기본 개념을 이해하세요.
클라우드 인프라가 존재하는 이유
클라우드 인프라는 물리적 서버 관리를 인터넷을 통해 제공되는 온디맨드 리소스로 대체합니다.
- 전통적으로 기업은 자체 하드웨어를 구매하고 유지보수해야 했습니다.
- 확장은 최대 용량에 맞춘 수동 설정과 계획이 필요했습니다.
- 클라우드 플랫폼은 컴퓨트, 스토리지, 네트워킹을 온디맨드로 제공합니다.
상세정보
클라우드 컴퓨팅 이전에는 기업이 자체 인프라를 구축하고 관리해야 했습니다. 이는 물리적 서버를 구매하고, 데이터 센터를 설치하고, 냉각과 전력을 처리하며, 시간이 지나도 하드웨어를 유지보수해야 한다는 뜻이었습니다.
시스템 확장은 특히 어려웠습니다. 트래픽이 증가하면 기업은 미리 더 많은 서버를 구매하고 설치해야 했습니다. 수요가 줄어들면 그 자원은 사용되지 않은 채 남아 비용 낭비로 이어졌습니다.
클라우드 인프라는 인터넷을 통해 리소스를 제공함으로써 이 문제를 해결합니다. 물리적 머신을 관리하는 대신, 개발자는 클라우드 플랫폼을 통해 컴퓨트 파워, 스토리지, 네트워킹을 요청합니다.
이를 통해 시스템은 초기 하드웨어 투자 없이 수요에 따라 동적으로 확장할 수 있습니다. 인프라는 물리적으로 구축하고 유지하는 것이 아니라 즉시 프로비저닝할 수 있는 것이 됩니다.
이 변화는 현대 백엔드 시스템의 중요한 기반이며, 더 빠른 개발, 더 낮은 운영 부담, 더 유연한 확장을 가능하게 합니다.
컴퓨트 서비스
컴퓨트 서비스는 클라우드에서 애플리케이션 코드를 실행하는 데 필요한 CPU, 메모리, 런타임을 제공합니다.
- 이들은 가상 머신, 컨테이너 또는 서버리스 함수로 애플리케이션 코드를 실행합니다.
- 컴퓨트 서비스는 애플리케이션을 실행하는 데 필요한 핵심 리소스를 제공합니다.
- 서로 다른 모델은 제어와 추상화 사이에서 서로 다른 장단점을 제공합니다.
상세정보
컴퓨트 서비스는 클라우드 플랫폼의 기반입니다. 즉, 애플리케이션 코드를 실제로 실행하는 역할을 합니다. 컴퓨트가 없으면 스토리지나 데이터베이스 같은 다른 서비스는 상호작용할 대상이 없습니다.
클라우드 제공업체는 코드를 실행하는 다양한 방법을 제공합니다. 가상 머신은 운영 체제에 대한 완전한 제어를 제공하고, 컨테이너 런타임은 가볍고 이식 가능한 환경을 제공하며, 서버리스 함수는 인프라를 전혀 관리하지 않고도 코드를 실행할 수 있게 합니다.
이러한 모든 모델은 CPU, 메모리, 실행 환경과 같은 필수 리소스를 제공합니다. 차이점은 시스템을 관리하는 데 개발자가 얼마나 많은 책임을 지는지에 있습니다.
예를 들어 AWS EC2, Google Compute Engine, Azure Virtual Machines 같은 서비스는 사용자가 가상 서버를 구성하고 관리할 수 있게 해줍니다. 서버리스 플랫폼 같은 더 추상화된 서비스는 이러한 책임의 상당 부분을 제거합니다.
올바른 컴퓨트 모델을 선택하는 것은 필요한 제어 수준과 구축 중인 애플리케이션의 복잡성에 따라 달라집니다.
관리형 데이터베이스
관리형 데이터베이스는 설정, 유지 관리, 확장을 처리하므로 애플리케이션은 데이터 저장과 접근에 집중할 수 있습니다.
- 클라우드 제공업체가 데이터베이스 설정, 백업, 복제를 관리합니다.
- 확장과 고가용성을 자동으로 처리합니다.
- 애플리케이션은 인프라를 관리하지 않고 데이터베이스와 상호작용합니다.
상세정보
데이터베이스는 대부분의 애플리케이션에서 매우 중요하지만, 이를 수동으로 관리하는 것은 복잡하고 시간이 많이 듭니다. 전통적으로 팀은 데이터베이스 소프트웨어를 설치하고, 백업을 구성하고, 장애를 처리하고, 확장을 직접 관리해야 했습니다.
관리형 데이터베이스 서비스는 이러한 책임을 클라우드 제공업체로 넘깁니다. AWS RDS, Google Cloud SQL, Azure SQL Database 같은 서비스는 프로비저닝, 패치 적용, 모니터링과 같은 작업을 자동으로 처리합니다.
또한 자동 백업, 여러 위치에 걸친 복제, 수요에 따른 확장 같은 기본 제공 기능도 제공합니다. 이는 신뢰성을 높이고 장애가 발생해도 데이터가 계속 사용 가능하도록 보장합니다.
그 결과 개발자는 인프라 관리 대신 애플리케이션 로직과 데이터 모델링에 집중할 수 있습니다. 이는 높은 성능과 가용성을 유지하면서 운영 복잡성을 크게 줄여줍니다.
오브젝트 스토리지
오브젝트 스토리지는 파일과 미디어 같은 비정형 데이터를 높은 내구성과 확장성으로 저장합니다.
- 이미지, 비디오, 로그, 백업 같은 파일을 저장하는 데 사용됩니다.
- 데이터는 기존의 파일 시스템이나 데이터베이스가 아니라 오브젝트로 저장됩니다.
- 오브젝트 스토리지는 대규모 확장성과 높은 내구성을 위해 설계되었습니다.
상세정보
오브젝트 스토리지는 대량의 비정형 데이터를 저장하도록 설계되었습니다. 구조화된 레코드를 저장하는 데이터베이스와 달리, 오브젝트 스토리지는 이미지, 비디오, 로그, 백업 같은 파일을 처리합니다.
각 파일은 오브젝트로 저장되며, 여기에는 데이터 자체와 메타데이터, 그리고 고유 식별자가 포함됩니다. 이 구조를 통해 시스템은 대량의 데이터를 효율적으로 검색하고 관리할 수 있습니다.
AWS S3, Google Cloud Storage, Azure Blob Storage 같은 클라우드 오브젝트 스토리지 서비스는 내구성과 확장성을 위해 만들어졌습니다. 이러한 서비스는 데이터 손실을 방지하기 위해 여러 위치에 데이터를 자동으로 복제합니다.
이러한 설계 덕분에 오브젝트 스토리지는 복잡한 인프라 관리 없이도 대규모 데이터셋을 처리하도록 확장할 수 있습니다. 이는 안정적이고 확장 가능한 파일 저장이 필요한 현대 애플리케이션의 핵심 구성 요소입니다.
클라우드 네트워킹
클라우드 네트워킹은 서비스를 안전하게 연결하고 클라우드 시스템의 구성 요소 간 통신을 가능하게 합니다.
- 가상 네트워크는 클라우드 리소스를 격리하고 체계적으로 구성합니다.
- 로드 밸런서는 여러 서비스에 트래픽을 분산합니다.
- 게이트웨이는 내부 시스템과 외부 시스템 간의 접근을 제어합니다.
상세정보
클라우드 네트워킹은 클라우드 환경에서 서로 다른 서비스가 통신할 수 있도록 하는 인프라를 제공합니다. 이것이 없으면 컴퓨트 인스턴스, 데이터베이스, 스토리지 시스템이 효과적으로 상호작용할 수 없습니다.
가상 네트워크는 리소스를 그룹화하고 제어할 수 있는 격리된 환경처럼 동작합니다. 이를 통해 서비스가 어떻게 연결되는지와 누가 접근할 수 있는지를 정의합니다.
로드 밸런서는 들어오는 트래픽을 여러 컴퓨트 인스턴스에 분산합니다. 이는 성능을 향상시키고, 하나의 인스턴스가 실패하더라도 시스템이 계속 사용 가능하도록 보장합니다.
게이트웨이는 내부 클라우드 리소스와 외부 클라이언트 또는 네트워크 간의 통신을 관리합니다. 이들은 보안 정책을 적용하고 데이터가 시스템 안팎으로 흐르는 방식을 제어하는 데 도움을 줍니다.
이러한 구성 요소들은 함께 분산된 클라우드 애플리케이션 전반에서 안전하고 신뢰할 수 있으며 확장 가능한 통신을 가능하게 합니다.
리전
리전은 클라우드 제공업체가 여러 데이터 센터에 걸쳐 인프라를 배포하는 지리적 위치입니다.
- 리전은 특정 지리적 영역에 있는 여러 데이터 센터로 구성됩니다.
- 사용자와 더 가까운 곳에 배포하면 지연 시간이 줄어듭니다.
- 여러 리전을 사용하면 재해 복구와 복원력이 향상됩니다.
상세정보
클라우드 제공업체는 전 세계의 여러 지리적 위치에서 인프라를 운영합니다. 이러한 각 위치를 리전이라고 하며, 클라우드 서비스를 호스팅하는 여러 데이터 센터를 포함합니다.
리전은 물리적 거리가 성능에 영향을 주기 때문에 중요합니다. 애플리케이션을 사용자와 더 가까운 곳에 배포하면 네트워크 지연 시간이 줄어들어 응답 속도가 빨라집니다.
또한 리전은 안정성에서도 중요한 역할을 합니다. 한 리전에서 장애가 발생하면 시스템이 다른 리전으로 장애 조치되도록 설계할 수 있어, 서비스가 계속 운영되도록 보장할 수 있습니다.
시스템을 여러 리전에 분산하면 애플리케이션은 더 나은 전 세계 성능과 더 강력한 재해 복구 기능을 모두 달성할 수 있습니다.
가용 영역
가용 영역은 신뢰성과 장애 허용성을 높이기 위해 리전 내에서 분리된 데이터 센터 그룹입니다.
- 각 리전은 여러 개의 분리된 가용 영역으로 나뉩니다.
- 한 영역에서 발생한 장애는 다른 영역에 영향을 주지 않습니다.
- 여러 영역에 걸쳐 실행하면 가용성과 중복성이 향상됩니다.
상세정보
클라우드 리전 내에서 인프라는 추가로 가용 영역으로 나뉩니다. 각 영역은 같은 리전의 다른 영역과 물리적으로 분리된 하나 이상의 데이터 센터로 구성됩니다.
이 분리는 의도적인 것입니다. 정전이나 하드웨어 문제와 같은 장애가 한 가용 영역에서 발생하더라도 다른 영역에는 영향을 주지 않습니다. 이를 통해 리전 내에서 장애를 격리할 수 있습니다.
애플리케이션은 높은 가용성을 보장하기 위해 여러 가용 영역에 배포할 수 있습니다. 한 영역을 사용할 수 없게 되면 트래픽을 다른 영역에서 실행 중인 시스템으로 다시 라우팅할 수 있습니다.
이 설계는 인프라의 일부가 실패하더라도 클라우드 시스템이 가동 시간을 유지할 수 있게 해 주며, 가용 영역을 복원력 있는 시스템 아키텍처의 핵심 구성 요소로 만듭니다.
주요 클라우드 제공업체
주요 클라우드 제공업체는 애플리케이션이 물리적 서버를 소유하지 않고도 실행될 수 있게 해주는 인프라 서비스를 제공합니다.
- 대표적인 제공업체로는 AWS, Google Cloud Platform, Microsoft Azure가 있습니다.
- 이들은 컴퓨트, 스토리지, 데이터베이스, 네트워킹, 모니터링 서비스를 제공합니다.
- 애플리케이션은 이러한 플랫폼이 관리하는 전 세계에 분산된 인프라에서 실행됩니다.
상세정보
클라우드 제공업체는 대규모 인프라를 운영하고 이를 인터넷을 통해 사용자에게 제공하는 회사입니다. 조직은 자체 데이터 센터를 구축하고 유지하는 대신, 이러한 플랫폼을 사용해 애플리케이션을 실행합니다.
가장 큰 세 제공업체는 Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure입니다. 각 플랫폼은 고유한 도구와 명명 규칙을 가지고 있지만, 컴퓨트, 스토리지, 데이터베이스, 네트워킹, 모니터링과 같은 핵심 서비스는 모두 비슷하게 제공합니다.
이러한 제공업체는 전 세계에 데이터 센터를 운영하므로, 애플리케이션이 전 세계에 분산된 인프라에서 실행될 수 있습니다. 이를 통해 시스템은 확장성을 확보하고, 서로 다른 지역의 사용자에게 더 나은 성능을 제공하며, 안정성을 유지할 수 있습니다.
물리적 하드웨어를 추상화함으로써, 클라우드 제공업체는 개발자가 인프라를 관리하는 대신 애플리케이션을 구축하고 실행하는 데 집중할 수 있게 합니다.
질문 섹션
1 / 5
이 레슨은 프리미엄 콘텐츠입니다
프리미엄으로 업그레이드하여 흐림 효과를 없애고 전체 내용을 읽어 보세요.