본문 바로가기
IT/AWS

AWS 구성요소 정리

by twofootdog 2020. 1. 17.

이번 글에서는 AWS(Amazon Web Service)의 구성요소에 대해 정리를 하고자 한다.

 

 

1. EC2(Elastic Compute Cloud)

 

AWS 클라우드에서 확장식 컴퓨팅을 제공한다. EC2를 사용하면 하드웨어에 선 투자할 필요가 없어 빠른 애플리케이션 배포가 가능하다. 또한 원하는 만큼 가상서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능하다. 요구사항이나 갑작스런 인기 증대 등 변동사항에 따라 신속하게 규모 확장/축소가 가능하여 서버 트래픽 예측 필요성이 줄어든다. 

Amazon EC2는 다음의 기능을 제공한다.

  • Instance(인스턴스) : 가상 컴퓨팅 환경
  • AMI(Amazon Machine Image) : 서버에 필요한 운영체제와 여러 소프트웨어들이 구성된 상태로 제공되는 템플릿으로 인스턴스를 쉽게 만들 수 있음
  • Key pair(키 페어) : 키 페어를 사용하여 인스턴스 로그인 정보 보호(AWS는 퍼블릭 키, 사용자는 개인키를 안전한 장소에 보관)
  • Instance Store volumes : 임시 데이터를 저장하는 스토리지 볼륨. 인스턴스 종료 시 삭제됨
  • Amazon EBS(Amazon Elastic Block Store) : Amazon EBS 볼륨을 사용해 영구 스토리지 볼륨에 데이터를 저장함
  • Regions & Availability Zones(리전 및 가용영역) : 인스턴스와 Amazon EBS 등의 리소스를 다른 물리적 장소에서 엑세스 할 수 있게 지원
  • 방화벽 기능 : 보안 그룹을 사용해 인스턴스에 연결할 수 있는 프로토콜, 포트, 소스 IP 범위를 지정
  • EIP(Elastic IP Address) : 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소
  • Tag(태그) : 사용자가 생성하여 Amazon EC2 리소스에 할당할 수 있는 메타데이터
  • VPC(Virtual Private Cloud) : AWS에서는 논리적으로 격리되어 있지만, 원할때마다 고객의 네트워크와 간편히 연결할 수 있는 가상 네트워크
  • AWS Marketplace : 내가 필요한 SW가 설치된 AMI를 구매하거나 팔 수 있는 곳

 

 

2. ELB(Elastic Load Balancing)

 

ELB(Elastic Load Balancing)는 Amazon EC2 인스턴스, 컨테이너 및 IP주소와 같은 여러 대상에 대해 수신한 애플리케이션 또는 네트워크 트래픽을 여러 가용 영역에 배포한다. 애플리케이션에 대한 트래픽은 시간이 지남에 따라 변경되므로 Elastic Load Balancing이 로드밸런서를 확장하고, 대다수의 워크로드에 맞게 자동으로 조정한다.

2-1. 로드밸런서의 이점

로드밸런서는 트래픽 부하를 가상서버와 같은 다수의 컴퓨팅 리소스로 분산시킨다. 로드밸런서를 사용하면 애플리케이션의 가용성 및 내결함성이 높아진다. 애플리케이션에 대한 요청의 전체적인 흐름을 방해하지 않고 필요에 따라 로드밸런서에서 컴퓨팅 리소스를 추가 및 제거할 수 있다. 또한 로드밸런서가 정상적인 대상에만 요청을 보내는지 확인하는 모니터링 프로세스를 구축할 수 있으며, 컴퓨팅 리소스가 주요 작업에만 집중할 수 있도록 암호화/복호화 작업을 로드밸런서로 넘길 수 있다.

 

2-2. Elastic Load Balancing의 종류

Elastic Load Balancing은 Application Load Balancer(ALB), Network Load Balancer(NLB), Classic Load Balancer(CLB)의 3가지 유형을 제공한다. 애플리케이션의 필요에 따라 로드밸런서를 선택할 수 있으며,  자세한 내용은 https://aws.amazon.com/ko/elasticloadbalancing/features/#compare 에서 확인할 수 있다. 

 

 

