본 내용은, 아마존 웹서비스 - AWS Discovery Book (권영환 지음) 을 통해 공부한 내용을 정리하였습니다.
클라우드 컴퓨팅
클라우드 컴퓨팅 기술은 인터넷이라는 통신 서비스를 활용한 컴퓨팅 서비스 종류의 하나입니다. 이에 반대는 Edge Computing 이라고 부르는데, 개인적인 생각으로는 둘다 중요한 요소라고 생각합니다.
본 포스팅에서는, 4차 산업혁명하면 빠짐 없이 나오는 클라우드(AWS)에 대해서 조금씩 알아보도록 하겟습니다.
클라우드 컴퓨팅 장점
- 언제(Any Time), 어디서나(Any Where) 인터넷을 사용해서 접근이 가능하다
- 초기 투자 비용이 발생하지 않으며, 사용한 만큼 지불한다. (Pay-Per-Use Pricing)
- 규모의 경제를 통해 지속적인 가격 인하를 실현한다.
- 미래에 필요한 인프라의 용량을 추정할 필요가 없다
- 속도 및 민첩성이 향상된다.
- 데이터 센터 운영 및 유지관리에 비용 투자가 필요하지 않다.
- 몇 분 만에 전세계에 서비스를 런칭하거나 배포할 수 있다.
이러한 장점들 덕에, 현재 대부분의 기업이 클라우드 컴퓨팅을 사용하고 있습니다.
클라우드 컴퓨팅을 배워야하는 이유
- 이미 많은 기업이 클라우드를 도입하였거나, 도입을 검토하고 있다.
- H/W를 데이터 센터에 넣고 운영/관리하는 일이 점점 줄어들 것이다.
이미 기업들이 클라우드를 사용하고 있으며, 클라우드의 사용은 계속해서 증가할 것입니다. 이에 맞는 엔지니어가 되기 위해서는 알아야 하는 필수 요소가 되었고, 이제 몰라서는 안되는 내용이 되었습니다.
클라우드 컴퓨팅 서비스 이용 방식
클라우드 컴퓨팅 서비스 이용 방식으로는, IaaS, PaaS, SaaS 세가지로 나눠집니다.
- IaaS (Infrastructure-as-a Service)
- 물리적 서버, 네트워크, 스토리지를 가상화하여, 다수의 고객을 대상으로 유연하게 제공하는 인프라 서비스
- PaaS(Platform-as-a-Service)
- Web 기반의 서비스 또는 애플리케이션 등의 개발 및 실행을 위한 표준 플랫폼 환경을 서비스 형태로 제공하는 서비스
- SaaS(Software-as-a-Service)
- 구글의 Gmail이나 MS office 365 등과 같이 응용 프로그램(Application)을 인터넷 및 웹 브라우저를 통해 제공하는 서비스
AWS 주요 서비스
AWS는 전세계에서 가장 높은 클라우드 서비스 점유율을 가지고 있으며, 이에 따른 다양한 서비스를 지원하고 있습니다. 대표적으로는 EC2, ELB, S3, EKS, ECS 등 Elastic이라는 말을 상당히 좋아합니다. (심지어는 어떤기업이 사용하고 있을지 궁금한, 인공위성 관련 서비스도 제공합니다.)
서버
서버란, 특화된 어떤 임무를 수행하기 위해 설계된 컴퓨터로, 특화된 임무를 수행하기 위해서 일반 컴퓨터보다, 고성능의 CPU, 빠르고 고용량의 메모리, 대용량의 디스크를 요구합니다. 점점 더많은 데이터를 처리하기 위해 높은 사양의 하드웨어를 요구하고 있습니다.
따라서 일반적인 서버는 일반 컴퓨터보다 가격이 많이 높으며, 서버용 OS가 설치됩니다. ( 주로 UNIX, Linux 가 설치되지만, Windows도 있음 ) AWS에는 EC2 ( Elastic Compute Cloud ) 서비스를 이용해 가상의 서버를 구성하고, 원하는 사양의 서버를 선택하여 사용할 수 있습니다.
하드디스크
알루미늄 합금 또는 강화유리 위에 자성 재료로 박막 처리된 원형 디스크들의 원의 중심축에 여러 겹으로 쌓여 올려져 모터로 빠르게 회전시켜 데이터를 저장, 검색, 삭제를 수행하며, 영구적으로 저장하기 위해 사용되는 컴퓨터의 주요 장치
하드디스크는 스핀 모터 방식의 기계식 하드 디스크와 플래시 메모리 기반의 전자식으로 동작하는 SSD( Solid-State Drive ) 디스크가 있습니다. SSD가 검색 속도, 낮은 지연 속도, 낮은 소음의 장점이 있지만 비쌈…
서버에서는, 고성능으로 대량의 데이터를 빠르게 처리하기 위해 디스크 어레이 컨트롤러, RAID ( Redundant Array of Independent Disks ) 와 같은 기술을 사용하여, 디스크 장애 발생 시에도 데이터를 보호, 높은 성능을 제공
AWS에는 EBS ( Elastic Block Storage ) 서비스를 통해 EC2에 디스크를 추가
보안
각종 위험으로 부터 정보 및 데이터를 안전한 상태로 유지
AWS에서는, 리소스에 대한 사용자 액세스 및 암호화 키 관리 서비스인 AWS IAM ( Identity & Access Management ), 관리형 위험탐지 서비스 Amazone GuardDuty, DDos 보호를 위한 AWS Shield, 악성 웹 트래픽 필터링을 위한 AWS WAF ( Web Application Firewall ) 등 다양한 보안 서비스 제공
보안이 중요해짐에 따라, 더 많은 서비스들이 등장하고 있음.
방화벽
정보 시스템에서 방화벽은, 인터넷과 같이 외부 네트워크에 연결되어 있는 내부 네트워크의 중요한 정보자산에 대해 외부로부터 불법적인 침입을 보호하기 위한 시스템
외부 사용자 또는 외부 시스템이 내부의 서버 및 자원에 접근하기 위해서는 반드시 방화벽을 거치며, 외부에서 공격이나 침입을 시도할 때, 방화벽을 거치면서 탐지 및 방어할 수 있는 시간을 벌 수 있다.
AWS에서는 자체 방화벽 서비스인 Security Group, NACL, AWS WAF 서비스 제공
리전
위치가 다른 나라들을 대상으로 동일 서버를 사용하게 되면, 재해 등으로 부터 서버가 정지되었을 때, 대처 할 수 없으며, 또한 물리적 거리로 인해 속도를 낼 수 없습니다.
이러한 이유로 인해, AWS는 전세계 주요국가에 리전을 구축하여 해당 위치에서 가장 가까운 곳에서 클라우드 서비스를 운영합니다. 한국에서는 2016년 서울 리전이 오픈되어 국내에서도 빠르게 사용가능합니다. ( 이전에는 일본 리전을 주로 사용 )
가용 영역
가용영역은 우리가 흔히 알고 있는 데이터 센터를 말합니다.
AWS 하나의 리전에 다수의 가용역역을 가지고 있으며, 데이터 센터는 같은 리전이라도 지리적으로 멀리 떨어져 있습니다. ( 재해, 정전 등을 피하기 위해 ) 한국은 3개의 가용 영역을 운영하고 있으며, AZ(available zone)라는 줄임말로 표현하고있습니다.
엣지 로케이션
엣지로케이션을 알기전에 CDN( Content Delivery Network )을 알아야하는데, CDN은 콘텐츠를 서버와 물리적으로 사용자들이 빠르게 받을 수 있도록 전세계 곳곳에 위치한 캐시 서버에 복제하는 서비스입니다.
엣지 로케이션은, AWS의 CDN 서비스인 CloudFront를 위한 캐시 서버의 모음을 의미하며, 멀리 떨어진 서버에서 다운로드 하는 것보다, 가까운 서버에 접속하여 다운받는 것이 훨씬 빠르기 때문에 CDN서비스는 전세계 주요 도시에 구축해 있습니다.
Amazone EC2
EC2는 Elastic Compute Cloud의 약자로, AWS상에서 안정적으로, 크기를 조정할 수 있는 컴퓨팅 파워를 제공하는 웹 서비스를 말합니다.
이러한 가상화 서버를 인스턴스라고 부르며, 필요에 따라 수천 개의 인스턴스를 운영할 수 도 있습니다.
주요특징
- 한 개에서 수천 개의 인스턴스로 확장 가능
- 모든 공개된 AWS 리전에서 사용 가능
- 필요에 따라 인스턴스의 생성, 시작, 수정, 중단, 삭제 가능
- Linux/Windows OS에서 사용 가능하며, 모든 소프트웨어 설치가능
- 사용한 사용량에 대해서 시간 단위 비용 과금
- 다양한 비용 모델 선택 가능
AWS EC2 인스턴스 유형
인스턴스를 보면 다양한 이름을 가지는데, 각 이름이 의미하는 바는 다음과 같습니다.
- M 시리즈 : 범용
- C 시리즈 : 컴퓨팅 최적화
- I 시리즈, D 시리즈 : 스토리지 최적호
- G 시리즈 : GPU 최적호
- R 시지르 : 메모리 최적화
ex) c4.Large
- c : instance family
- 4 : instance generation
- Large : instance size
EC2 인스턴스 구매 옵션
- 온디맨드 인스턴스 (On-Demand) : 필요할 때 바로 생성해서 사용하는 방식, 초 단위 비용 지불 (후불)
- 예약 인스턴스 (Reserved) : 1년 또는 3년의 기간에 대한 약정을 통해 온디맨드보다 저렴한 가격으로 이용 (선불)
- 스팟 인스턴스 (Spot) : 경매 방식의 인스턴스로, 스펙을 정해 비용을 입찰하며, 높은 가격을 입력한 사용자에게 인스턴스 할당
- 전용 인스턴스 (Dedicated) : 고객 전용의 하드웨어에서 인스턴스 제공
Amazone EBS(Elastic Block Storage)
EBS는 EC2에 연결되는 Block Level의 스토리지 서비스로, EC2 인스턴스용 영구 블록 수준의 스토리지 볼륨으로 안정적이고 지연 시간이 짧음.
주요특징
- 크기는 1GB 단위로 1TB까지 선택 가능
- 크기/사용 기간을 기준으로 비용 과금
- 마그네틱의 경우 발생하는 I/O 횟수에도 과금
- EC2 인스턴스와 독립적으로 사용 가능, 다른 EC2 인스턴스에 교체 가능
- 데이터는 영구적으로 저장되며, 원하는 가용 영역에 생성 가능
- 백업된 스냅샷에서 EBS 볼륨을 생성/복원 가능
볼륨 유형
- 범용 SSD
- 프로비저닝된 IOPS
- 처리량 최적화 HDD
- 콜드 HDD
- 마그네틱
EBS 스냅샷
스냅 샷은 기술적인 용어로, 특정 시간에 저장 장치의 상태를 나타냅니다. 이를 통해 보존되어 데이터 저장에 실패한 경우 데이터 백업 기능을 복원합니다.
AWS EBS 의 스냅샷 기능은, EBS 볼륨의 데이터를 스냅샷으로 만들어, 백업 및 보관할 수 있는 기능입니다.
EBS 스냅샷은 다음과 같은 특징을 가지고 있습니다.
- 스냅샷 진행 과정 중에도 EBS나 EC2를 중단 없이 사용 가능
- EBS볼륨의 크기 조정에 사용 가능
- 스냅샷의 공유 기능을 활용하여 다른 사용자에게 공유 가능
- 다른 리전으로 복사 가능
Amazone 보안 그룹
AWS의 보안그룹은 인스턴스에 대한 인바운드, 아웃바운드의 네트워크 트래픽을 제어하는 가상의 방화벽 역할을 합니다.
EC2는 인스턴스를 시작할 떄 보안그룹을 최대 5개 설정 할 수 있습니다. 이러한 보안 그룹은 온프라미스에서 사용되고 있는 방화벽의 정책과 유사합니다.