코딩마을방범대

AWS(Amazon Web Service)란? 본문

💡 백엔드/AWS & Azure

AWS(Amazon Web Service)란?

신짱구 5세 2023. 12. 28. 16:27

 

 

AWS(Amazon Web Service)

  • 아마존이 제공하는 클라우드 컴퓨팅 플랫폼 및 서비스 모음
  • 전 세계에 걸쳐 다수의 데이터 센터를 운영하고 있으며, 이들 데이터 센터는 여러 '리전'과 '가용 영역'으로 구성되어 있음
    이를 통해 고객은 지역적으로 분산된 인프라를 활용할 수 있음

 

 

 


 

 

AWS 주요 서비스

축약형 확장형 설명
Amazone EC2 Elastic Compute Cloud 가상 서버를 제공하는 서비스
Amazone S3  Simple Storage 스케일링 가능한 객체 스토리지 서비스
Amazon RDS Relational Database Service 관리형 관계형 데이터베이스 서비스
Amazon VPC Virtual Private Cloud 사용자 정의 가상 네트워크를 제공
Amazon ECS Elastic Container Service 컨테이너 오케스트레이션 도구
AWS가 개발한 자체 컨테이너 오케스트레이션 서비스
Amazon EKS Elastic Kubernetes Service 컨테이너 오케스트레이션 도구
오픈소스 컨테이너 오케스트레이션 플랫폼인 Kubernetes를 기반
AWS Lambda   서버리스 컴퓨팅 서비스로, 코드를 서버 관리 없이 실행할 수 있음

 

 

 

 


 

 

AWS 인스턴스

  • 인스턴스 클라우드 플랫폼에서 제공하는 가상 서버
  • AWS의 Elastic Compute Cloud(EC2) 서비스를 통해 제공

 

특징

  • 메모리, CPU, 스토리지 및 네트워킹 용량을 기준으로 원하는 사양을 선택 가능
  • 가상화된 환경에서 실행되므로, 여러 운영 체제 중에서 선택하고, 자신의 응용 프로그램과 데이터를 쉽게 호스팅할 수 있음
  • 보안 및 네트워킹 기능을 제공하여, 보안 그룹과 네트워크 액세스 제어 목록을 통해 인스턴스에 대한 액세스 제어 가능
  • 전 세계 여러 지역에 걸쳐 분산된 데이터 센터에서 인스턴스를 실행할 수 있으며, 이를 통해 레이턴시를 최소화하고 재해 복구 능력을 향상시킬 수 있음
  • AWS의 다른 서비스와 쉽게 통합되며, AWS Management Console, AWS CLI, SDKs 등을 통해 관리할 수 있음
CPU (Central Processing Unit)
시스템의 모든 작업을 관리하고 실행

코어 (Core)
CPU 내의 처리 단위

 

 

 

 

 


 

 

 

 

 

 

 

ELB (Elastic Load Balancing)

  • 애플리케이션 트래픽을 여러 서버, 컨테이너, 람다 함수 등으로 분산시킴
  • 하나의 영역에 문제가 발생해도 애플리케이션이 계속 작동할 수 있도록 지원
  • 연결된 인스턴스의 상태를 주기적으로 확인(건강 검사)하고, 문제가 있는 인스턴스로의 트래픽 전송을 중단하여 안정적인 서비스 운영을 지원

 

 

 


 

 

ELB의 세 가지 유형

확장형 축약형  
Application Load Balancer ALB HTTP 및 HTTPS 트래픽을 위해 최적화되었으며,
고급 라우팅 기능을 제공하여 요청을 특정 리소스에 전달
Network Load Balancer NLB TCP, UDP, TLS 트래픽에 최적화되어 있으며,
초저지연 및 매우 높은 처리량을 제공
Classic Load Balancer CLB 이전 버전의 ELB로, 간단한 로드 밸런싱 기능을 제공
(CLB는 점점 ALB와 NLB로 대체되고 있음)

 

 

 

 

 


 

 

 

 

 

 

 

EBS(Elastic Block Store)

  • AWS에서 제공하는 고성능 블록 스토리지 서비스
  • 주로 Amazon EC2 인스턴스에 사용되며, 데이터를 저장하기 위한 지속적이고 확장 가능한 블록 스토리지를 제공
  • EBS 볼륨은 EC2 인스턴스와 독립적으로 존재하여, 인스턴스가 종료되어도 EBS 볼륨에 저장된 데이터가 보존됨
  • EBS 볼륨은 데이터를 암호화할 수 있으며, AWS Key Management Service(KMS)와 통합되어 보안 관리를 강화함
  • 스냅샷을 생성하여 데이터를 백업할 수 있으며, 이 스냅샷을 사용하여 새로운 EBS 볼륨을 생성할 수도 있음

 

EBS 볼륨 유형

