헤매어도 한 걸음씩

AWS Technical Professional 과정 정리 본문

IT

AWS Technical Professional 과정 정리

ritz 2022. 3. 13. 21:58

AWS Technical Professional 과정을 듣고 정리했다. 

이 과정에서 학습한 내용은 다음과 같다.

  • AWS 핵심 기술
  • 솔루션에 AWS 서비스 적용
  • AWS 아키텍쳐 및 비용 최적화 모범사례
  • 개념 증명(POC)를 구성하는 가치 입증

본문은 이 중 'AWS 핵심 기술' 에 대해서 정리한 내용이다.

해당 내용에 앞서 클라우드, 리전, 가용 영역 등과 같은 기본 용어에 대해서 언급한다.


클라우드란? 

기존의 온프레미스 IT환경에서는 비즈니스 시스템을 실행하는 데 필요한 모든 물리적 구성요소를 회사에서 소유, 운용, 유지 관리 및 보관했다. 사용자는 기업 네트워크에 연결하고 로그인한 다음 리소스에 액세스 한다. 이러한 리소스에는 기업 애플리케이션, 파일 공유 및 스토리지 등이 포함된다.

 

클라우드는 클라우드 서비스 플랫폼에서 호스팅하는 인터넷을 통해 동일하거나 유사한 리소스에 대한 엑세스를 제공한다. 클라우드라는 용어는 연결 및 데이터 흐름을 설명하는 다이어그램에서 인터넷 리소스 또는 연결성이 종종 구름(cloud)으로 표현되었던 것에서 유래한다.

 

클라우드 컴퓨팅이란?

클라우드 컴퓨팅은 컴퓨터 파워, 데이터베이스 스토리지, 애플리케이션 및 기타 IT리소스를 온디맨드로 제공하고 클라우드 서비스 플랫폼에서 인터넷을 통해 사용한 만큼만 비용을 지불하는 것이다.

AWS와 같은 클라우드 서비스 플랫폼은 이러한 애플리케이션 서비스에 필요한 네트워크 연결 하드웨어를 소유하고 이에 대한 유지관리를 담당하며, 사용자는 웹 애플리케이션을 통해 필요한 것을 프로비저닝(provisioning; 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것) 하여 사용한다.

 

클라우드 컴퓨팅의 이점

기존 온프레미스 IT인프라와 비교하여 클라우드 컴퓨팅의 6가지 주요 장점이 있다.

  1. 자본 비용을 가변 비용으로 대체
    • 어떻게 사용하게 될지 모르는 상태에서 데이터 센터와 서버에 대규모 투자를 할 필요 없이, 컴퓨팅 리소스를 소비할 때 사용한 만큼의 비용만 지불하면 된다.
  2. 규모의 경제로 얻게 되는 이점
    • 수많은 고객의 사용량이 클라우드에 집계되므로 AWS와 같은 공급자는 더 높은 규모의 경제를 달성할 수 있으며, 사용량에 따라 지불하는 종량제 요금이 더 낮아진다.
  3. 용량 추정 불필요
    • 클라우드 컴퓨팅은 인프라 용량 요구사항을 추정할 필요가 없다. 애플리케이션을 배포하기 전 용량을 결정할 때 고객은 유휴 리소스를 낭비하거나 리소스 제약을 경험하는 경우가 많다. 하지만 클라우드 컴퓨팅을 사용하면 이러한 문제가 해결된다. 수요에 따라 리소스를 확장 또는 축소할 수 있다.
  4. 속도 및 대응력 개선
    • 클라우드 컴퓨팅 환경에선 클릭 한 번으로 새로운 IT 리소스를 사용할 수 있는 시간을 몇 주에서 단 몇 분으로 단축할 수 있다.
  5. 데이터 센터 운영 및 유지관리에 비용 투자 불필요
    • 고객은 수많은 서버를 관리하느라 시간을 허비하지 않고 사업에 더 집중할 수 있다.
  6. 몇 분 만에 전 세계에 배포
    • 클라우드 컴퓨팅을 사용하면 클릭 몇 번으로 전 세계 여러 리전에 애플리케이션을 손쉽게 배포할 수 있다.

 

AWS 글로벌 인프라 : 리전

Amazon의 클라우드 컴퓨팅 리소슨느 전 세계 여러 위치에서 호스팅 되는데, 이 위치를 AWS 리전이라고 한다.