3. RDS(Relational Database Service)

 

Amazon Relational Database Service(Amazon RDS)는 AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스다. Amazon RDS는 업계 표준 관계형 데이터베이스에 필요한 용량을 제공하면서 비용이 효율적이며 크기 조정이 가능하고 데이터베이스 관리를 위한 공통작업까지 관리한다.

Amazon RDS는 아래와 같은 기능을 가지고 있다. 

  • 서버를 구입하면 CPU, 메모리, 스토리지, IOPS가 한데 묶여 제공되지만, Amazon RDS를 사용하면 이 모두가 따로 분할되므로 독립적으로 확장할 수 있다(예를들면 CPU가 더 많이 필요하거나, 스토리지가 더 많이 필요하면 그것만 개별적으로 확장 가능하다).
  • 백업, 스토리지 패치, 자동 장애감지 및 복구를 관리한다.
  • 관리형 서비스 환경을 제공하기 위해 Amazon RDS는 DB인스턴스에 대한 Shell Access를 제공하지 않는다. 또한 고급 권한이 필요한 특정 시스템 프로세스와 테이블에 대한 Access를 제한한다.
  • 필요할 때 자동화된 백업을 수행하거나, 고유한 백업 스냅샷을 수동으로 만들 수 있다. 이러한 백업을 통해 데이터베이스를 복원할 수 있으며, 복원프로세스는 안정적이고 효율적이다.
  • 이미 친숙한 MySQL, MariaDB, PostgreSQL, Oracle 및 Microsoft SQL Server 같은 데이터베이스제품을 사용할 수 있다.
  • 데이터베이스 패키지의 보안 외에도 AWS Identity and Access Management(IAM)을 사용해 사용자 및 권한을 정의하고 RDS에 Access할 수 있는 사용자를 제어할 수 있다. 데이터베이스를 가상 사설 클라우드에 넣어 데이터베이스를 보호할 수도 있다.  

 

 

4. S3(Simple Storage Service)

Amazon S3(Amazon Simple Storage Service)는 인터넷 스토리지 서비스다. 이미지나 동영상같은 파일을 저장하고 있다가 사용자가 요청해주면 제공해주는 서비스다. 이 서비스는 개발자가 더 쉽게 웹 규모 컴퓨팅 작업을 수행할 수 있도록 설계되었다. Amazon S3에서 제공하는 단순한 웹 서비스 인터페이스를 사용하여 웹에서 언제 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있다. 또한 개발자는 Amazon이 자체 웹사이트의 글로벌 네트워크 운영에 사용하는 것과 같은 높은 확장성과 신뢰성을 갖춘 빠르고 경제적인 데이터 스토리지에 엑세스할 수 있다. 

 

4-1. Amazon S3 구성요소

  • Bucket(버킷) : Amazon S3에 저장된 객체에 대한 컨테이너. HDD나 SSD라고 생각하면 된다. 모든 객체는 특정 버킷에 포함된다. 예를 들면 photo/puppy.jpg로 명명된 객체는 johnsmith 버킷에 저장되며, URL http://johnsmith.s3.amazonaws.com/photos/puppy.jpg를 사용하여 주소를 지정할 수 있다. 버킷의 이름은 AWS 전체에서 중복되지 않는 이름으로 사용한다. 
  • Object(객체) : Amazon S3에 저장되는 파일을 객체라고 부른다.
  • Key(키) : 버킷 내 객체의 고유한 식별자. 버킷 내 모든 객체는 정확히 하나의 키를 갖음. 버킷 & 키 & 버전ID 조합은 각 객체를 고유하게 식별한다. Amazon S3 내 모든 객체는 웹 서비스 엔드포인트, 버킷 이름, 키, 그리고 선택사항인 버전의 조합으로 고유한 주소를 지정할 수 있다. 예를 들면, http://doc.s3.amazonaws.com/2019-12-31/AmazonS3.wsdl 이라는 URL에서 "doc"는 버킷 이름이고, "2019-12-31/AmazonS3.wsdl" 은 키이다. 
  • Regions(리전) : Amazon S3에서 사용자가 만드는 버킷을 저장할 지리적 AWS 리전. 지연시간 최적화, 규정 요구사항 준수 등 다양한 필요에 따라 리전을 선택할 수 있다. 특정 리전에 저장된 객체는 사용자가 명시적으로 다른 리전으로 전송하지 않는 한 해당 리전을 벗어나지 않는다.

 