범용 SSD (gp2, gp3) 가장 일반적인 사용 사례에 적합한 볼륨 유형으로, 균형 잡힌 가격 대비 성능을 제공
프로비저닝된 IOPS SSD (io1, io2) 고성능을 요구하는 I/O 집약적인 데이터베이스 작업에 적합
처리량 최적화 HDD (st1) 빅데이터, 데이터 웨어하우스, 로그 처리와 같은 대용량 순차 읽기/쓰기 작업에 최적화
Cold HDD (sc1) 접근 빈도가 낮은 데이터에 적합한 비용 효율적인 스토리지 옵션

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

인스턴스를 생성하기 전 알아야 할 필수 상식

 

VPC (Virtual Private Cloud)

  • 사용자가 클라우드 내에서 자신만의 격리된 네트워크 환경을 생성하고 관리할 수 있게 해줌
  • AWS 클라우드 내에서 사용자의 리소스를 격리시켜 보안을 강화
  • VPC 내에서 하나 이상의 서브넷을 생성할 수 있음.
    서브넷은 VPC의 IP 주소 범위 내에서 분리된 구역으로, 특정 서브넷을 공용 또는 사설로 설정할 수 있음
  • 보안 그룹과 네트워크 액세스 제어 목록(ACL)을 사용하여 VPC 내의 리소스에 대한 액세스를 제어할 수 있음
  • VPC를 온프레미스 네트워크에 연결하기 위해 가상 사설 네트워크(VPN) 연결을 설정할 수 있음

 

 

 


 

 

 

 

서브넷 (Subnetwork)

  • IP 네트워크를 더 작은 네트워크 세그먼트로 나누는 것
  • 네트워크를 더 작은 그룹으로 나누는 것
네트워크 세그먼트란?
컴퓨터 네트워크에서 특정 부분 또는 구역

 

장점

  • 서로 다른 서브넷에 있는 장치들은 직접적으로 통신하지 않음(보안 강화)
  • 네트워크 트래픽을 더 효율적으로 관리할 수 있으며, 네트워크 충돌과 트래픽 병목 현상을 줄일 수 있음
  • 서브넷팅을 통해 IP 주소 공간을 더 효율적으로 사용할 수 있음
트래픽이란?
인터넷 상에서 송수신되는 모든 통신의 양

 

 

 

 


 

 

 

 

라우터 (Router, 게이트웨이)

  • 서로 다른 네트워크 간의 데이터 패킷을 전송하는 기능
  • 네트워크 트래픽을 효율적으로 관리하기 위해 데이터 패킷의 출발지와 목적지 주소를 기반으로 최적의 경로를 결정
  • 내부 네트워크와 외부 네트워크(예: 인터넷) 간의 연결을 담당
패킷이란?
컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해서 전송되는 데이터 조각

 

 

라우터와 와이파이 공유기의 차이점?

  • 라우터는 데이터 라우팅에 중점을 두고, 와이파이 공유기는 무선 인터넷 연결을 제공하는 데 중점을 둠
  • 라우터는 네트워크 간의 연결 및 트래픽 관리에 초점을 맞추고, 와이파이 공유기는 무선 접속을 용이하게 하는 데 초점을 맞춤

 

그러나 현대의 와이파이 공유기는 라우터 기능을 포함하고 있어, 두 장치의 기능이 통합된 형태로 제공됨

 

 

 

 


 

 

 

 

AWS에서의 라우팅

  • VPC 내에서 라우팅은 트래픽의 흐름을 제어하고, 인스턴스, 서브넷, 인터넷, 그리고 다른 네트워크 서비스 간의 통신을 가능하게 함
구성 요소 설명
라우팅 테이블 (Routing Table) 네트워크 트래픽을 특정 목적지로 보내기 위한 규칙(라우팅 규칙)의 모음
라우트 라우팅 테이블 내의 각 라우트(경로)는 특정 IP 주소 범위(목적지)에 대한 트래픽을 어떻게 처리할지를 지정
인터넷 게이트웨이 
(Internet Gateway, IGW)
VPC를 인터넷과 연결하는 역할
NAT 게이트웨이 (NAT Gateway) 사설 서브넷에 위치한 인스턴스가 인터넷과 통신할 수 있게 하면서, 인터넷에서 해당 인스턴스로의 직접적인 액세스는 차단
VPC 피어링 (VPC Peering) 두 VPC 간에 트래픽을 직접 라우팅할 수 있게 하는 연결
트랜짓 게이트웨이 (Transit Gateway) 여러 VPC 및 온프레미스 네트워크 간의 중앙 허브 역할을 하며, 대규모 네트워크 환경에서 라우팅을 단순화 함

 

VPC -> Gateway -> 라우팅테이블(라우트) -> 서브넷 -> EC2

 

 

 

 

 


 

 

 

 

 

