Introduction - Overview of Deployment Options on AWS

Introduction

Designing a deployment solution for your application is a critical part of building a well-architected application on AWS. Based on the nature of your application and the underlying services (compute, storage, database, etc.) that it requires, you can use AWS services to create a flexible deployment solution that can be tailored to fit the needs of both your application and your organization.

The constantly growing catalog of AWS services not only complicates the process of deciding which services will compose your application architecture, but also the process of deciding how you will create, manage, and update your application. When designing a deployment solution on AWS, you should consider how your solution will address the following capabilities:

  • Provision: create the raw infrastructure (Amazon EC2, Amazon Virtual Private Cloud [Amazon VPC], subnets, etc.) or managed service infrastructure (Amazon Simple Storage Service (Amazon S3), Amazon Relational Database Service [Amazon RDS], Amazon CloudFront, etc.) required for your application.

  • Configure: customize your infrastructure based on environment, runtime, security, availability, performance, network or other application requirements.

  • Deploy: install or update your application component(s) onto infrastructure resources, and manage the transition from a previous application version to a new application version.

  • Scale: proactively or reactively adjust the amount of resources available to your application based on a set of user-defined criteria.

  • Monitor: provide visibility into the resources that are launched as part of your application architecture. Track resources usage, deployment success/failure, application health, application logs, configuration drift, and more.

This whitepaper highlights the deployment services offered by AWS and outlines strategies for designing a successful deployment architecture for any type of application.