AWS Summit
5월 10일 아마존 웹 서비스(AWS) 측에서 AWS Summit Korea를 열었습니다. AWS Summit은 클라우드 관련 컨퍼런스들 중 가장 큰 규모의 컨퍼런스라고도 말할 수 있습니다. 저는 AWS가 무엇인지 간략하게만 알고 있을 뿐, 사용해본 경험도 깊게 공부해본 경험도 없었기 때문에 입문자용 쉬운 강의들을 찾아들으며 AWS를 자세히 알아보는 시간을 가졌습니다.
여러 강의들 중에서도 AWS를 이해하는 데 가장 큰 도움이 됐던 'AWS 에센셜: 클라우드 기초의 모든 것' 강의와 '초보자를 위한 컨테이너 강의' 내용을 요약해 보도록 하겠습니다.
AWS 에센셜: 클라우드 기초의 모든 것
클라우드 컴퓨팅을 사용하면 인프라를 더는 하드웨어가 아닌, 소프트웨어로 생각하고 사용할 수 있습니다.
클라우드 컴퓨팅의 이점
1. 자본 비용을 가변 비용으로 대체
인프라를 직접 구축하려면 하드웨어 장비 구매 비용 등 초기 투자 비용을 고려해야합니다.
또 매년 인프라 확장 비용도 고려해야합니다.
AWS를 사용하면 사용한 만큼 매월 비용을 청구하기만 하면 됩니다.
2. 규모의 경제로 얻게 되는 이점
AWS를 사용할 경우 AWS는 하드웨어 장비 구매에 대한 바잉퍼(?)를 갖습니다.
이 이점들을 AWS가 다 갖는 것이 아니라 가격 할인 정책을 이용해 구매자들에게 나눠줌으로써 선순환 고리를 형성하게 됩니다.
3. 용량 추정 불필요
어느정도로 확장할 지 미리 예측해서 하드웨어를 미리 구매해야하는데,
AWS를 사용하면 미리 준비된 리소스들을 원할 때 바로 사용할 수 있어 편리합니다.
4. 속도 및 민첩성 향상
직접 서버를 준비할 시 수 개월의 시간이 걸립니다.
반면 AWS를 이용하면 몇 분만에 인프라 환경 준비를 끝낼 수 있습니다.
5. 중요한 문제에 집중
관리에 대한 많은 부분들을 AWS에 위임함으로써 그런 부분에 대한 문제들을 신경을 덜 쓸 수 있어
다른 곳, 예를 들어 어플리케이션 쪽에 개발자들의 역량을 쏟을 수 있습니다.
6. 몇 분 만에 전 세계에 배포
AWS는 전 세계적으로 많은 리전들을 보유하고 있습니다.
고객은 원하는 리전을 골라 인프라 환경을 구현할 수 있습니다.
AWS란?
- 다양한 글로벌 클라우드 기반 제품을 제공하는 보안 클라우드 플랫폼
- 온디맨드 액세스 제공
- 유연성 제공
- 필요한 개별 서비스에 대해 사용한 만큼만 비용을 지불
- AWS 서비스는 빌딩 블록처럼 서로 유기적으로 작동
- AWS 교육 과정 사이트 : https://www.aws.training/
* 핵심 AWS 서비스
- Amazon VPC
- Amazon EC2
- AWS IAM
- Amazon S3
- Amazon EBS
- Amazon EFS
- Amazon S3 Glacier
- Amazon RDS
- Amazon DynamoDB
AWS 리전 / 가용 영역 / AWS 데이터 센터
설명 | |
AWS 리전 | - AWS 리전은 지리적 영역 - 리전 전체의 데이터 복제는 고객이 제어합니다. - 리전 간 통신에는 AWS 백본 네트워크 인프라가 사용됩니다. - 각 AWS 리전은 완전한 이중화 및 네트워크 연결을 제공합니다. - 리전은 일반적으로 2개 이상의 가용 영역으로 구성됩니다. |
가용 영역 | - 각 리전에는 다수의 가용 영역이 있습니다. - 각 가용 영역은 AWS 인프라의 완전히 격리된 파티션입니다. - 현재 전 세계에는 69개의 가용 영역이 있습니다. - 가용 영역은 개별 데이터 센터로 구성됩니다. - 가용 영역은 고객이 선택합니다. - 복원력을 위해 전체 가용 영역에 데이터와 리소스를 복제하는 것이 좋습니다. |
AWS 데이터 센터 | - 데이터가 상주하고 데이터가 처리되는 위치 - 데이터 센터는 고객이 선택할 수 없습니다. - 데이터 센터에는 일반적으로 50,000 ~ 80,000대의 물리적 서버가 있습니다. |
컴퓨팅 서비스
서비스 | 설명 |
Amazon EC2 (Amazon Elastic Compute Cloud) |
크기 조정이 가능한 컴퓨터 리소스를 가상 머신으로 제공하는 형태의 서비스 |
Amazon EC2 Auto Scaling | 사전에 정의한 조건에 따라서 이스텐셔스(?)를 자동으로 추가, 제거할 수 있게 도움을 주는 서비스 컴퓨터 리소스를 자동으로 확장, 축소할 수 있음 |
Amazon ECS (Amazon Elastic Container Service) |
컨테이너를 지원하는 확장성이 뛰어난 고성능 컨테이너 오케스트레이션 서비스 컨테이너 기반의 인프라가 필요할 때 사용할 수 있는 컨테이너 서비스 |
Amazon ECR (Amazon EC2 Container Registry) |
컨테이너 이미지 관리를 위한 서비스 |
AWS Elastic Beanstalk | 서비스를 배포, 확장할 때 사용 코드 형태를 올릴 때 필요한 인프라 환경을 자동으로 구성 |
AWS Lambda | 서버를 프로비젼, 관리하지 않고도 비즈니스 로직 코드를 실행할 수 있는 서비스 완전 관리형 컴퓨팅 서비스 사용한 컴퓨팅 시간에 따라서 요금이 지불 |
Amazon EKS (Amazon Elastic Kubernetes Service) |
오케스트레이션 도구로 쿠버네티스를 사용할 경우 쿠버네티스를 관리형 형태로 서비스 제공 |
AWS Fargate | 클러스터 구성 및 관리해주는 서비스 |
* 서비스별 비교
서비스 | 주요 개념 | 특성 | 사용 편의성 |
Amazon EC2 | - IaaS (서비스형 인프라) - 인스턴스 기반 - 가상 머신 |
원하는 방식으로 관리할 수 있는 머신 프로비저닝 | 많은 IT 전문가에게 익숙한 개념 |
AWS Lambda | - 서버리스 컴퓨팅 - 함수 기반 - 저렴한 비용 |
일정에 따라 실행되거나 이벤트에 의해 트리거될 수 있는 코드 작성 및 배포 | 많은 IT 직원에게 비교적 새로운 개념이지만, 방법을 익히고 나면 쉽게 사용할 수 있음 |
Amazon ECS Amazon EKS AWS Fargate Amazon ECR |
- 컨테이너 기반 컴퓨팅 - 인스턴스 기반 |
작업을 더 빠르게 구동하고 실행 | AWS Fargate는 관리 오버헤드를 줄이면서 더 많은 제어 권한을 제공하는 옵션 지원 |
AWS Elastic Beanstalk | - PasS (서비스형 플랫폼) - 웹 애플리케이션용 |
- 코드에 집중(애플리케이션 빌드) - DB, DNS 등 다른 서비스와 쉽게 연결할 수 있음 |
빠르고 쉽게 시작할 수 있음 |
스토리지 서비스
서비스 | 설명 |
Amazon S3 (Amazon Simple Storage Service) |
오브젝트 스토리지 데이터는 버킷 내에 객체로 저장됨 무제한 스토리지 (단일 객체는 5TB로 제한) 99.99999% 내구성 버킷 및 객체에 대한 세분화된 액세스 |
Amazon EBS (Amazon Elastic Block Store) |
인스턴스용 영구 블록 스토리지 복제를 통해 보호됨 상이한 드라이브 유형 몇 분 만에 확장 또는 축소 프로비저닝한 만큼만 비용 지불 스냅샷 가능 암호화 사용 가능 |
Amazon S3 Glacier (Amazon Simple Storage Service Glacier) |
장기 아카이브성 데이터 저장에 적합한 스토리 매우 저렴한 데이터 보관 및 장기 백업 3~5시간 또는 12시간 이내 Amazon Glacier에 Amazon S3 콘텐츠의 수명 주기 보관을 구성할 수 있음 |
Amazon EFS (Amazon Elastic File System) |
공유 파일 시스템을 만들 때 사용하는 서비스 여러 인스턴스가 동일한 스토리지를 사용해야 하는 경우 Amazon EBS는 하나의 인스턴스에만 연결되므로 부적절 Amazon S3도 쓸 수 있지만 이상적인 방법은 아님 Amazon EFS 및 FSx가 적합함! |
데이터베이스 서비스
서비스 | 설명 |
Amazon RDS (Amazon Relational Database Service) |
관계형 DB의 설정, 운영 및 확장을 손쉽게 해주는 서비스 - 간편하게 확장 가능 - 자동 소프트웨어 패치 - 백업 자동화 - 데이터베이스 스냅샷 - 다중 AZ 배포 - 자동 호스트 교체 - 보관 중인 데이터와 전송 중인 데이터 암호화 |
Amazon Aurora | 엔터프라이즈급 관계형 데이터베이스 RDS 인증 중 하나로 Aurora 선택 가능 MySQL 또는 PostgreSQL 호환되는 형태로 제공 MySQL 보다 최대 5배, PostgreSQL 보다 최대 3배 빠름 Amazon S3로 백업 지속 |
Amazon DynamoDB | 비관계형 DB를 관리형으로 사용 어떤 규모에서든 빠르고 유연한 NoSQL 데이터베이스 서비스 완전 관리형 지연 시간이 짧은 쿼리 |
Amazon Redshift | 데이터웨어하우스 시스템을 관리형 형태로 제공 |
Amazon DocumentDB | MongoDB 호환 데이터베이스 |
Amazon Neptune | 그래프 데이터베이스 |
※ Amazon RDS 엔진 종류 : Amazon Aurora / PostgreSQL / MariaDB / ORACLE / MySQL / SQL Server
※ DIY와 AWS 데이터베이스 서비스 비교
Amazon EC2의 데이터베이스 | AWS 데이터베이스 서비스 |
- 운영 체제 액세스 - 특정 애플리케이션의 기능 필요 |
- 손쉬운 설정, 관리, 유지 - 즉각적인 고가용성 - 성능에 초점 - 관리형 인프라 |
네트워크 서비스
서비스 | 설명 |
Amazon VPC | 프라이빗한 네트워크 환경을 만들어줌 리전을 하나 선택해야됨 |
Amazon Route 53 | DNS 서비스 |
AWS Direct Connect | 전용 프라이빗 네트워크 연결을 설정해 네트워크 비용을 줄이고 대역폭 처리량을 늘릴 수 있는 서비스 |
AWS VPN | 데이터센터 네트워크와 AWS 데이터 연결 가능 |
보안, 자격 증명 및 규정 준수 서비스
서비스 | 설명 |
AWS IAM (AWS Identity and Access Management) |
AWS 서비스에 대한 권한 증명을 할 수 있는 서비스 AWS 서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있다. AWS 사용자와 그룹을 생성하고 관리할 수 있음 리소스, 사용자, 그룹에게 허용 또는 거부하는 정책을 만들 수 있음 |
AWS Organizations | 계정 단위로 허용되는 서비스를 제한할 수 있음 |
Amazon Cognito | 웹/모바일에서 사용자 가입, 로그인, 액세스 제어를 할 때 자격증 배포를 만들어 사용할 수 있게 해줌 |
AWS Artifact | AWS 보안 및 규정 준수 보고서 플랫폼 제공 |
AWS Key Management Service | 데이터 암호화에 필요한 키 관리를 좀 더 안전하게 제어 |
AWS Shield | 디도스 방어 서비스 |
초보자를 위한 컨테이너 시작하기
컨테이너는 표준화된 소프트웨어 단위!
컨테이너와 가상 머신의 차이점
가상 머신은 하드웨어 수준에서 가상화합니다.
반면 컨테이너는 운영체제 수준에서 가상화함으로써, 기본 호스트 시스템의 OS 커널을 공유합니다.
또 컨테이너는 더 가볍고 부팅시간이 짧다는 특징이 있습니다.
가상화 플랫폼 Docker
- 경량 컨테이너 가상화 플랫폼
- 컨테이너를 생성, 저장, 관리 및 실행할 수 있는 도구 제공
- 자동화된 구축, 테스트 및 배포 파이프라인과 쉽게 통합
- 파일 시스템 계층을 활용하므로 가볍고 빠름
* Docker 컨테이너 이점
- 이동식 런타임 애플리케이션 환경
- 불변의 단일 아티팩트에 애플리케이션 및 종속성 패키지화
- 서로 다른 종속성을 가진 여러 애플리케이션 버전을 동시에 실행할 수 있음
- 개발 및 배포 주기 단축
- 리소스 활용도 및 효율성 향상
* 도커 컨테이너 이미지
- 컨테이너를 시작하기 위한 템플릿으로 사용되는 읽기 전용 이미지
- 기본 이미지에서 시작하여 종속성과 사용자 지정 코드를 추가
- 쉽고 재현 가능한 빌드를 위한 도커 파일
* 애플리케이션 환경 구성 요소
- 코드
- 런타임 엔진
- 종속성
- 설정
컨테이너 오케스트레이션 도구
하나의 컨테이너를 실행하는 것은 쉽지만, 많은 컨테이너를 실행하는 것은 어렵습니다. 이 문제를 해결하기 위해 등장한 것이 컨테이너 오케스트레이션 도구입니다. 한 마디로 요약하자면 컨테이너 관리, 확장 및 배포를 위한 프레임워크라고 할 수 있겠습니다.
컨테이너 오케스트레이션 도구 종류
- Amazon Elastic Container Service
- Kubernetes
- docker SWARM
- MESOS
AWS 컨테이너 서비스
- Amazon Elastic Container Service
- Amazon Elastic Compute Cloud
- Amazon Elastic Container Registry
- Amazon Elastic Container Service for Kubernetes
- AWS Fargate
총평
이전에 저는 "초기 스타트업들이 주로 AWS를 사용하고, 유명 기업들은 거의 다 온프레미스로 사내 서버를 직접 구축하고 있지 않을까?" 라고 생각했었으나, 기조 연설 중 나왔던 당근마켓의 사례를 보며 꼭 스타트업에게만 AWS의 이점이 있는 것이 아니라는 것을 느꼈습니다.
또, 그동안 AWS는 단 하나의 서비스일 것이라고 생각했었는데 AWS 안에서도 서비스가 여러 종류가 있다는 것을 새롭게 알 수 있었습니다. 거기에 더해 AWS 서비스 중 하나를 선택하면 쭉 그것만 사용하는 것이 아닌, 기업의 성장 단계에 따라 새로운 AWS 서비스로 갈아탄다는 사실도 당근마켓의 사례를 보며 알 수 있었습니다. "EC2를 사용할 때 VPC의 존재를 몰랐던 것이 아닙니다. VPC를 사용할 때 ECS의 존재를 몰랐던 것이 아닙니다. 즉 기업의 성장 단계에 따라 필요한 AWS 서비스가 각기 다르다는 것입니다." 라는 설명이 인상깊었습니다.
개발자로서 현재 기업에서 사용하고 있는 기술 스택만 잘 갈고 닦아놓으면 끝이 아니라, 기업의 비즈니스 상황에 맞게 언제나 새로운 단계로 전환할 수 있게끔, 늘 다른 기술에도 관심을 가지고 공부해야한다는 점을 배울 수 있었습니다.
'IT 일상 > 세미나 및 컨퍼런스' 카테고리의 다른 글
[우아콘2023] Kafka를 활용한 이벤트 기반 아키텍처 구축 (0) | 2024.01.21 |
---|---|
[우아콘2023] 대규모 트랜잭션을 처리하는 배민 주문시스템 규모에 따른 진화 (0) | 2024.01.17 |
디지털 대전환 엑스포 (21.11.27) (0) | 2021.12.15 |
취업특강 '취업에 성공하는 면접요령(사회초년생)' (21.09.15) (0) | 2021.09.15 |
Kubernetes Community Days Korea 2021 (21.09.09) (0) | 2021.09.09 |