AMI (Amazon Machine Image)

  • EC2 인스턴스를 시작할 때 사용되며, 운영 체제(OS), 애플리케이션 서버, 애플리케이션 등 필요한 모든 정보를 포함
  • 시스템의 상태를 AMI로 저장하여, 이 AMI를 사용해 시스템을 원래 상태로 복구할 수 있음(백업/복구)
  • 동일한 구성의 서버를 여러 개 배포해야 할 때 AMI를 사용하여 일관된 환경을 신속하게 구축할 수 있음

 

특징

  • 서버의 운영 체제, 애플리케이션, 필요한 라이브러리 등을 미리 구성한 상태로 제공됨
  • 사용자 정의 AMI는 특정 애플리케이션 설정, 보안 패치, 도구 등을 미리 설치해 두어 효율적인 인스턴스 배포가 가능
  • 다양한 AWS 지역에서 사용할 수 있으며, x86 아키텍처 또는 ARM 아키텍처를 기반으로 한 인스턴스 유형에 따라 다르게 제공됨

 

 

 

 

 


 

 

 

 

 

 

 

테넌시(Tenancy)

  • Amazon EC2 인스턴스를 호스팅하는 방식에 대한 옵션
공유 테넌시(Shared Tanancy) - 여러 AWS 고객이 동일한 물리적 서버의 리소스를 공유
- 일반적인 워크로드, 비용 감소가 중요한 경우, 특별한 규정 준수 요구 사항이 없는 경우에 적합
전용 인스턴스(Dedicated Instances) - 인스턴스는 물리적 서버를 다른 AWS 계정과 공유하지 않지만, 동일한 AWS 계정 내의 다른 인스턴스와는 서버를 공유할 수 있음
- 보안이 중요한 비즈니스 애플리케이션, 규정 준수가 필요한 워크로드에 적합
전용 호스트(Dedicated Hosts) - 특정 AWS 계정이 물리적 서버 전체를 독점(최고 수준의 격리와 제어를 제공)
- 엄격한 규정 준수 요구 사항을 가진 워크로드, 소프트웨어 라이선스가 서버 기반 라이선싱 모델을 사용하는 경우에 적합

 

워크로드(Workload)
컴퓨팅 컨텍스트에서 시스템, 네트워크, 또는 서버 등이 처리해야 하는 작업의 양 또는 종류

 

 

 

 

 

 


 

 

 

 

 

 

 

오케스트레이션(Orchestration)

  • 여러 시스템, 애플리케이션, 서비스 또는 작업을 자동화하고 조정하는 프로세스
  • 일관된 프로세스와 정책 적용을 통해 시스템과 애플리케이션의 안정성을 유지

 

적용 분야 설명
클라우드 컴퓨팅 자원을 할당, 관리, 최적화하기 위한 자동화된 프로세스를 구현
컨테이너 오케스트레이션 도커(Docker)와 같은 컨테이너 기반의 애플리케이션을 관리(ECS, 쿠버네이트 등)
서비스 오케스트레이션 - 마이크로서비스 아키텍처에서 다양한 서비스 간의 상호작용을 조정
- 서비스 간의 의존성과 통신을 관리하여 복잡한 서비스 구성을 단순화
워크플로우 자동화 비즈니스 프로세스 또는 데이터 처리 파이프라인에서 여러 단계의 작업을 자동화하고 조정
네트워크 오케스트레이션
데이터 센터 또는 네트워크 환경에서 자동화된 네트워크 구성, 관리 및 최적화

 

 

 


 

 

쿠버네이트 (Kubernetes)

  • 컨테이너화된 애플리케이션을 대규모로 배포하고 관리하기 위한 오케스트레이션 시스템

 

주요 기능

기능 설명
클러스터 관리 여러 서버(노드)에 걸쳐 컨테이너를 조정하고 관리
자동화된 롤아웃과 롤백 애플리케이션 업데이트를 자동으로 관리
부하 분산 트래픽을 여러 컨테이너 간에 분산
자동 스케일링 필요에 따라 컨테이너를 자동으로 확장하거나 축소
자체 치유 실패한 컨테이너를 대체

 

 


 

 

 

도커 (Docker)

  • 컨테이너를 생성하고 관리하는 플랫폼

 

주요 기능

기능 설명
컨테이너 생성 애플리케이션을 컨테이너라는 격리된 환경에 패키징
이미지 관리 애플리케이션, 라이브러리, 도구, 종속성 등이 포함된 템플릿 관리
컨테이너 실행 Docker를 사용하여 컨테이너를 실행, 중지, 시작 및 관리

 

Docker로 컨테이너를 생성하고 Kubernetes를 사용해 컨테이너를 관리(오케스트레이션)

Kubernetes는 Docker와 같은 컨테이너화 도구 없이는 작동하지 않지만, Kubernetes 없이도 Docker를 사용할 수 있음

 

 

 

SMALL

'💡 백엔드 > AWS & Azure' 카테고리의 다른 글

Azure 구성도와 기본 상식  (0) 2024.01.03
AWS의 지역(Region)과 가용 영역(AZ)  (0) 2024.01.03
AWS와 Azure의 비교  (0) 2023.12.29