AWS 소프트웨어 아키텍처 설계
1. 클라우드 환경 소프트웨어 아키텍처 목표 이미지 본 절에서는 아마존 AWS 클라우드 환경에서 소프트웨어 아키텍처 목표 이미지에 대해 설명한다. 아마존 AWS 클라우드 환경에서 소프트웨어 아키텍처 목표 이미지는 아마존 AWS 환경에서 가장 클라우드 환경에 최적화된 시스템을 구축했을 때 소프트웨어 아키텍처 모습이라고 판단된다. 아마존 AWS 환경에 최적화된 시스템은 아마존 클라우드 Managed서비스를 많이 적용한 시스템 이라기보다는 클라우드 환경에 맞는 아키텍처와 사상을 가진 시스템일 것이다. 예를 들어 서버리스 아키텍처 서비스 람다를 적용했다고 클라우드 네이티브 시스템이 아니라 그러한 서비스를 사용하지 않았다 하더라도 클라우드 사상에 더 가깝다면 클라우드 네이티브 어플리케이션인 것이다. 클라우드 네이티브에 가깝다고 보여지는 클라우드 환경 특징은 아래와 같다. Web 서버와 Application 서버의 경우 대용량 서버보다는 저용량 서버로 부하 분산하고 필요에 따라 Scale-out하는 구성 => 어플리케이션 서버 분산 DB서버는 읽기/쓰기 부하 분산 등을 위해 Write용 DB와 Read용 DB를 분리 구성하며, 업무별 부하 분산을 위해 업무별 DB 분리 구성 => DB 서버 분산 비즈니스 요구사항을 신속하게 구현하고 배포하기 위해 어플리케이션을 커다란 하나로 구성하지 않고 잘게 나누어 독립적으로 배포/실행 => 어플리케이션 분산 클라우드 환경에서 인스턴스를 포함한 모든 자원은 필요에 따라 쉽게 만들고 필요가 없을 경우 쉽게 폐기하고 모니터링할 수 있어야 하며, 이러한 과정을 자동화할 수 있어야 한다. 예를 들어 오라클 DB를 사용한다면 RDS오라클을 사용하면 Managed서비스가 되지만 EC2에 오라클을 설치해서 사용하면 Managed 서비스가 아니다. 위와 같은 특징을 가지고 WEB/WAS/DB 에 대한 목표 이미지를 그린 것이 그림 1이다. ...