12.2 이뮤터블 인프라스트럭처의 개념
12.2.1 비즈니스 상황에 따른 시스템의 생명 주기
- 기업 시스템은 비즈니스 프로세스나 서비스의 생명 주기에 맞춰 새로 구축되거나 업그레이드 되고 마지막에 폐기 되는 것이 가장 이상적
- 이뮤터브 인프라스트럭처란 직역하면
변하지 않는 서버 기반
- 클라우드 환경에서는 필요한 시점에 리소스 확보 가능
- 소프트웨어 업그레이드나 보안 패치 여기, 릴리즈 시점에 함께 실시할 수 있다.
- AWS 에서는 종량제로 이용할 수 있는 DB나 애플리케이션 서버 같은 시스템 소프트웨어는 물론 PaaS 도 관리형으로 제공하기 때문에 릴리즈 하는 시점에 가장 안정적인 최신 버전을 적용하도록 만들 수 있다.
12.3 이뮤터블 인프라스트럭처와 코드를 기반한 인프라스트럭처
- 인프라 환경의 구성 정보를 코드 형태로 정의한 후, 시스템 구축을 자동화하여 언제든 인프라 환경을 재구성할 수 있게 만들어야 한다. 이를 Infrastructure as Code 라 부름
- AWS 경우, 웹 애플리케이션의 실행 환경 구축부터 디플로이까지 PaaS 형태로 만든
Elastic Beanstalk
존재
- EBS 는 가상화 레이어를 은폐하여 PaaS 형태로 서비스되는데, 사용자가 실행 환경을 선택하고 디플로이할 애플리케이션 모듈을 지정하기만 하면 자동으로 용량에 대한 프로비저닝, 부하 분산, 오토스케일링 및 모니터링까지 관리 가능
- 결국 EBS 를 이용하면 사용자는 IaaS 레이어를 의식하지 않아도 되고, 설정으로 인프라 환경을 구축 관리할 수 있다.
12.4 Blue Green Deployment
- 해당 용어는 이뮤터블 인프라스트럭처라는 용어가 사용되기 이전부터 사용됨 (마틴 파울러)
- 새로 준비한 환경에서 충분한 테스트를 거친 다음, 이상이 없다고 판단될 때야 비로소 기존 환경을 파괴할 수 있는데, 새로 교체한 환경에서 문제가 확인되었다면 기존 환경으로 대체 가능
12.5 이뮤터블 인프라스트럭처와 애플리케이션 아키텍처