Knowledge/이론

클라우드 컴퓨팅

똑똑한망치 2024. 6. 12. 14:26
728x90
반응형

1. 클라우드 컴퓨팅의 개념

클라우드 컴퓨팅 (Cloud computing)은 언제 어디서든 인터넷을 통해 접속할 수 있는 컴퓨팅 환경이다. 간단히 '클라우드'라고도 한다. 클라우드가 도입되기 전에 개인 또는 기업은 자체적으로 서버를 구축하고 운영하는 온프레미스(on-premise) 시스템을 사용했다.

 

온프레미스 시스템

사용자가 직접 컴퓨팅 자원을 보유하고 관리하는 방식이다. 자체적으로 서버, 스토리지 ,네트워크 장비 등을 구입해 설치한 후 유지, 보수, 업그레이드 등을 수행한다.

  • 사용자가 보안과 데이터 소유권을 직접적으로 통제할 수 있다.
  • 외부 네트워크와 연결하지 않아도 내부 네트워크에서 서버에 접근할 수 있다.
  • 초기 투자 비용과 유지, 보수 비용이 많이 들고, 자원의 확장성과 유연셩이 제한될 수 있다.

클라우드 시스템

IT 자원을 클라우드 서비스 제공 업체에 의뢰해 관리하는 방식이다. 사용자는 인터넷을 통해 업체로부터 서버, 스토리지, 네트워크 장비 등을 대여받아 사용한다. 

  • 사용한 자원에 대해서만 비용을 지불하므로 초기 비용이 크게 줄어들고, 복잡한 인프라 구축과 유지, 보수의 부담을 덜 수 있다.
  • 클라우드 서비스 제공 업체가 인프라 관리르 담당하므로 개발자는 서비스에만 집중할 수 있다.
  • 확장성과 유연성이 뛰어나 서비스의 규모에 따라 필요한 자원을 신속하게 확장하거나 축소할 수 있다.
  • 인터넷에 연결된 어느 장치에서나 접속이 가능하며, 업체가 제공하는 다양한 기능과 서비스를 이용할 수 있다.

 

 

[차이점]

 

 

 

2. 클라우드 서비스 종류

클라우드 서비스는 서비스의 제공 방식과 환경을 기준으로 공용 클라우드(public cloud), 사설 클라우드(private cloud), 하이브리드 클라우드 (hybrid cloud)로 구분된다.

또한, 서비스의 제공 범위에 따라 Iaas(Infrastructure as a Service), PaaS (Platform as a Service), SaaS (Software as a Service)로 구분하기도 한다.

 

(1) 공용 클라우드, 사설 클라우드, 하이브리드 클라우드

클라우드 서비스는 서비스 제공 방식과 환경에 따라 다음과 같이 나눌 수 있다. 이는 클라우드에서 제공하는 컴퓨팅 자원을 누가 소유하고 관리하는지, 네트워크 연결은 어떻게 하는지에 따라 나눈 것이다.

 

공용 클라우드

  • 다수의 사용자가 공유하는 클라우드 환경으로, 클라우드 서비스 제공 업체가 소유하고 관리한다.
  • 다양한 조직이나 개인이 인터넷을 통해 클라우드에 접근해 컴퓨팅 자원을 사용한다
  • 대표적으로 아마존의 AWS(Amazon Web Services), 마이크로소프트의 애저(Azure), 구글의 GCP(Google Cloud Platform) 등이 있다.

사설 클라우드

  • 단일 조직이나 기업이 사용하는 클라우드 환경으로, 조직이나 기업 자체가 소유하고 운영한다.

하이브리드 클라우드

  • 공용 클라우드와 사설 클라우드를 조합한 형태이다. 단일 조직이나 기업이 자체 데이터 센터에서 사설 클라우드를 운영하면서 필요에 따라 공용 클라우드의 자원을 이용한다.

 

(2) IaaS, PaaS, SaaS

