[AWS] - 아마존 웹 서비스 종류 & 용어

Ogu·2023년 7월 9일
0

AWS

목록 보기
5/5

AWS란?

AWS는 전자 상거래 사이트를 운영하는 아마존닷컴의 자회사인 아마존 웹 서비스 사가 제공하는 클라우드 플랫폼으로, 전 세계에서 이용하고 있습니다. AWS를 이용하면 IT와 관련한 각종 시스템을 구축하고 운영할 수 있습니다. 개인부터 대규모 서비스까지 다양한 분야에서 AWS를 활용합니다. AWS를 이용하는 유명 기업으로 넷플릭스(Netflix)가 있죠.

애플리케이션/서비스를 구축하고 운영하는 환경을 인프라스트럭쳐라고 부릅니다.
AWS는 이러한 인트라 스트럭처를 구축하는 컴퓨팅, 스토리지, 네트워킹, 관리도구와 같은 다양한 서비스를 제공합니다.

이러한 AWS에서 제공하는 다양한 서비스에 대해 하나하나 간단히 알아보도록 하겠습니다.

컴퓨팅 서비스 (Computing Service)


EC2

EC2는 Elastic Compute Cloud의 약자로 AWS에서 가장 기본적이면서 널리 쓰이는 클라우드 컴퓨팅 서비스입니다. 물리 환경의 컴퓨터처럼 컴퓨팅 리소스를 제공합니다.
Elastic은 사용한 만큼 비용을 지불하는 탄력적인 이라는 의미입니다.
인스턴스라고 불리는 가상 머신으로 제공하며, 클라우드에서 비용, 성능, 용량 등을 확장 가능한 컴퓨팅 용량을 제공합니다. 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있습니다.

EC2의 장점

  • 효율성 : 클릭 몇 번으로 서버를 생성할 수 있기 때문에 실제 서버를 구축하는 것보다 훨씬 간편하고 효율적
  • 탄력성 : 용량을 늘리거나 줄일 수 있음
  • 비용 절감 : 사용한 만큼만 요금을 지불하면 되므로 비용 절감
  • 보안성 : 보안 및 네트워크 구성, 스토리지 관리 효과적

AWS EC2 인스턴스를 생성한다는 것은 AMI를 토대로 운영체제, CPU, RAM 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것이다

AWS Lamda

AWS Lamda는 모든 유형의 어플리케이션이나 백엔드 서비스에 대한 코드를 별도의 관리 없이 실행할 수 있는 서비스입니다.
Serverless 아키텍쳐 구현이 필요할 때, 서버에 대한 걱정 없이 코드만으로 서비스를 실행할 수 있습니다. 고가용성 컴퓨팅 인프라에서 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 로깅 등 모든 컴퓨팅 리소스 관리를 자체적으로 수행하므로, Lamda가 사용하는 언어중 하나로 코드를 제공하기만 하면 됩니다. (파이썬Python, 노드jsNode.js, 자바Java, 닷넷.NET, 고Go, 루비Ruby 공식 제공중)

Lamda의 장점

  • 서버 프로비저닝/관리 없이 코드 실행
  • 사용량에 따른 지속적 규모 조정
  • 높은 가용성 및 자동 복구
  • 밀리초 단위로 사용한 만큼만 비용 지불 (람다함수의 요청 수와 람다코드의 실행시간에 비례)
  • 빠른 개발 배포 (AWS 자체에서 많은 기능을 제공해주고 있어 API연동이 쉽고, Serverless의 강점인 배포가 쉬움)

Lamda의 단점

  • 리소스 제한
    람다는 메모리(최대 10GB), 처리시간 (최대900초, 즉 15분)으로 제한되어 있습니다.
  • Stateless (상태비저장)
    람다는 함수가 호출되면 새로운 컨테이너를 띄우는 방식이기 때문에 별도의 상태를 저장하지 않습니다. 이는 Lambda 함수가 이벤트에 의해 트리거 될 때마다 완전히 새로운 환경에서 호출된다는 것을 의미합니다. 따라서 이벤트의 실행 컨텍스트에 대한 액세스 권한이 없다보니, db connection을 유지하는 것 같은 기능은 수행하지 못한다.
  • ColdStart
    람다는 리소스를 효율적으로 사용하기 위해서 오랫동안 사용하지 않고 있을 경우 잠시 컴퓨팅파워를 꺼두고 있습니다. 다시 사용할 때 람다 컨테이너를 띄우기 위해 서버가 켜지고 실행환경을 구성하기 위해 약간의 딜레이가 발생합니다.

