CLOUDWAVE

Public Cloud(AWS) : Cloud Fundamental ( 25.01.15 )

갬짱 2025. 1. 21. 21:04

 

Overview of Cloud

 

[ 클라우드 컴퓨팅 ]

: IT리소스를 인터넷기반 On-Demand방식으로 서비스하는 개념 ( On-Demand 방식 : 원하는 만큼의 리소스를 aws에 렌트(분할)하여 사용 )

  • 리소스 공유 : 나만이 쓰는 제품이 아니라 여러 사용자와 공유
  • 주문형 셀프 서비스 : 스펙 산정 및 계산 & 제품 리서치 및 발주 -> 즉시사용
  • 측정가능한 서비스 : 리소스 이용량만큼 요금부과
  • 신속한 확장성

 

[ 데이터 센터 환경 ]

: 서버를 호스팅하기 위한 시설 ( 일부 공간(상면)을 이용하여 서버 호스팅 )

  • 컴퓨팅 시스템, 통신장비, 저장장치, 기술지원( 운영관리 인력 ), 환경조절장치
  • 높은 운영관리 비용, 유지비용, 확장의 어려움

 

 

[ 클라우드 서비스 환경 ]

IT 인프라를 소프트웨어적 서비스로 제공

이때 물리영역을 논리적으로 재구성하여 서비스( 물리영역 + 가상화영역으로 관리 )

 

 

Cloud Computing Deployment Model

: 클라우드의 다양한 배포형태 = 구축형태

  • Public Cloud : 클라우드 서비스 외부의 모두와 공유가능( 제약없음 )
  • Private Cloud : 조직 내부망 서비스 사용, 특정집단 소속끼리만 사용가능
  • Hybrid Cloud : Public Cloud + Private Cloud
    public cloud를 사용할 수 없는 보안적인 내용들( ex. ERP )을 private cloud에 구성 & public cloud에서 데이터를 연동하여 사용가능
  • Multi Cloud : 다양한 외부 클라우드 서비스 사용 ( AWS, GCP, Azure 등.. )

 

Cloud Computing Model

: 클라우드를 서비스하는 형태 → 크게 IaaS, PaaS,SaaS로 나뉨

  • On-Premise : 데이터 센터를 직접 관리 및 운영
  • Colocation : 데이터 센터를 임대 / 데이터 센터 사업자( ex. 가비아 )의 상면(빈 공간)을 빌려와서 세팅해서 사용
  • Hosting : 데이터 센터를 임대 / 데이터 센터 사업자( ex. 가비아 )에서 요구사항에 따라 물리적 장비(physical equipment) 구매처를 소개 및 설치

 

클라우드 영역에서는 대량의 운영 영역이 간소화

  • Infra as a Service (IaaS) : 운영체제단계까지 클라우드 사업자가 관리
    • AWS EC2 : OS의 기본세팅( 선택가능 ), 애플리케이션 실행환경 ( Runtime & Middleware )을 직접 설치 및 관리
  • Platform as a Service (PaaS) : 실행환경까지 클라우드 사업자가 관리 = 실행 플랫폼을 제공 ( 소스코드만 업로드 ) → 사용자는 인프라 관리의 복잡성을 줄이고 애플리케이션 개발에 집중
    • AWS Elastic Beanstalk : 지정 플랫폼( Java, Nodejs, Python 등 )에 맞는 Runtime( JVM, 인터프리터, 실행엔진 등 )과 Middleware( 웹서버, DB, 캐시, 게이트웨이 )를 자동으로 설치하고 업데이트 & 배포이후의 관리 지원
  • Software as a Service(SaaS) : 애플리케이션 제품이 제공 = 최종 소프트웨어 제공 ( 기능 세분화 및 추가 불가 ) → 데이터를 추가, 입력하여 기능을 사용
    • MS365, Gmail, Github 등

 

Introduction to the AWS Cloud

 

[ AWS Regions ]

: AWS Service가 제공되는 물리적인 위치

  • 36개의 Region, 고유코드가 존재
  • 고유코드 = 지역(대륙,국가) + 지리적 위치 + 순번 ( ex. ap-northeast-2 )

 

[ Availability Zones(AZ) ]

: Region내에 존재하는 하나 이상의 데이터 센터 그룹

  • 1개의 Region에는 최소 3개 이상의 AZ로 구성됨 1개의 AZ에는 최소 최소 1개 이상의 Data Center로 구성됨 ( Data Center : 다양한 IT장비와 기술 인프라를 포함하는 종합적 물리적 시설 : 서버장비, 스토리지 장비, 네트워크 장비, 관리장비 )
  • 가용영역(AZ)은 재해에 대비하여 상호 100km 내외의 거리를 이격하여 구성 & 네트워크 전용선으로 연결
  • 가용영역(AZ)은 고유 알파벳 코드로 넘버링 고유코드 = 지역 + 지리적 위치 + 순번 + 알파벳코드 ( ex. ap-northeast-2a, ap-northeast-2b )
  • 가용영역(AZ)내 데이터센터는 하나의 건물 혹은 건물내의 특정층을 지칭함 하나의 데이터센터에서 여러 AWS 서비스를 제공( EC2, VPC, EBS등… )

data center = building or floor
AWS Region & Availability Zone Structure

 

[ AWS service ]

 

 

