반응형
서버와 클라우드 컴퓨팅
서버는 서비스를 제공하는 컴퓨터이다. 우리가 사용하는 온라인 서비스들은 모두 서버에서 실행되고 있다. 서버 컴퓨터를 통해 특정 요청을 보내고, 서버는 그 요청을 처리하여 데이터를 우리에게 전송한다.
클라우드 컴퓨팅은 기업들이 구축해놓은 데이터 센터의 컴퓨팅 자원을 빌려 쓰는 방식이다. 아래 외에도 여러 기업들이 서버를 제공하고 있다.
클라우드 서비스 제공자 (CSP)
| Amazon | AWS (Amazon Web Services) | 가장 대중적인 선택지. 프리티어 서비스도 제공 |
| GCP(Google Cloud Platform) | Google이 운영하는 서비스로, 데이터 분석, 머신러닝, 네트워킹 분야에 강점 | |
| Microsoft | Azure | 기존에 Windows 서버나 다른 MS 제품을 많이 사용하는 기업 환경에서 통합성이 뛰어남 |
가상 머신 (VM) / EC2 인스턴스
거대한 물리 서버의 자원을 잘게 쪼개어 우리만의 독립적인 가상 컴퓨터를 할당받는 형태로 GCP 에서 서버를 구성한다. 이를 가상 머신 (Virtual Machine, VM) 또는 인스턴스(Instance) 라고 부른다.
| 개념 | 설명 | |
| 리전 (Region) | 데이터 센터의 물리적 위치 (예: ap-northeast-2 - 서울) | * 서비스할 사용자와 가까운 곳을 선택해야 접속 속도가 빠름 |
| 인스턴스 유형/크기 | 가상 컴퓨터의 성능 사양 (CPU, 메모리, 네트워크 성능 등) | |
| 운영체제 (OS) | 인스턴스에 설치할 운영체제 | |
| 스토리지 (Storage) | 데이터를 저장할 하드 디스크. (SSD, HDD 등) | * Linux (Ubuntu, CentOS 등), Windows Server 등 |
| 네트워킹 및 보안 그룹 | 서버의 네트워크 환경과 방화벽 설정 | * 보안 그룹(Security Group) : 가상 방화벽 역할 * 특정 IP 주소에서만 특정 포트(Port)로 접속할 수 있도록 규칙을 설정 |
서비스 모델 (IaaS, PaaS, SaaS)
IaaS (Infrastructure as a Service)
인프라만 빌려 쓰는 서비스이다. 가상 서버(VM), 스토리지, 네트워크 같은 가장 기본적인 자원을 제공받고, 그 위에 운영체제(OS) 설치부터 모든 소프트웨어 관리를 사용자가 직접 한다. 서버 구성은 대부분 IaaS에 해당한다.
PaaS (Platform as a Service)
플랫폼까지 제공되는 서비스이다. IaaS 위에 OS, 미들웨어 등이 미리 설치되어 있어, 사용자는 자신의 애플리케이션 코드만 올리면 됩니다. 서버나 OS 관리에 신경 쓸 필요가 없다. (예: Heroku, AWS Elastic Beanstalk)
SaaS (Software as a Service)
완제품 소프트웨어를 구독 형태로 사용하는 서비스이다. 사용자는 소프트웨어 기능만 이용하며, 아무것도 설치하거나 관리할 필요가 없다. (예: Google Workspace, Microsoft 365)
인프라 구성 요소
컴퓨팅 (Compute)
- 정의: 애플리케이션이 실행되는 데 필요한 연산 능력이다.
- vCPU (Virtual CPU): 가상 머신에 할당된 가상의 중앙 처리 장치이다. vCPU 개수가 많을수록 동시에 더 많은 연산을 처리할 수 있다.
- 메모리 (RAM): 프로그램이 실행될 때 데이터를 잠시 저장하는 공간이다. 메모리가 클수록 더 크거나 많은 프로그램을 동시에 실행할 수 있다.
스토리지 (Storage)
- 정의: 데이터를 영구적으로 저장하는 공간이다.
- 블록 스토리지 (Block Storage): 가상 머신에 장착하는 가상의 하드 디스크(HDD/SSD)이다. 운영체제 설치, 데이터베이스 파일 저장 등 빠른 입출력이 필요한 곳에 사용된다. (예: AWS EBS)
- 객체 스토리지 (Object Storage): 이미지, 동영상, 로그, 백업 파일 등 대용량 파일을 용량 제한 없이 저장하기 위한 서비스이다. 파일 단위가 아닌 '객체' 단위로 데이터를 다루며, HTTP(S) 프로토콜로 어디서든 접근할 수 있다. (예: AWS S3)
네트워크 (Network)
- 정의: 클라우드상의 리소스들이 서로 통신하고 인터넷과 연결되는 방식이다.
- 가상 사설 클라우드 (Virtual Private Cloud, VPC): 클라우드 내에 논리적으로 격리된 사용자만의 전용 네트워크 공간이다. 이 공간 안에 서버, 데이터베이스 등을 배치하여 외부로부터 보호하고 내부 통신 규칙을 자유롭게 설정할 수 있다.
- 리전 (Region) & 가용 영역 (Availability Zone, AZ):
- 리전: 클라우드 데이터 센터가 위치한 전 세계의 큰 지리적 영역이다. (예: 서울, 도쿄, 캘리포니아)
- 가용 영역: 하나의 리전 내에 존재하는 물리적으로 분리된 하나 이상의 데이터 센터이다. 한 가용 영역에 자연재해나 정전이 발생해도 다른 가용 영역은 영향을 받지 않도록 설계되었다. 여러 가용 영역에 걸쳐 서비스를 구축하면 고가용성(High Availability)을 확보할 수 있다.
보안 및 관리 개념
보안 그룹 (Security Group)
- 정의: 인스턴스(VM)에 적용되는 가상 방화벽이다. 인스턴스로 들어오고(Inbound) 나가는(Outbound) 네트워크 트래픽을 어떤 규칙으로 허용하거나 차단할지 정의한다. 예를 들어, '내 IP에서 오는 SSH(22번 포트) 트래픽만 허용'과 같은 규칙을 설정하한다.
IAM (Identity and Access Management)
- 정의: '누가', '어떤 클라우드 리소스에', '무엇을 할 수 있는지'를 관리하는 권한 제어 서비스이다. 사용자 계정, 그룹을 만들고 각기 다른 접근 권한을 부여하여 보안을 강화한다. **'최소 권한의 원칙(Principle of Least Privilege)'**을 지키는 것이 핵심이다.
로드 밸런서 (Load Balancer)
- 정의: 들어오는 트래픽을 여러 대의 서버(인스턴스)에 자동으로 분산시켜주는 장치이다. 한 서버에 부하가 몰리는 것을 방지하고, 서버 중 일부에 장애가 발생하더라도 다른 정상 서버로 트래픽을 보내 서비스가 중단되지 않도록 한다. 수평 확장(Horizontal Scaling) 의 핵심 요소이다.
오토 스케일링 (Auto Scaling)
- 정의: 미리 정해진 조건(예: CPU 사용률이 80% 이상으로 5분간 지속)에 따라 자동으로 서버(인스턴스) 수를 늘리거나 줄여주는 기능이다. 사용량이 많을 때는 서버를 늘려 안정적인 서비스를 제공하고, 사용량이 적을 때는 서버를 줄여 비용을 절감하는 탄력성(Elasticity)을 구현한다.
반응형