클라우드 서비스의 컴퓨팅 자원을 어느 범위까지 제공하는지에 따라 다음과 같이 나눌 수 있다. IaaS의 I 는 인프라, PaaS의 P는 플랫폼, SaaS의 S는 소프트웨어를 의미한다.

  • 인프라
    • 네트워크 장비, 데이터 스토리지, 서버 등 컴퓨터 시스템을 구성하는 물리적 요소를 말한다.
  • 플랫폼
    • 소프트웨어 개발 및 실행 환경을 제공하는 기술적 기반을 말한다. 
    • 일반적으로 운영체제, 미들웨어, 런타임 등이 포함된다.
  • 소프트웨어
    • 컴퓨터에 명령을 내려 작업을 수행하는 프로그램으로, 애플리케이션과 데이터의 집합이 포함된다.

 

IaaS

  • 클라우드 서비스 제공 업체가 가상 인프라를 제공하는 모델로, 플랫폼과 소프트웨어를 지원하고 실행하기 위한 기반을 제공한다.
  • 개발은 로컬에서 하고 웹 애플리케이션 배포와 운영을 위한 컴퓨팅 자원을 클라우드 서비스로부터 제공받는다.
  • 대표적인 예는 AWS, 애저, GCP 등이 있다.

PaaS

  • 웹 애플리케이션을 구축하고 실행할 수 있는 인프라와 플랫폼을 제공한다.
  • 개발자는 자신이 사용한 개발 언어와 프레임워크에 따라 웹 애플리케이션을 빌드하고 배포할 수 있는 다양한 개발 도구와 서비스를 제공받는다. PaaS에서 개발자는 소스 코드에만 집중하고 서버 구성 및 관리, 스케일링(scaling, 시스템의 처리 능력을 축소하거나 확장하는 것), 보안 등의 작업을 고려하지 않아도 된다. 
  • 대표적인 예는 헤로쿠(Heroku), 구글 앱 엔진(Google App Engine), 애저 앱 서비스(Azure App Service)가 있다.

SaaS

  • 클라우드 서비스 제공 업체가 아예 웹 애플리케이션을 제공하는 모델이다.
  • 웹 애플리케이션을 클라우드 서버에서 바로 실행할 수 있어 사용자는 웹 브라우저 또는 모바일 앱을 통해 웹 애플리케이션에서 필요한 작업을 수행한다.
  • 대표적인 예는 세일즈포스(Salesforce), 구글 워크스페이스(Google Workspace), 마이크로소프트 365 등이 있다.

 

 

3. 클라우드 서비스 : AWS

AWS는 아마존의 공용 클라우드 서비스이다. 사용자는 AWS에서 필요한 만큼의 서버 용량, 데이터 스토리지, 네트워크 대역폭 등을 선택해 사용할 수 있다. AWS의 대표적인 서비스는 Amazon EC2, Amazon S3, Amazon RDS, AWS IAM 등이다.

 

(1) Amazon EC2 : 가상 서버 서비스

Amazon EC2 (Amazon Elastic Compute Cloud)는 원격으로 제어할 수 있는 서버 컴퓨터를 빌리는 서비스이다. 가상의 서버 컴퓨터를 프로비저닝(provisioning)하고 실행할 수 있게 하는 것으로, 프로비저닝이란 필요할 때 바로 사용할 수 있도록 인프라 구성 및 관리 작업을 자동화하는 것을 말한다.

 

⚙️Amazon  EC2 서버 구축 과정⚙️

서버 구축 필요 ➡️ AWS 회원 가입 ➡️ EC2 인스턴스 생성 ➡️ 웹 애플리케이션 배포 ➡️ 서버 운영 시작

 

Amazon EC2로 만든 서버 객체를 EC2 인스턴스(EC2 instance)라고 한다.

 

 

(2) Amazon S3 : 스토리지 서비스

Amazon S3(Amazon Simple Storage Service)는 파일을 저장하는 데 사용되는 스토리지 서비스이다. 이는 클라우드상에 큰 창고를 제공하는 것과 같다.

 

 

