오늘도 개발
[AWS] 클라우드 컴퓨팅과 AWS 개요 본문
1. Traditional IT
- 서버 : 데이터를 제공하는 컴퓨터
- 옛날에는 서버를 집, 회사 전산실, 데이터 센터에서 관리
- On premise 방식 : 물리적인 공간에 서버 컴퓨터를 두고 관리함
단점
- 렌트 비용, 전력, 관리 비용, 하루종일 모니터링 할 인력 필요
- 확장하기 어려움(새로운 서버를 추가, 교체할 때 시간이 많이 소모됨)
- 천재지변에 대응하기 어려움(지진, 화재, 정전 등)
서버를 확장하는 방법
- scale up(vertical scaling) : 원래 있던 서버 컴퓨터의 부품을 업그레이드 하는 것
- scale out(horizontal scaling) : 서버 컴퓨터를 추가하는 것
2. Cloud Computing
서버 컴퓨터를 인터넷으로 제공해주는 서비스
특징
- Flexibility : 서버가 필요할 때 바로바로 컴퓨터 추가, 변경 가능(on-demand)
- Cost-Effectiveness : 사용한 만큼만 지불(pay-as-you-go)
- Scalability : 원하는 타입과 크기의 컴퓨터를 클릭 몇 번으로 지정할 수 있음 => 확장성
- High-availability, fault-tolerance : 인프라가 전 세계 여기저기에 존재함
- 간편하게 서버, 데이터베이스 등에 접근할 수 있는 솔루션 제공
- Agility : 빠르게 개발하고 테스트해볼 수 있음
종류
1) IaaS(Infrastructure as a service)
서버 컴퓨터를 가상화해서 제공.
자유도가 높으나 사용 난이도가 높은 편.
ex) AWS Elastic Compute Cloud(EC2),
Microsoft Azure Virtual Machines,
Google Compute Engine
2) PaaS(Platform as a service)
서버 컴퓨터를 이미 구축해두고 플랫폼만 가상화하여 제공
사용 난이도가 낮지만 자유도가 낮음.
ex) AWS Elastic Beanstalk, Heroku, Redhat OpenShfit
3) SaaS(Software as a service)
완성된 소프트웨어를 가상화하여 제공
ex) Zoom, Gmail, Slack
3. AWS
클라우드 컴퓨팅의 장점을 가장 잘 살린 서비스.
- 유연성 : 기존에 사용하던 리소스(ex. 서버 컴퓨터)가 있으면 그대로 사용할 수 있게 지원.
- 확장성 : AWS 리소스(컴퓨터)를 빠르게 추가, 제거할 수 있음
- 보안성 : 서비스마다 적절한 보안 기능 선택 가능
- 안정성 : 낮은 다운 타임(서버가 다운돼서 사용할 수 없는 시간이 적다는 뜻)
- 낮은 지연 시간(latency) 지향
주요 서비스
EC2(Elastic Compute Cloud)
몇 분만에 구동할 수 있는 가상 서버.
백엔드에서 작성한 api를 배포하는 공간.
EC2 상의 컴퓨터 한 대를 instance라고 한다.
Security Group
EC2 instance로 들어오는 네트워크 트래픽(HTTP 요청)을 제어하는 방화벽.
Security Group 설정을 해야 EC2 인스턴스에 HTTP와 SSH 접속 가능.
RDS(Relational Database Service)
AWS상의 데이터베이스.
RDS를 사용하면 따로 데이터베이스용 서버를 생성해서 데이터베이스를 넣을 필요가 없음.
직접 데이터베이스 설치하는 것보다 비용도 더 저렴.
Load Balancer (ELB = Elastic Load Balancing)
네트워크 트래픽(HTTP 요청)을 여러 서버에 분산할 때 사용.
Route 53
AWS에서 제공하는 DNS(Domain Name System).
내 API를 domain과 연결시켜준다.
* DNS : host의 ip 주소와 domain 주소를 연결해주는 시스템
domain : 별칭(위워크 2호점)
host : 주소에 있는 것(테헤란로에 있는 위워크 건물)
IP : 진짜 주소(테헤란로 427)
AWS S3(Simple Storate Service)
파일을 쉽게 저장할 수 있는 공간 제공.
파일마다 고유한 주소를 부여하기 때문에 웹에서 쉽게 읽어들일 수 있음.
주로 S3에 웹사이트에 필요한 이미지를 저장해두고 사이트에서 읽어들이는 방식으로 사용.
VPC(Virtual Private Cloud)
AWS 네트워크 안에서 사용자가 전용으로 사용할 수 있는 사설 네트워크
CloudFront
CDN(Contact Delivery Network)에 데이터 캐싱해서 지연 시간 줄여주는 서비스
(ex. CDN은 전 세계에 아마존이 설치한 컴퓨터. 서울에서 일어나는 일은 서울 CDN에 캐싱)
'웹 프로그래밍 > 웹의 이해' 카테고리의 다른 글
| Software Testing - E2E Test, Integration Test, Unit Test (0) | 2022.08.04 |
|---|---|
| [AWS] AWS에서 EC2, RDS 생성해서 배포하기 (0) | 2022.07.28 |
| RESTful API (0) | 2022.07.20 |
| 인가(Authorization) - SSS, JWT (0) | 2022.07.12 |
| 인증(Authentication) - Bcrypt (0) | 2022.07.11 |