네트워킹 서비스(Networkikng Service)


VPC


VPC는 Virtual Private Cloud의 약자로 여기서 virtual 은 '가상'이라는 의미입니다. 클라우드 가상 네트워크 구축 서비스로, AWS의 데이터센터에 있는 전용 기기에서 서버나 네트워크 장비가 가진 기능을 에뮬레이션하는 소프트웨어를 작동시켜 기기를 이용하지 않고도 사용할 수 있습니다.
따라서 기기 추가나 삭제를 간단하게 수행할 수 있고, VPC끼리는 독립적이어서 서로 영향을 미치지 않습니다.
IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이를 구성할 수 있습니다.
가상 네트워킹 환경을 완벽하게 제어할 수 있고, VPC에서 IPv4와 IPv6 모두를 사용하여 리소스와 애플리케이션에 안전하고 쉽게 액세스할 수 있습니다.

Route53


AWS에서 제공하는 DNS(Domain Name System)을 제공하는 도메인 관리/설정 서비스입니다.
도메인 이름을 구매 및 관리하고 DNS 설정을 자동으로 구성합니다.

Route53은 다음 두가지 기능을 제공합니다.

  • 도메인 이름 등록
  • DNS 서버
    사용자를 AWS 외부의 인프라로 전달하는 서비스도 이용 가능합니다.

도메인 이름 등록

도메인 이름 등록은 상위 도메인을 관리하는 조직에 자신의 도메인을 요청해서 등록하는 것을 말합니다.

DNS 서버

Route53은 DNS 서버의 기능을 제공하는 매니지드 서비스입니다.
물론 Route53을 이용하지않고 EC2 인스턴스만으로 오픈 소스 DNS 서버를 구축할 수도 있지만, 안정성이나 비용 성능, 로드밸런서와의 연계 등의 장점이 있으므로 Route53을 적극적으로 이용하는 편이 좋습니다.

Route53에서 생성한 DNS 서버는 용도에 따라 퍼블릭 DNS프라이빗 DNS 2가지 유형으로 나뉩니다.

ELB


ELB(Elastic Load Balancer)란 애플리케이션 트래픽을 여러 대상에 자동으로 분산시켜 안정적인 AWS서버 환경을 운용하는데에 도움을 주는 서비스입니다. EC2뿐만 아니라 컨테이너(ECS), IP주소, AWS Lambda 등으로 다양한 서비스와 연계하여 부하를 분배할수 있습니다.

💊 로드밸런서?


서비스 초기 단계에는 적은 수의 클라이언트로 인해 서버 한대로 요청에 응답할 수 있을지도 모르지만, 규모가 확장되어 클라이언트의 수가 늘어난다면 기존 서비스로만은 정상적인 서비스가 불가능 할 것입니다.
이럴 때 웹 서버를 여러 대 준비하여 성능을 높이는 방법을 이용할 수 있고, 이를 스케일 아웃 이라고 부릅니다. 하지만 단순히 웹 서버만 늘리면 송신 대상자의 PC 브라우저나 모바일에서는 새로운 웹 서버를 자동으로 이용하지 못합니다. 따라서 스비스를 제공하는 측에서 시스템을 추가로 제공해야 합니다.

로드밸런서는 이러한 스케일 아웃을 수행하는 하나의 방법으로, 주요 역할은 다음과 같습니다.

  • 요청 분산
  • SSL 처리
  • 부정 요청 대응

