본문 바로가기
DevOps/AWS

AWS 친해지기

by DUSTIN KANG 2024. 1. 24.

AWS (Amazon Web Service)

아마존에서 제공하는 클라우드 서비스로 자신이 낸 비용만큼만 IT인프라를 사용할 수 있는 서비스이다. 국내에서는 네이버 클라우드(NCP)가 있다. AWS는 필요에 따라 서버를 줄이거나 확장 시킬 수 있는 유연성을 가지고 있고 다른 서비스와 함께 사용할 수 있다는 확장성을 가지고 있다. AWS에서 제공하는 서비스는 다음과 같다. 이외에도 많다.

  • 컴퓨팅 서비스(Compute)
  • 스토리지(Storage)
  • 데이터베이스(Database), 마이그레이션 도구

아마존 웹 서비스(AWS)↗
아마존 웹 서비스 콘솔 앱(iOS)

AWS 인프라

AWS는 전세계를 대상으로 하고 있는 글로벌 인프라 컴퓨팅 서비스이다. 그렇기 때문에 서비스를 제공하기위한 지역(위치) 또한 각 위치마다 다르다. 이렇게 서비스를 제공하는 지리학적 영역을 리전(Region)이라고 부른다. 리전을 선택하는 기준은 서비스나 애플리케이션에 대한 법적 요구사항, 지연시간(근접성), 가능한 서비스, 비용에 따라 다르다. 예를 들어, 한국에서 서비스를 제공한다고 했을 때, 한국에 있는 유저에게 빠른 시간 내 데이터가 전송이 되려면 서울 리전으로 결정해야 할 것이다. 
 
리전 내부에는 3개 이상의 가용 영역(Availability Zone, AZ)이 존재한다. 가용영역은 하나 이상의 데이터 센터(IDC)를 가지고 있다. 가용영역은 고 가용성이라는 특징을 가지고 있는데 각 가용 영역은 물리적으로 떨어져 있기 때문에 어떠한 리전에 서비스를 실행 했을 때, 한 가용 영역이 다운되어 지속성이 떨어지더라도 지속적으로 유지할 수 있게 도와준다.

Region, 서울은 ap-northeast-2 이다.

💡 Edge Location
엣지로케이션은 AWS의 CDN 서비스인 CloudFront와 DNS 서비스인 Route53을 빠르게 제공하기 위한 캐시 서버를 의미한다. CDN과 DNS와 같은 서비스들의 서버들은 리전과 별개로 엣지 로케이션에 적용되어 전달하는 방식이다. 

AWS 서비스

AWS 컴퓨팅

  • Amazon EC2, Auto Scaling
  • Amazon ECS
  • AWS Elastic Beanstalk
  • AWS Lambda(서버리스 서비스, 인프라 관리 할 필요 없음)
  • AWS Elastic Kuvernetes Service (Amazon EKS, 컨테이너 기반)
  • AWS Fargate (컨테이너의 서버리스 서비스)

이 중에서 Amazon EC2(Elastic Compute Cloud)는  다양한 운영체제를 가지고 있는 인스턴스를 가동시켜 원하는대로 서버를 관리할 수 있는 가상머신 컴퓨팅 서비스 이다. 클라우드 컴퓨팅 중 IaaS(서비스형 인프라)에 속한다.
 
그리고 Amazon Elastic Beanstalk은 AWS 인프라와 상관없이 Django와 같은 애플리케이션을 쉽고 빠르게 배포할 수 있게 도와주는 서비스이다. DB, DNS 뿐만아니라 로드 밸런싱 모니터링등 확장성 있는 서비스 또한 제공하는 PassS(서비스형 플랫폼)이다.
 

로드 밸런싱(Load Balancing)

애플리케이션 또는 네트워크 트래픽을 여러 가용 영역의 여러 대상에 분산하는 역할을 한다. 로드 밸런서의 종류로는 NLB, ALB, GWLB가 있는데 자세한 내용은 추후 EC2 포스팅에서 다루려고 한다.

오토 스케일링(Auto Scaling)

트래픽이 기하급수적으로 늘어날 때, EC2을 자동으로 추가하거나 제거하는 서비스이다. 사용자의 개입없이 동적으로 조정하여 가용성을 유지하도록 도와준다.