4-2. Amazon S3 장점

  • 데이터 저장 : 버킷에 객체를 원하는 만큼 저장할 수 있으며, 각 객체에 최대 5TB의 데이터를 포함할 수 있다. 각 객체는 고유한 할당키를 사용해 저장 및 검색한다.
  • 데이터 다운로드 : 데이터를 직접 다운로드하거나 다른사람이 다운로드 할 수 있다. 
  • 권한 : 데이터를 Amazon S3 버킷으로 업로드 또는 다운로드하려는 사용자에게 엑세스 권한을 부여하거나 거부할 수 있다. 3가지 유형의 사용자에게 업로드/다운로드 권한을 부여할 수 있다. 인증 메커니즘을 사용하면 데이터가 무단으로 엑세스 되지 않도록 보호하는데 도움을 줄 수 있다. 
  • 표준 인터페이스 : 표준 기반 REST 및 SOAP 인터페이스를 사용한다.

 

 

5. CloudWatch

Amazon CloudWatch는 AWS 리소스와 AWS에서 실시간으로 실행 중인 애플리케이션을 모니터링한다. CloudWatch를 사용하여 리소스 및 애플리케이션 측정 지표를 수집하고 추적할 수 있다(시스템 전체의 리소스 사용률, 애플리케이션 성능 및 운영상태)

CloudWatch 홈페이지에는 사용중인 모든 AWS 서비스에 대한 지표가 자동으로 표시된다. 사용자 지정 대시보드를 추가로 생성하게 되면 사용자 지정 애플리케이션에 대한 지표 확인이 가능하다. 

지표를 감시해 알람을 보내거나 임계값을 넘은 경우 모니터링 중인 리소스를 자동으로 변경하는 경보를 생성할 수 있다. 

 

 

6. CloudFront

Amazon CloudFront는 .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포할 수 있도록 지원하는 웹 서비스다. CloudFront는 엣지 위치라고 하는 데이터센터의 글로벌 네트워크를 통해 콘텐츠를 제공한다. CloudFront를 통해 서비스하는 콘텐츠를 사용자가 요청하면 지연시간이 가장 낮은 엣지 로케이션으로 라우팅되므로 콘텐츠 전송 성능이 뛰어나다. 또한 파일(객체)의 사본이 전 세계 여러 엣지 로케이션에 유지(캐싱)되므로 안전성과 가용성이 향상된다.

 

 

7. VPC(Virtual Private Cloud)

Amazon Virtual Private Cloud(VPC)란 Amazon EC2의 네트워크 계층으로, VPC를 사용하면 AWS 클라우드에서 논리적으로 격리된 공간을 프로비저닝하여 고객이 정의하는 가상 네트워크에서 AWS 리소스를 시작할 수 있다. IP주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경을 완벽하게 제어할 수 있다. VPC에서 IPv4와 IPv6를 모두 사용하여 리소스와 애플리케이션에 안전하고 쉽게 액세스 할 수 있다.

7-1. VPC의 이해 

아마존 웹 서비스는 기본적으로 다양한 고객들이 사용하는 공용환경이다. 사용자들은 이 환경 위에서 EC2나 RDS를 비롯한 다양한 리소스들을 생성/사용한다. 클라우드 위에서 생성한 리소스들은 기본적으로 네트워크를 통해 접근하는데, 하나의 계정에서 생성하는 리소스들만의 격리된 네트워크를 만들어주는 기능이 바로 VPC다. VPC를 사용하면 특정 사용자의 리소스들이 논리적으로 격리된 네트워크에서 생성되기 때문에 다른 사람들의 접근 및 조회가 불가능하다.