로드 밸런싱 알고리즘

  • 라운드 로빈 방식(Round Robin Method) - 요청을 순서대로 돌아가며
  • 가중 라운드 로빈 방식(Weighted Round Robin Method)
    각각 서버에 가중치를 매기고 우선적으로 배분
  • IP 해시 방식 (IP Hash Method)
    클라이언트의 IP 주소를 특정 서버로 매핑하여 요청 처리
  • 최소 연결 방식 (Least Connection Method)
    요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 우선적으로 트래픽 배분
  • 최소 리스폰 타임(Least Response Time Method)
    서버의 현재 연결 상태와 응답 시간을 모두 고려해 트래픽 배분

CloudFront


Cloudfront는 AWS에서 제공하는 CDN(컨텐츠 전송 네트워크)입니다.

💊 CDN이란?
CDN(Content Delivery Network or Content Distribution Network, 콘텐츠 전송 네트워크) 은 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템입니다. 인터넷 서비스 제공자에 직접 연결되어 데이터를 전송하므로, 콘텐츠 병목을 피할 수 있는 장점이 있습니다.

CDN 서비스를 이용하면 서비스 대기 시간과 성능이 개선되어
이미지, 오디오, 비디오 및 일반 웹 페이지 등을 최종 사용자에게 빠르게 제공할 수 있습니다.

S3, EC2, ElasticLoadBalancing, Rounte53등과 같은 AWS 서비스와 통합하여 운영할 수 있고,
리전에 상관 없이 엣지 로케이션 기준으로 가장 가까운 곳에서 파일 캐시를 가져오기 때문에 속도도 빠르고 비용도 EC2 혹은 S3 서비스로 제공하는 것보다 저렴합니다.

CloudFront 데이터 전달 과정

스토리지 서비스(Storage Service)


Amazon S3

AWS S3는 Simple Storage Service의 약자로, 업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는 온라인 오브젝트(객체) 스토리지 서비스(객체로 된 파일을 다루는 저장소)입니다. (S앞글자 3개)

즉 파일 저장 서비스로, 데이터를 온라인으로 오브젝트 형태로 저장하는 정적 파일 스토리지 서비스입니다.

데이터 조작에 HTTP/HTTPS를 통한 API가 사용되며, 비용도 저렴하고 데이터 양이 무한에 가깝다. 또한 탄력적(elastic)이어서 별도의 확장, 축소를 관리할 필요가 없습니다.

Cloud Front를 구성하면 S3에 저장된 정적 파일이 CDN을 통해 더 효율적으로 빠르게 보급되는 장점이 있습니다.

S3 버킷과 객체

  • 객체(Object) : 데이터와 메타데이터를 구성하고 있는 저장 단위
  • 버킷(Bucket) : 객체를 저장하고 관리하는 역할

S3 사용 예

  • 클라우드 저장소 (개인 파일 보관, 구글 드라이브처럼 사용 가능)
  • 서비스의 대용량 파일 저장소 - 이미지, 동영상, 빅데이터 (ex: 넷플릭스)
  • 서비스 로그 저장 및 분석
  • AWS 아데나를 이용한 빅데이터 업로드 및 분석
  • 서비스 사용자의 데이터 업로드 서버 (이미지 서버, 동영상 서버)

데이터베이스 서비스 (Database Service)


Amazon RDS

RDS는 Relational Database Service의 약자로 Aamazon RDS는 관계형 데이터베이스를 간편하게 클라우드에서 설정, 운영, 확장이 가능하도록 지원하는 웹 서비스입니다.

RDS 데이터베이스 종류로는 Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle, MS SQLServer 총 6개가 있으며, 자동 백업 및 수동 백업 모두 제공합니다.

RDS의 특징은 다음과 같습니다.

  • 관리 부담 감소
  • 확장성
  • 가용성 및 내구성
  • 보안
  • 관리 및 보안 효율성

Amazon DynamoDB

어떠한 규모에서도 10ms 미만의 성능을 제공하는 key-value 형태이 NoSQL 데이터베이스 서비스입니다.
데이터 규모와 상관 없이 데이터를 저장 및 검색하고, 어떤 수준의 요청 트래픽이라도 처리할 수 있는 데이터베이스 테이블을 생성할 수 있습니다.

참고

profile
私はゲームと日本が好きなBackend Developer志望生のOguです🐤🐤

0개의 댓글