들어가기 전에
우연한 기회로 AWS Game Day에 참여를 하게 되었다. 기존에 Django나 Spring을 하면서 간단한 EC2, S3, Route53 등의 서비스를 사용해본 경험은 있지만 기본적인 AWS 지식과 네트워크 개념이 부족한 상황에서 새롭게 배울 수 있는 기회였던 것 같다.
AWS Game Day는 Devops가 되어 정해진 시간동안 시나리오를 수행하면서 이슈가 발생하지 않도록 서비스 아키텍처를 구축을 하는 간단한 게임이었는데 물론 좋은 결과(1등)를 얻었지만 결과를 얻기 전까지 네트워크 지식이 부족하다는 사실이 정말 많이 와닿았다...
Subnet이 정확히 어떤 건지도 잘 몰랐으니까..!
이번에 스터디를 하게 될 따라하며 배우는 AWS 네트워크 입문 이라는 책을 선정하고 같이 공부하게 된 이유도 AWS를 알기 위해서는 기본적인 네트워크 지식을 같이 알아야되지 않을까? 라는 생각에서부터 시작을 하게 되었다.
01. AWS 소개
1.1 클라우드 란?
클라우드는 인터넷을 통해서 언제 어디서든지 원하는 때 원하는 만큼의 IT리소스(컴퓨팅, 스토리지, 네트워크)를 손쉽게 사용할 수 있게 하는 서비스를 말한다.
이 클라우드를 사용하는 양이 많아지고, 발전하는 이유는 On-promise의 불편한 점과 클라우드 서비스의 장점이 많기 때문이다.
Cloud Service 장점
하지만 가장 큰 부분은 서비스를 제공하는 과정에서 사용하는 IT 자원을 누가 관리할지에 대한 기준으로 차이가 발생하는데 결국에 클라우드 컴퓨팅을 통해 우리는 Shared Responsibility Model에 근거하여 좀 더 책임을 분산시킬 수 있다.
Shared Responsibility Model
Cloud Service를 제공하는 곳은 클라우드 환경 자체에 대한 책임
Customer는 클라우드 환경 위에 올라가는 보안에 대한 책임
1.2 클라우드 서비스 종류
AWS 클라우드 기준 서비스의 종류는 크게 4가지로 분류된다.
이 기준 또한 클라우드 사업자와 사용자가 얼마만큼의 범위를 관리할지에 대한 기준으로 나눌 수 있다.
IaaS
- Infrastructure as a Service
- AWS service : EC2, VPC, EBS
- 클라우드 사업자 : '서버, 네트워크, 스토리지' 자원에 대해서 제공, 운영, 관리
- 사용자 : 제공되는 IT 자원에서 가상 서버에 필요한 프로그램을 설치하여 사용
PaaS
- Platform as a Service
- AWS service : Elastic Beanstalk
- 클라우드 사업자 : '서버, 네트워크, 스토리지' 자원에 대해서 제공, 운영, 관리 + 운영체제와 개발에 필요한 미들웨어와 런타임 제공
- 사용자 : 제공하는 환경에서 개발
Serverless
- AWS service : Lambda, API Gateway(API Proxy)
- 클라우드 사업자 : 애플리케이션 개발에 필요한 대부분을 제공
- 사용자 : 개발 및 코드에만 집중
SaaS
- Software as a Service
- 클라우드 사업자 : Saas 서비스 개발을 원활히 할 수 있는 리소스 제공 및 다양한 지원
SaaS 서비스 예시가 나와있지 않아서 어떤 서비스가 있는지 그리고 정확히 PaaS와 헷갈릴 수 있을 것 같다.
AWS Docs에서 가져온 부분에 따르면 결국에 개발을 할 수 있는 여부에 대한 명확한 차이점이 있다는 것을 알 수 있다.
SaaS는 특정 태스크를 수행하는 데 사용되지만 PaaS는 애플리케이션 개발을 위한 관리형 인프라를 제공합니다. AWS 제품에서 비교하자면 Amazon Chime은 조직에서 대화, 채팅 및 비즈니스 회의를 여는 데 사용할 수 있는 온라인 SaaS 서비스입니다. 반면 Amazon Chime SDK는 실시간 통신 기능의 개발을 지원하는 PaaS 플랫폼입니다.
1.3 클라우드 구현 모델
클라우드 구현 모델은 크게 3가지 유형이 있다.
결국에 ip, 리소스 등의 허용 기준에 따라 구분이 된다.
Public cloud
클라우드 서비스 제공 업체가 운영 관리하며, 사용자는 해당 클라우드 리소스를 사용
Private cloud
사용자가 자신의 On promise 내에 클라우드 플랫폼을 구축하여 직접 사용하는 모델
Private cloud
Public cloud와 On-Promise 모두에 서비스 하는 모델
02. AWS 클라우드 소개
AWS는 전 세계 24개의 Region과 77개의 Ability Zone과 216개의 Edge POP를 운영하고 있다고 한다.
2.1 데이터 센터
크게 3가지 영역을 분류된다.
물리 영역(물리적인 보안과 건물을 운영하는 설비와 시스템), IT 인프라 영역(서버, 네트워크, 스토리지, 라우터 등의 일반적인 IT 인프러 디바이스), 운영 영역(데이터 센터를 운영 및 유지 관리하는 인원)
2.2 가용 영역
Ability Zone은 한 개 이상의 데이터 센터들의 모음
2.3 리전
Region은 해당 지리적인 영역 내에서 격리되고 물리적으로 분리된 여러 개의 가용 영역의 모음.
리전은 최소 2개의 가용 영역으로 구성이 되어 있기 때문에 특정지역의 물리적인 재난이나 재해로 서비스 이용이 불가능하는 것을 막을 수 있다. AWS Service를 구성할 때 이 가용영역을 분산하여 구성하는 것이 좋다.
2.4 엣지
Edge POP는 외부 인터넷과 AWS 글로벌 네트워크망과 연결하는 별도의 센터.
Edge Location, Regional Edge Cache로 구성되며, CDN서비스의 데이터 캐시 기능을 제공
AWS service : Cloudfront, Direct Connect, Route53, AWS Shield, AWS Global Accelerator
03. AWS 제품
3.1 Computing Service
EC2
물리 환경의 서버 컴퓨터와 유사하게 컴퓨팅 리소스를 제공하는 서비스
사용 목적에 다른 다양한 인스턴스 타입과 스펙으로 구분되며, 사용한 만큼 비용을 지불
인스턴스 패밀리
- 범용 (M)
- Burstable (T)
- 컴퓨팅 최적화(C)
- 메모리 최적화(X 또는 R)
- IO 및 스토리지 최적화(I 또는 D)
- GPU (G 또는 P)
- 하드웨어 가속(F)
인스턴스 세대 : 최신 세대일수록 가성비가 좋다.
Additional capability : 인스턴스 세대 뒤에 붙음.
- d : 빠른 Local NVMe SSD
- n : 네트워크 특화 (최대 100 Gbps 네트워크 성능)
- z : 클럭스피드 특화
- i : Intel
- a : AMD EPYC 프로세서
- g : AWS Graviton 프로세서
- e : Enhanced Performance
인스턴스 크기
Auto Scaling
EC2 인스턴스의 조건에 따라 자동으로 서버를 추가 혹은 제거를 해주는 서비스.
Lambda
프로그램을 실행하는 컴퓨팅 엔진으로 사용자는 코드만으로 서비스를 실행시킬 수 있다.
3.2 스토리지 서비스
EBS
가용 영역 내의 EC2 인스턴스에 연결되어 사용될 수 있는 블록 스토리지.
필요 시 블록 스토리지를 생성하고 연결할 수 있으며, 용량 증가가 가능하고 무엇보다 EBS 자체에는 백업이 가능하다는 것!
S3
객체 기반의 무제한 파일을 저장할 수 있는 스토리지.
손쉽게 파일을 사용이 가능하고( api 호출을 통해서 파일에 대한 접근이 용이), 여러 가용 영역에 있다보니 99.999999999%의 내구성 자랑한다. 아마 S3을 사용하는 가장 큰 점은... 저렴한 가격과 내구성이지 않을까.. 싶다.
물론 빈번한 write 작업이 이루어지면 그렇게 좋을 것 같지 않은게 S3에는 객체에 대한 수정을 할 수가 없다보니..! 덮어쓰기를 해야된다는것..!(웹 호스팅의 경우에는 versioning을 통해 관리할 수 있어서 괜찮기도!)
3.3 데이터 베이스 서비스
Amazon RDS
관계형 데이터 베이스를 이용할 수 있는 서비스.
Amazon DynamoDB
어떠한 규모에서도 10밀리초 미안의 성능을 제공하는 키-값 및 NoSQL 데이터베이스 서비스
04. AWS Network 소개
사실 이 부분은 다룰 내용이 너무 많다... 뒷장에 이제 본격적으로 VPC가 나오기 때문에.. 그때 깊게 다루는 것이 좋을 것 같아서 간단한 VPC 기본 내용에 대해서만 소개를 드리자면..!
VPC는 Virtual Private Cloud 로 AWS 클라우드 내 논리적으로 독립된 세션을 제공하여 사용자가 정의한 가상 네트워크 상에서 다양한 AWS 리소스를 실행할 수 있게 지원한다. 우리는 여기에서 Virtual과 Private가 정확히 어떤 것을 의미하는지 알아야 하고 동시에 VPN 개념을 알고 있으면 정말 편하다!
VPN은 실제사설망이 아닌 가상사설망이다. 가상사설망을 사용하는 이유는 보안상의 이유나 다른 이유로 네트워크를 분리해야 할 때 직접 네트워크를 분리하는 것은 비효율적이기 때문인데 즉 전용선을 다시 깔아야 한다. VPN은 실제로 같은 네트워크 상에 있지만 논리적으
로 다른 네트워크인 것처럼 동작을 할 수 있다.
좀 더 쉽게 설명하자면 우리 스터디에서 서로 연락을 하기 위해서 네트워크 선을 설치했다고 하자! 서로 네트워크를 통해서 정보도 주고 받고 연락도 하고 이리저리 하다가 서로 싸워서 2개의 팀으로 나눠질 정도로 사이가 안좋아졌다고 가정을 하면 우리는 서로의 정보를 주고 받고 싶지 않을 것이다. 물론 팀끼리는 서로 연락을 주고 받을테지만!
이 때 우리는 저 네트워크 선을 물리적으로 다시 설치를 할지 고민을 해야되는데 이때 virtualize를 하면 기존의 물리적으로 설치되어 있는 네트워크를 바꾸지 않고 나눌 수 있는 것이다! 그리고 팀끼리만 연락을 하거나 정보를 주고 받고 싶다는 것은 결국 네트워크의 가상화가 이루어지고 각 네트워크마다 private하게끔 사용할 수 있도록 설정할 수 있다는 것을 말한다.
VPC도 같은 개념! Network대신에 Cloud로 바뀌었다고 생각하면 된다!
VPC가 없다면 모든 인스턴스들이 거미줄처럼 연결되어 시스템의 복잡도가 올라가는 문제 발생
-> 인스턴스가 수정 및 추가될 시에 다른 인스턴스에게 영향을 준다.
VPC로 나누고 그 안의 인스턴스들끼리 연결
간단하게 AWS에 대해서 빠르게 훓어봤는데.. 다음 2장 VPC부터 실제 네트워크 개념이 나오다보니.. 깊게 공부를 하며 진도를 나가야될 것 같다...
출처
온프레미스(On-premise)와 클라우드(Cloud)의 차이점
온프레미스(On-premise)와 클라우드(Cloud)의 차이점
기본적으로 두 시스템은 모두 서비스(게임, 웹, 쇼핑몰, 실시간 채팅 등)을 만들때 필요한 재료(자원)들을 구성하는 방법에 대한 이야기집을 짓는다고 할 때 집을 짓기 위한 자제 구매부터 건물
velog.io
SaaS란 무엇인가요?
https://aws.amazon.com/ko/what-is/saas/
SaaS란 무엇인가요? - SaaS - AWS
SaaS는 이전에는 온프레미스 환경에서 실행하기에 너무 많은 비용 또는 에너지가 들었던 강력한 소프트웨어를 비즈니스에서 이용할 수 있다는 점에서 중요합니다. SaaS 제공업체는 하드웨어, 소
aws.amazon.com
[AWS] EBS, S3, EFS 차이(Block Level Storage, Object Storage)
[AWS] EBS, S3, EFS 차이 (Block Level Storage, Object Storage)
자주 접하는 Storage 서비스지만 평소 감(?)과 대충으로만 알 뿐이었다. 이들이 정확히 어떤 녀석들이고 어떤 차이가 있는지 정리해본다. 이들에 대해서 논하기 전에 먼저 Block Level Storage와 Object Sto
bosungtea9416.tistory.com
[AWS] 가장 쉽게 VPC 개념잡기
https://medium.com/harrythegreat/aws-가장쉽게-vpc-개념잡기-71eef95a7098
[AWS] 가장쉽게 VPC 개념잡기
가장쉽게 VPC 알아보기
medium.com
[Cloud] 5일차 수업 정리
https://velog.io/@oeckikek/Cloud-5일차-수업-정리
[Cloud] 5일차 수업 정리
5일차 🍗
velog.io
[AWS] 📚 VPC 개념 & 사용 - 엔드포인트 [End Point]
https://inpa.tistory.com/entry/AWS-📚-VPC-End-Point-개념-원리-구축-세팅#:~:text=VPC 엔드포인트는 VPC,수 있도록 지원하는 서비스
'AWS' 카테고리의 다른 글
[따라하며 배우는 AWS 네트워크 입문] 05 부하분산- (3) (0) | 2023.02.09 |
---|---|
[따라하며 배우는 AWS 네트워크 입문] 05 부하분산- (2) (0) | 2023.02.09 |
[따라하며 배우는 AWS 네트워크 입문] 05 부하분산- (1) (0) | 2023.02.07 |
[따라하며 배우는 AWS 네트워크 입문] 02 VPC 기초 - (1) (0) | 2023.01.31 |