AWS 스토리지

  • Amazon S3(Simple Storage Service)
  • Amazon Elastic Block Store(EBS, 인스턴스EC2 용 영구 스토리지) 
  • Amazon Simple Storage Service Glacier
  • Amozon Elastic File System(Amazon EFS)

Amazon S3는 데이터를 객체 단위로 저장하는 객체 스토리지 서비스이다. 하나의 객체는 5TB를 제한으로 저장할 수 있다. 주로 데이터를 백업할 때 많이 사용한다. S3에는 버킷(Bucket)이라는 단위에 리소스를 저장할 수 있다.
 

AWS 데이터베이스

AWS에서 제공하는 데이터베이스는 두 종류 나뉜다.
비관리형 데이터베이스와 관리형 데이터베이스로 나뉘게 되는데 비 관리형 데이터베이스 EC2내에 그대로 사용하는 방법이다. 주로 OS에 직접적인 접근이 필요할 때이다. 반면 관리형 데이터베이스는 DB 관리를 AWS에 맡기고 사용자는 애플리케이션 개발에 집중할 수 있게끔한다.

  • Amazon Aurora(고성능 관계형 DB, Mysql, Postgresql)
  • Amazon DynamoDB(고성능 NoSQL DB)
  • Amazon Redshift(데이터 웨어하우스)
  • Amazon DocumentDB(MongoDB 호환 DB)
  • Amazon Neptune(그래프 DB) 

AWS 네트워크

  • Amazon VPC
  • Amazon Route 53
  • AWS Direct Connect
  • AWS VPN 

Amazon VPC(Virtual Private Cloud)는 가상 네트워크를 의미한다. VPC 내부에서 AWS 리소스를 실행할 수 있다.
VPC는 어떤 리전에 생성할지 정하고 해당 VPC가 얼마나 많은 IP 주소를 가질 수 있는지 CIDR 블록도 설정해야 한다.

 
앞선 그림처럼, 가용영역을 중복 배치하게 되면 서비스의 가용성을 유지할 수 있다. 서브넷은 인터넷 연결에 따라 Private과 Public 서브넷을 따로 두게 된다. 이 중에서 Public 서브넷은 Internet Gateway와 연결하지만 Private은 그렇지 않다. Subnet은 각각 라우팅 테이블을 가지고 있는데 라우팅 테이블을 통해 목적지를 정의한다.

AWS 보안

  • AWS Identify and Access Managenet(IAM, 인증 권한 관리) 
  • AWS Organizations (루트 계정에서 하위 계정으로 쪼개 조직의 계정들을 통합 제어)
  • Multi-Factor Authentication(MFA)

 
IAM(AWS Identify and Access Managenet)은 AWS 서비스와 리소스에 대한 접근을 관리할 수 있는 서비스이다. AWS은 공동책임 모델을 준수하고 있는데 사용자에게 제공하는 서비스 시설들의 보안은 AWS의 책임이고 사용자는 제공받은 인프라를 사용하므로서 필요한 관리 책임을 맡게된다. 약간 임대인(AWS)과 임차인(사용자) 관계와 유사하다. 건물에 문을 잠그지 않아서 생기는 문제는 사용자 책임인 것이다. IAM을 통해 생성 및 관리하고 있는 모든 서비스를 안전하게 제어할 수 있다.
 

AWS 요금

  • 온디맨드(On-Demand) : 시간/초당 계산하여 청구하는 방식
  • 예약(Saving Plans) : 1~3년을 약정할인하여 청구하는 방식으로 사용량이 안정적인 경우 사용
  • 스팟(Spot) : 임시적으로 사용하는 방식으로 언제든지 인스턴스가 종료될 수  있음, 하지만 온디맨드보다 저렴함.
  • 전용(Host) : 고정된 환경에 인스턴스를 사용하는 방식

☕️ 마치며

오늘도 저의 포스트를 읽어주셔서 감사합니다.
해당 포스트는 AWS 클라우드 에센셜을 참고하며 작성하였습니다. 
설명이 부족하거나 이해하기 어렵거나 잘못된 부분이 있으면 부담없이 댓글로 남겨주시면 감사하겠습니다.

'DevOps > AWS' 카테고리의 다른 글

[AWS] EC2와 RDS 연결하기  (0) 2024.04.09
[AWS] AWS IAM 설정하기  (0) 2024.01.25