서비스 단위는 Global, Region, VPC 단위로 나누어 동작함

  • Global Service
    : 전 세계적으로 단일하게 관리됨, 모든 Region에서 동일하게 접근가능 → 동일한 데이터, 통합적인 관리
    • AWS IAM : 사용자 및 권한관리( policy )
    • Amazon Route 53 : 전세계적인 범위에서 DNS서비스 제공, 요청을 특정 리전으로 전송
    • Amazon CloudFront : 전세계적으로 콘텐츠를 캐시하고 배포하는 CDN
  • Region Service
    : 특정 Region에 물리적인 자원을 배치하고 해당 범위 내에서 작동하는 서비스 Region간 데이터를 직접 공유하지 않음( 글로벌 서비스를 통한 통신필요 )
    • AWS Lambda : 서버리스로 코드실행 Lambda함수가 특정 리전에 배포, 리전의 리소스와 통신
    • Amazon S3 : 데이터를 저장하고 관리하는 오브젝트 스토리지( 문서, 이미지, 영상 등 ) S3버킷이 특정 리전에 생성, 내부 AZ에 걸쳐 데이터를 복제하여 고가용성( S3 replication ) & 리전간 데이터를 공유하지 않음 네트워크는 기본적으로 public internet & private VPC endpoint 설정가능
  • VPC Service
    : 사용자가 설정한 가상 네트워크에서 작동 = 네트워크 수준에서 자원을 세분화하고 격리 ( 서브넷(AZ), 보안그룹(SG), 라우팅 테이블 등으로 서비스 격리 )
    EC2, RDS : 일반적으로 리전서비스 → 반드시 VPC와 연동되어 동작, VPC설정에 따라 네트워크를 제어가능
    • EC2 : 가상서버 서비스 특정 리전의 AZ에서 생성 / 필수적으로 VPC설정, VPC내에서 동작
    • RDS : 관계형 데이터베이스 관리 및 실행 특정 리전에 DB생성, 내부 AZ에 걸쳐 데이터를 복제( 고가용성 ) / 필수적으로 VPC설정, VPC내에서 동작

Region에 종속된 서비스는 생성시에 Region을 지정

VPC에 종속된 서비스는 생성시 VPC를 지정

EC2 : VPC의 서브넷 내부에 생성시 해당 서브넷 내부에 표현

 

[ ARN : Amazon Resource Name ]

생성한 AWS 리소스를 고유하게 식별하기 위한 ID값

  • Partition : aws, aws-cn(중국), aws-us-gov(미공공기관)
  • Service : 서비스 유형
  • Region
  • Account-id : 계정에 부여된 ID값 12자리 → 계정을 식별
  • Resource-type( 선택 ) : 서비스를 구성하는 세부 리소스 유형
  • Resource-id : 리소스에 부여된 ID값 12자리 → 리소스를 식별

 

[ 시스템 개발 환경의 분류 ]

  • local : 개별 개발자들이 개발하는 환경
  • dev : 개발환경 ( 기능의 결합후 잘 동작확인 ), 서버 한대로 구성
  • staging : 운영환경과 동일하게 만들어 테스트 ( 실제환경과 data만 상이함, 실고객 data가 아닌 모의 data = dummy data )
  • QA(Quality Assurance) : 품질확인환경
  • production : 실제 배포환경, 보안제품 및 서버 다중화가 적용 ( 장애가 없음을 보장 )

 

[ 리소스 네이밍 컨벤션 ]

  • 개발환경 : dev, stg, qa, prd
  • 시스템 명칭, 서비스 명칭
  • 리소스 명칭(유형)
  • 시스템 역할
  • 넘버링 : 리소스 위치, 서브넷 유형

 

architecture overview

전반적인 실습 환경 구성

ap-northeast-2 의 seoul region에 서버환경을 구축

VPC내에서 서브넷을 2개로 구분( 가용영역 ap-northeast-2a, ap-northeast-2c에 위치, 고가용성 ) → 각 내부에서 public, private, database 서브넷을 구축( 운영목적에 따라 다른 접근성 )

  • User : Route 53으로 도메인을 IP주소로 변환 → Elastic Load Balancer(ELB)로 리소스 요청분산( 부하분산 )
    • ASG( auto scaling group ) : EC2 인스턴스의 수를 자동으로 조정( 사용량에 따라 확장 및 축소 ) → 고가용성 보장, 탄력적 운영
    • Cloud Watch : 웹서버에서 부하가 올라올때마다 대응하기 위한 알람서비스 제공
    • S3 : 공유저장소, VPC 외부에 존재하기 IGW(인터넷게이트웨이)를 통해 접근헤야하지만 안전한 접근을 위해 endpoints를 만들어 사용
    • Aurora : AWS에서 제공하는 고성능 RDB 서비스, MySQL과 PostgreSQL과 호환 ( W는 writer노드로 쓰기작업을 처리, R은 reader노드로 읽기작업을 처리 )
  • Dev : GitHub에 코드 업로드 → GitHubActions에서 검증 → AWS CodeDeploy 서비스로 배포
    • CloudFormation : AWS 리소스의 생성, 관리를 자동화( Amazon IaC ) → 복사 및 확장 용이
      • 여러 VPC환경을 동일하게 설정 :: 인프라 구성요소( VPC, 서브넷, ASG, DB 등 )를 코드로 정의 → 탬플릿 기반(YAML)으로 자동 배포, 수정, 삭제
      • IDE에 배포된 인프라 구성 YAML → S3에 저장 → Cloud Formation에서 IaC로 확장사용
    • VPC peering : VPC간 네트워크 연결, 서로 다른 VPC에 있는 리소스들간 통신
    • EC2서버의 어플리케이션 수동 관리 → 서비스를 컨테이너화, Pod화하여 EKS로 자동관리