각 리전은 다른 리전에서 완전히 격리되도록 설계되었다. 이를 통해 강력한 내결함성 및 안정성을 달성할 수 있다.

리소스를 표시할 때는 해당 리전에 배치된 리소스만 표시된다. 이는 각 리전이 서로 격리되어 있기 때문이며, AWS는 각 리전 간에 자동으로 리소스를 복제하지 않는다.

 

 

AWS 글로벌 인프라 : 가용 영역(AZ)

AZ(가용 영역)는 AWS 리전의 중복 전력, 네트워킹 및 연결이 제공되는 하나 이상의 개별 데이터 센터로 구성된다.

AZ를 사용하면 단일 데이터 센터를 사용하는 것보다 더 높은 가용성, 내결함성 및 확장성을 갖춘 프로덕션 애플리케이션과 데이터베이스를 운영할 수 있다.

AWS 리전의 모든 AZ는 높은 대역폭, 지연 시간이 짧은 네트워킹, 완전한 중복성을 갖춘 전용 메트로 광 네트워크와 상호 연결되어 있어 AZ 간에 높은 처리량과 지연 시간이 짧은 네트워킹을 제공한다. AZ 간의 모든 트래픽은 암호화됩니다. 애플리케이션 하나를 여러 AZ에 걸쳐 분할하면 기업의 격리가 더 원활하게 이루어지며 정전, 낙뢰, 토네이도, 지진 등과 같은 문제로부터 안전하게 보호된다.(추가 복원력을 위해 단층선과 같은 지리적 특성을 고려)

 

AWS 엣지 로케이션 (Edge Location)

엣지 로케이션은 AWS의 CDN제품인 CloudFront의 캐싱 콘텐츠가 위치하는 곳이다. 

 

CDN 서비스는 Content Delivery Network의 약자로서, 콘텐츠(HTML, 이미지, 동영상, 기타 파일)를 사용자들이 빠르게 받을 수 있도록 전 세계 곳곳에 위치한 캐시 서버에 복제해주는 서비스이다.

리전에서 설명한 것처럼, 멀리 떨어진 서버보다 가까운 서버에 접속하는 것이 전송 속도가 훨씬 빠르기 때문에 CDN 서비스는 전 세계 주요 도시에 캐시 서버를 구축해 놓는다.

다시 말해, CDN 캐시 서버는 인터넷 트래픽을 효과적으로 처리할 수 있는 지역에 POP(Point-of-Presence)를 구축한다.

CDN 서비스와 사용자가 직접 만나는 곳이라고 하여 Edge라고 부르는 것이다.

 

 


 

이제부터 AWS 핵심 기술(컴퓨팅, 스토리지, 데이터베이스, 네트워킹 등)에 대해 정리한다.

 

AWS 컴퓨팅 서비스

EC2

EC2는 클라우드에서 안전하고 크기 조정이 가능한 컴퓨팅 용량을 제공한다.

컴퓨팅 용량은 전통적으로 온프레미스 환경의 물리적 서버 또는 가상 서버에 의해 제공되었던 기능을 의미한다.

 

EC2의 이점 

  1. 탄력성
    • Amazon EC2를 사용하면 몇 시간 또는 몇 분 이내에 용량을 늘이거나 줄일 수 있다
    • Amazon EC2 Auto Scaling과 결합하면 Amazon EC2 플릿의 가용성을 유지하고, 필요에 따라 자동으로 확장 및 축소하여 성능을 극대화하고 비용을 최소화할 수 있다.
  2. 완전한 제어
    • 인스턴스를 완전히 제어할 수 있다.
  3. 유연한 클라우드 호스팅 서비스
    • 여러 인스턴스 유형, 운영 체제 및 소프트웨어 패키지를 선택할 수 있다.
  4. 통합
    • Amazon EC2는 대부분의 AWS서비스와 통합되어 있어 컴퓨팅, 퀴리 처리 및 다양한 애플리케이션 간 클라우드 스토리지에 대해 완전하고 안전한 솔루션을 제공한다.
  5. 안정성 
    • Amazon EC2는 교체 인스턴스를 빠르고 예측 가능하게 실행할 수 있는 매우 안정적인 환경을 제공한다.
  6. 저렴한 비용
    • Amazon의 규모 덕분에 실제로 사용하는 컴퓨팅 용량에 대해 매우 저렴한 요금을 지불할 수 있다.

 