Amazon S3에는 실제 파일이 보관되는 여러 개의 바구니가 존재한다. 이를 S3 버킷 (S3 bucket)이라고 하며, 각 버킷 안에 원하는 만큼의 파일을 보관할 수 있다.  S3버킷의 특징은 아래와 같다.

  • 버킷은 빈 상태에서 시작한다.
  • 버킷에 보관하는 파일의 개수, 크기, 유형의 제한이 없다.
  • 필요한 사용자에게만 버킷 단위 또는 버킷 내 파일 단위의 접근 권한을 부여한다.
  • 파일의 안전성을 보장하는 다양한 보안 및 암호화 기술을 제공한다.

 

 

(3) Amazon RDS : 데이터베이스 서비스

Amazon RDS(Amazon Relational Database Service)는 관계형 데이터베이스를 구축하고 관리할 수 있도록 도와주는 클라우드 서비스이다.

 

 

RDS를 통해 아래와 같은 작업을 할 수 있다.

  • 데이터베이스 생성
    • Amazon RDS를 사용하면 몇 번의 클릭으로 관계형 데이터베이스를 생성할 수 있다. 
    • 다양한 관계형 데이터베이스 엔진 (MySQL, PostgreSQL, Oracle)을 지원하며, 각 엔진의 최신 버전을 사용할 수 있다.
  • 데이터 백업 및 복원
    • 자동 백업 기능을 제공해 일관된 시점의 스냅샷을 생성하고 보관한다. 이를 통해 데이터의 손실을 방지하고, 필요 시 스냅샷을 이용해 데이터 베이스를 복원할 수 있다.
  • 데이터베이스 모니터링
    • Amazon RDS는 데이터베이스 인스턴스의 성능, 용량, 연결 등을 모니터링하는 기능을 제공한다. 이를 통해 CPU, 메모리, 디스크 사용량 등을 실시간으로 확인하고 성능 문제를 식별해 대응할 수 있다.
  • 자원 자동 조정
    • 데이터베이스 인스턴스의 크기와 용량을 필요에 따라 자동으로 조정할 수 있다. 즉, 트래픽의 변동에 따라 자동으로 자원을 확장하거나 축소해 데이터베이스의 성능과 효율성을 유지할 수 있다.

 

(4) AWS IAM : 보안 및 접근 권한 제어

AWS IAM(Aws Identity and Access Management)는 AWS 자원에 접근하고 사용할 수 있는 사용자의 권한을 제어한다.

 

AWS IAM을 통해 할 수 있는 작업은 아래와 같다.

  • 사용자 권한 관리
    • 각 사용자에게 고유한 자격 증명(사용자 이름과 비밀번호 또는 엑세스 키)을 부여한다. 이를 통해 사용자에게 권한을 부여하거나 사용자의 권한을 제한한다.
  • 사용자 역할 관리
    • AWS 자원에 접근하는 서비스 또는 특정 사용자 계정에 역할을 부여하는데, 이를 IAM 롤 (IAM Role)이라고 한다.
  • 사용자 그룹 관리
    • 비슷한 역할이나 권한을 가진 사용자를 그룹으로 묶어 관리한다.
    • 그룹을 사용하면 여러 사용자에게 동일한 권한을 일괄적으로 부여하거나 사용자들의 권한을 제거할 수 있어 보안 관리에 효율적이다.
  • 자원 접근 정책 관리
    • AWS 자원에 대한 접근 권한을 세부적으로 제어하는 정책을 작성하고 관리하며, 이러한 정책은 JSON 형식으로 작성된다.
  • 암호 정책
    • 사용자가 강력한 암호를 사용하도록 강제하는 정책을 설정한다.
  • MFA 관리
    • AWS IAM은 추가 인증 수단으로 MFA(Multi-Factor Authentication)를 지원한다. MFA는 사용자의 신원을 확인하기 위해 여러 가지 인증 요소를 사용하는 보안 메커니즘으로, 사용자가 비밀번호뿐만 아니라 MFA를 통해 접근해야 하므로 계정 보안을 강화할 수 있다.
반응형

'Knowledge > 이론' 카테고리의 다른 글

CI / CD  (0) 2024.06.12
가상화와 컨테이너  (1) 2024.06.12
API  (0) 2024.06.12
DBMS  (0) 2024.06.12
callback VS fallback  (0) 2024.05.02