데이터베이스와 애플리케이션을 같은 서버에서 실행, 별도의 네트워크 설정을 할 필요 없음
단점
1. 애플리케이션과 DB 둘 중 하나라도 장애가 발생할 경우 전체 서비스의 장애로 이어짐
2. 서버 자원을 효율적으로 사용하기가 어려움
3. DB와 애플리케이션이 한 서버에 구축되어 있기에 보안이 취약함
4. 애플리케이션과 데이터베이스가 하나의 서버로 구성되면 똑같은 데이터를 여러 서버에 복제해야 하므로 관리가 매우 힘들어지고 이는 scale-out 서버 확장의 어려움으로 이어짐.
애플리케이션과 데이터베이스를 각각의 서버로 구성하는 방법
단일 서버의 단점을 어느정도 해소해주지만 두개의 서버를 관리하므로 구성이 다소 복잡해집니다.
클라이언트는 여전히 하나의 애플리케이션 서버를 바라보고 있기 때문에 Scale-out은 어려운 구조입니다.
기존에 하나의 로드 밸런서가 여러개의 서버로 요청을 분산해주었던 방식에서
서버 내에 앱 단위의 로드 밸런서가 추가 된 방식
하나의 서버에 여러 개의 프로세스를 실행해 하나의 서버에서 여러 개의 요청을 동시에 처리 할 수 있기에 서버의 자원을 최대한으로 사용할 수 있습니다.
IT 서비스를 기업이 자체적으로 보유한 물리적인 서버에 직접 설치해 운영하는 방식
IT 리소스를 인터넷을 통해 온디맨드로 제공받고 사용한 만큼만 비용을 지불하는 방식
클라우드 컴퓨팅은 관리 주체와 수준에 따라 3가지로 구분하여 설명할 수 있다.
Iass -> PaaS -> SaaS 순으로 갈수록 자유도가 낮아지며
SaaS는 우리가 쉽게 접하는 여러 서비스(슬랙, 피그마, 지라 등) 들이 여기에 포함된다.
AWS는 컴퓨팅, 스토리지, 데이터베이스를 포함하여
이외에도 수많은 종류의 서비스를 제공하는 플랫폼입니다.
그 중에서도 자주 쓰이고 중요한 몇가지 서비스의 기능을 정리합니다.
Elastic Compute Cloud
단순 클릭 몇번을 통해 쉽게 사양을 고르고,
원하는 시간만큼 EC2 인스턴스를 생성해서 해당 서버로 API를 배포할 수 있음
Relational Database Service
클라우드에서 간편하게 데이터베이스를 설치, 운영 및 확장할 수 있는 서비스
사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 즉시 사용할 수 있도록 만들어주는 서비스
사용자가 직접 서버를 생성해서 데이터베이스를 설치하거나 설정하고 관리 하지 않아도 된다.
Simple Storage Service
일을 쉽게 저장할 수 있는 공간을 제공하는 서비스
Virtual Private Cloud
클라우드 환경을 계정 별로 독립된 네트워크 환경을 구성할 수 있게 도와주는 서비스
VPC를 활용하면 온프레미스 방식으로 데이터 센터에서 직접 네트워크 환경을 만드는 것과 같이 클라우드 환경에서도 네트워크를 구축 할 수 있습니다.
AWS에서 제공하는 CDN(Content Delivery Network) 서비스
사용자가 콘텐츠를 요청하면 지연시간(latency)이 가장 낮은 엣지 로케이션으로 라우팅하여 빠르고 뛰어난 성능을 보여줌
AWS의 DNS 서비스로 가용성과 확장성이 뛰어나고
AWS 내의 다른 서비스들과 호환성이 뛰어나 연동이 잘 된다는 장점이 있습니다.
Elastic Load Balancer
이름 그대로 로드 밸런서를 제공하는 서비스로 서버로 들어오는 높은 애플리케이션 트래픽을 여러 대상에 적절하게, 자동으로 분산시켜줌으로써 안정적으로 서버를 운영할 수 있게 도와줍니다.
AWS의 리소스에 대해 개별적으로 접근제어를 하거나 권한을 가지도록 계정 또는 그룹을 생성 및 관리하는 서비스