EC2의 인스턴스 유형

Amazon EC2는 각 사용 사례에 맞게 최적화된 다양한 인스턴스 유형을 제공한다.

인스턴스 유형은 CPU, 메모리, 스토리지 및 네트워킹 용량의 다양한 조합으로 구성되며, 애플리케이션에 따라 적합한 리소스 조합을 선택할 수 있는 유연성을 제공한다.

각 인스턴스 유형은 하나 이상의 인스턴스 크기를 포함하고 있으므로 목표로 하는 워크로드 요구 사항까지 리소스를 확장할 수 있다.

 

인스턴스 유형은 인스턴스의 하드웨어 기능을 나타낸다. Amazon Machine Image(AMI)는 인스턴스의 초기 소프트웨어 구성을 나타낸다.

 

인스턴스를 처음 시작할 때 고객은 인스턴스 시작 시의 소스 AMI를 정해야한다. 동일한 구성의 인스턴스가 여러 개 필요할 때는 한 AMI에서 여러 인스턴스를 시작할 수 있다. 또한 서로 다른 구성의 인스턴스가 필요할 때 다양한 AMI를 사용하여 인스턴스를 시작할 수 있다,

 

 

Amazon EC2 Auto Scaling을 사용하여 배포 환경에서 인스턴스 수가 자동으로 증가 또는 감소하도록 트리거를 설정하여 애플리케이션의 상태 및 가용성을 유지할 수 있다.

Auto Scaling을 통해 실행중인 인스턴스의 상태를 모니터링할 수 있다. 상태 확인을 통해 비정상 인스턴스를 식별하고, 자동을 이를 종료하고 새로운 인스턴스로 교체한다. 사용자는 이를 수동으로 대응할 필요가 없다.

 

Elastic Load Balancing

네트워크 트래픽을 분산하여 애플리케이션 확장성 개선

 

 

AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있는 컴퓨팅 서비스이다.

이를 서버리스 컴퓨팅이라고 한다. AWS Lambda는 이미지 업로드, 인앱 활동, 웹 사이트 클릭, 연결된 디바이스에서의 출력과 같은 이벤트가 발생한 후 몇 밀리 초 내에 코드를 실행한다.

 

Amazon EC2 Container Services(ECS)는 Docker컨테이너를 지원하는 확장성이 뛰어난 고성능 컨테이너 관리 서비스로서, 이 서비스를 사용하여 Amazon EC2 인스턴스의 관리형 클러스터에서 애플리케이션을 손쉽게 실행할 수 있다.

 

 

여기까지 AWS 컴퓨팅 서비스에 대해 정리하면 다음과 같다.

  • EC2는 AWS의 컴퓨팅 기본 구성 요소이다.
  • EC2는 모든 워크로드의 요구 사항을 충족할 수 있도록 다양한 하드웨어 기능을 제공한다.
  • 또 시작할 때  AMI를 적용하여 소프트웨어 설치를 사용자 지정할 수 있다.
  • 그리고 Auto Scaling 및 로드 밸런싱을 구성하여 애플리케이션의 요구 사항에 따라 애플리케이션이 항상 적절한 양의 인스턴스를 실행하도록 할 수 있다.
  • 수요가 높거나 낮든 간에 정확히 필요한 만큼만 실행하고 비용을 지불한다.

 

다음으론 데이터를 저장하는 위치와 방법에 대해서 알아본다.

 

AWS 스토리지 서비스

물리적 서버나 가상 서버 여부와 무관하게 서버가 설정될 때마다 해당 서버에 데이터를 저장할 위치가 있어야 한다.

AWS는 확장 가능한 객체 스토어인 Amazon Simple Storage Service(S3)와 Elastic Block Store(EBS)라는 블록 스토어 등 여러 스토리지 서비스를 저장한다.

 

Amazon EBS

Amazon EBS는 Amazon EC2 인스턴스용 하드 드라이브와 같다.(사용자의 인스턴스에 디스크를 제공)

파티션을 생성하고, 포맷하고, 운영체제를 부팅할 수 있다. 또한 영구 블록 수준 스토리지 볼륨을 제공한다.

 

Amazon S3