2011년 VPC가 처음 릴리즈 되고, 2013년 12월 이후 생성된 AWS 계정에서는 더이상 VPC는 필수사항이다. 하지만 EC2인스턴스 하나를 만들기 위해 사용자가 직접 네트워크 환경을 구축하는 것은 불편한 일이기 때문에, AWS에서는 AWS 계정을 생성할 때 리전 별로 기본 VPC를 함께 생성해준다. 

 

7-2. VPC 구성요소

7-2-1. VPC (1개)

프라이빗 클라우드를 만드는데 가장 기본이 되는 리소스이며, 논리적인 독립 네트워크를 구성하는 리소스이다. 이름과 IPv4 CIDR 블록을 필수적으로 가진다. 클라우드에서 생성하는 자원들은 기본적으로 특정 네트워크 위에서 생성되며 이에 접근하기 위한 프라이빗 IP를 가진다. 이 리소스들은 특정 VPC 위에서 만들어진다. 따라서 VPC의 CIDR 범위 안에서 적절한 IP를 할당받는다. 예를 들면 192.168.0.0/24 CIDR 블록을 가진 VPC에서 생성한 EC2 인스턴스는 192.168.0.127이라는 IP를 할당 받을 수 있다. VPC 범위 내에서 할당 가능한 IP가 모두 할당되면 더 이상 리소스를 만들 수 없다. 따라서 적절한 크기의 VPC를 만들어야 하며, VPC 하나의 최대 크기는 16이며, 이 경우 2^(32-16) = 65536개의 IP를 사용할 수 있다. 

VPC를 만들 때 또 하나의 고려사항은 인터넷과 연결되는 경우이다. 만약 52.12.0.0/16을 CIDR 블록으로 지정하면, 이 VPC에서 52.12.0.0/16으로 접속하는 트래픽은 VPC내부로 라우트 된다. 그런데 이 범위의 IP는 인터넷에서 사용할 수 있는 IP이기 때문에 이 VPC에서는 52.12.0.0/16에 속한 인터넷 IP로 접근이 불가능하다. 때문에 인터넷 연결이 필요한 경우 반드시 사설망 대역을 사용해야 하며, 인터넷 연결이 필요없어도 가능하면 사설망 대역을 사용하는 것을 권장한다. 사설망 대역은 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16이다. 

VPC는 독립된 네트워크를 구성하기 때문에 CIDR이 겹치더라도 생성하는 것이 가능하다. 하지만 추후에 다수의 VPC를 함께 사용하는 경우 IP 대역이 겹치면 문제가 발생할 수 있고, VPC는 만드는 것은 쉽지만 한번 만들고 나면 CIDR을 변경하는 것은 불가능하기 때문에 프로덕션 환경을 구축할 때는 제약사항을 충분히 이해하고 CIDR을 정하는 것이 좋다. 기본 VPC의 CIDR블록은 172.31.0.0/16이다. 

 

7-2-2. Subnet (N개)

VPC만 가지고는 아무것도 할수 없다. VPC는 다시 한번 CIDR 블록을 가지는 단위로 나누어진다. 서브넷은 실제로 리소스가 생성되는 물리적인 공간인 가용존(Available Zone)과 연결된다. VPC가 논리적인 범위를 의미한다면, 서브넷은 VPC안에서 실제로 리소스가 생성될 수 있는 네트워크라고 생각할 수 있다. 다른 서비스의 리소스를 생성할 때 VPC만 지정하는 경우는 없다. VPC와 서브넷을 모두 지정하거나 서브넷을 지정하면 VPC는 자동적으로 유추된다. 

하나의 VPC는 N개의 서브넷을 가질 수 있으며 서브넷의 최대 크기는 VPC의 크기와 같다. 

7-2-3. Route Table(1개)