Amazon S3는 개발자가 웹 규모의 컴퓨팅 작업을 보다 쉽게 할 수 있도록 설계된 인터넷용 스토리지이다.

언제 어디서나 웹에서 용량과 관계없이 데이터를 저장하고 검색하는 데 사용할 수 있는 단순한 웹 서비스 인터페이스를 제공한다.

이미지, 동영상, 코드 등 무엇이든 대량으로 저장할 수 있고, 가용성과 엑세스 속도가 뛰어나다.

 

 

AWS 데이터베이스 서비스

AWS에선 특정 애플리케이션 사용 사례에 맞출 수 있도록 특별히 구축된 다양한 데이터베이스를 제공한다.

AWS 데이터베이스 서비스에서 백업, 패치 관리, 복제와 같은 시간 소모적인 데이터베이스 관리 작업을 처리해주기 때문에, 고객은 애플리케이션 개발 등의 더 가치 있는 일에 집중할 수 있다.

 

Amazon Relational Database Service(RDS)

Amazon RDS는 관리형 관계형 데이터베이스 서비스로서, 고객이 선택할 수 있도록 Amazon Aurora, MySQL, MariaDB, Oracle, Microsoft SQL Server 및 PostgreSQL과 같은 6개의 익숙한 데이터베이스 엔진을 제공한다. 즉, 기존 데이터베이스에서 이미 사용하고 있는 코드, 애플리케이션 및 도구를 Amazon RDS에서 사용할 수 있다. Amazon RDS는 프로비저닝, 패치, 백업, 복원, 장애 탐지, 복구 등 일상적인 데이터베이스 작업을 처리한다.

 

 

Amazon EC2 호스팅 vs AWS 데이터베이스 서비스

Amazon 데이터베이스 서비스는 Amazon EC2에서 데이터베이스 소프트웨어를 실행하는 것보다 쉽게 설치, 관리, 유지할 수 있다.

다음은 AWS 데이터베이스 서비스를 사용할 때의 장점이다.

  1. 데이터베이스 프로비저닝, 백업과 복구 작업 실행, 보안 패치와 스토리지 및 사소한 버전 업데이트 관리와 같은 획일적이고 중요한 작업은 AWS가 해결하므로, 본연의 비즈니스에 집중할 수 있다.
  2. 대기 데이터베이스를 직접 설치하고 관리할 필요 없이 즉각적이고 동기식인 다중  AZ 배포를 통한 고가용성 데이터베이스 솔루션을 이용할 수 있다.
  3. 라이센스 등에 대한 문제에 대한 고민 없이 워크로드 패턴을 바탕으로 인스턴스 유형의 규모를 확장하거나 축소할 수 있다.

다음은 EC2 인스턴스에서 데이터베이스 소프트웨어를 호스팅 할 때의 장점이다.

  1. SYS/SYSTEM 사용자 엑세스, 운영 체제 수준의 엑세스를 포함한 데이터베이스를 완벽하게 제어

 

 

이제 환경을 구성 및 보호하는 방법과 같은 네트워킹 측면을 알아본다.

 

AWS 네트워킹 서비스

AWS는 다양한 네트워킹 기능을 제공한다. Amazon virtual Private Cloud(VPC)를 사용하면 고객이 AWS 클라우드에서 가상 네트워크를 구축할 수 있다. 격리된 프라이빗 네트워크 영역을 프로비저닝하고 여기에 리소스를 배포할 수 있다.

Amazon VPC는 보안 그룹과 네트워크 엑세스 제어 목록과 같은 고급 보안 기능을 제공한다.

 

AWS 네트워킹 제품은 서로 연동하여 애플리케이션의 요구를 충족할 수 있다.

예를 들어, Elastic Load Balancing을 Amazon VPC와 연동하면 강력한 네트워킹 및 보안 기능을 제공할 수 있다.

 

Amazon Route 53은 확장성이 뛰어난 DNS 서비스로서, 사람이 읽을 수 있는 이름을 숫자로 된 IP주소로 번역하여 최종 사용자를 인터넷 애플리케이션으로 라우팅 한다.

 

 


 

여기까지 AWS의 주요 서비스(컴퓨팅, 스토리지, 데이터베이스, 네트워킹)에 대해 정리했다.

이외에도 수많은 서비스가 있으며, 그중 AWS Technical Professional에서 다룬 내용은 아래 링크에 첨부했다.