라우트 테이블은 서브넷과 연결되어있는 리소스다. 서브넷에서 네트워크를 이용할 때 이 라우트 테이블을 사용해서 목적지를 찾는다. 라우트 테이블은 VPC를 생성할 때 만들어지며 VPC 및 서브넷에 연결되어 있다. 라우트 테이블은 VPC에 속한 서브넷을 만들 때 기본 라우트 테이블로 사용된다. 하나의 라우트 테이블에은 VPC에 속한 다수의 서브넷에서 사용할 수 있으며, 자동 생성되는 라우트 테이블에는 한가지 룰만 정의되어 있다. VPC의 CIDR 블럭을 목적지로 하는 경우 타깃이 local인 규칙이다. 예를들면 VPC의 CIDR 블럭이 192.168.0.0/16 일 때 네트워크 안의 목적지가 192.168.0.0/16 범위의 리소스를 찾는다면 VPC 내부에서 찾게 된다. 이 규칙은 삭제할 수 없으며 인터넷을 연결하거나 다른 VPC와 통신하기 위해서는 라우트 테이블에 라우트 규칙을 추가적으로 정의해야 한다. 

 

7-2-4. Internet Gateway(1개)

VPC는 기본적으로 격리된 환경이기 때문에 VPC에서 생성된 리소스들은 기본적으로 인터넷을 사용할 수 없다. 인터넷에 연결하기 위해서는 인터넷 게이트웨이가 필요하다. 라우팅 테이블에 인터넷 게이트웨이를 향하는 적절한 규칙을 추가해주면 특정 서브넷이 인터넷과 연결된다. 하지만 서브넷과 인터넷 게이트웨이 연결하는 것만으로는 인터넷을 사용할 수 없고, 인터넷을 사용하고자하는 리소스에 퍼블릭IP를 할당해야 인터넷을 사용할 수 있다.

 

7-2-5. Network ACL(1개)

네트워크 ACL(Access Control List)은 서브넷 앞단에서 주고(outbound) 받는(inbound) 트래픽을 제어하는 가상 방화벽이다. 하나의 네트워크 ACL은 다수의 서브넷에서 재사용할 수 있다. 

 

7-2-6. Security Group(1개)

시큐리티 그룹은 인스턴스 앞단에서 트래픽을 제어하는 가상 방화벽이다. 네트워크 ACL의 규칙을 통과하더라도 시큐리티 그룹의 규칙을 통과하지 못하면 인스턴스와는 통신할 수 없다. 

 

 

7-2-7. DHCP Option Set(1개)

DHCP 옵션셋은 TCP/IP 네트워크 상의 호스트로 설정정보를 전달하는 DHCP 표준이다. 이 기능을 사용하면 도메인 네임 서버, 도메인 네임, NTP서버, NetBIOS 서버 등의 정보를 설정할 수 있다. 일반적으로 VPC 생성 시 만들어지는 값 그대로 사용한다. 

 

 

참고

https://docs.aws.amazon.com/ko_kr

 

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html

Amazon EC2란 무엇입니까?

docs.aws.amazon.com

https://m.blog.naver.com/PostView.nhn?blogId=kbh3983&logNo=220978884150&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

[AWS] AWS 구성요소 기본개념

AWS는 한마디로 스케일링! 확장성!EC2 : Elastic Compute Cloud 독립적인 컴퓨터 EC2를 구매해서...

blog.naver.com

https://www.44bits.io/ko/post/understanding_aws_vpc

 

만들면서 배우는 아마존 VPC(Amazon VPC) 입문: AWS 네트워크의 기초

아마존 버추얼 프라이빗 클라우드(Amazon VPC)는 아마존 웹 서비스(Amazon Web Service)의 가장 기본이 되는 네트워크 서비스이자 리소스입니다. AWS에서 제공하는 대부분의 리소스들은 아마존 VPC를 기반으로 실행됩니다. 따라서 VPC를 이해하고 있어야 AWS 서비스를 십분 활용할 수 있습니다. 이 글에서는 기본 VPC와 같은 구성을 직접 만들어보면서 VPC의 기본 개념과 리소스들을 소개합니다.

www.44bits.io

 

 

 

댓글