[AWS and AppDynamics APM]
[Monitoring Cloud Applications]
On this page:
This page details steps you must take regardless of which AWS services you want to use.
From here, you can proceed to pages that explain
Any cloud application architecture embodies tradeoffs between convenience and flexibility, resiliency and simplicity, and so on. It's risky to make architectural decisions without thoroughly understanding those tradeoffs. For example, you might inadvertently create a situation where the application needs to scale up or down but cannot.
To avoiding such potentially costly problems, complete the process below, which is designed to promote well-informed architectural choices.
The sample application provides three services:
Identify which of these services your application must provide, and any additional services.
In AppDynamics terms, each of these services is one tier of your application.
For the cloud, your application needs to run one more service besides those you have identified thus far:
The service supporting the AppDynamics Controller is not considered a tier.
Decide How your Application Needs to Scale, and Whether to Use Docker
Something about Gabriella's requirements for scaling and why Docker is better for her purposes
Do we prefer EC2 Host or Instance? anyway, state that they're equivalent somewhere
You have many options etc etc
If you are unfamiliar with the strengths and limitations of the many alternatives for orchestration and data storage on AWS, AppDynamics recommends that you review the following:
Something about why ECS is better than Elastic Beanstalk for this app, but Elastic Beanstalk is a good choice when etc etc
This section explains principles for architecting the sample application according to best practices for the cloud. If you have your own application, adapt these principles to produce your version of the architecture diagram at the end of this section.
Note: Because the sample application uses ECS, this section describes an ECS-based architecture. If you are using an orchestration tool other than ECS, skip to the Elastic Beanstalk, Fargate, or Kubernetes versions of this section.
So far we've established that in the sample application,
Now we must decide how to distribute the Docker containers for each service across EC2 hosts. There are two possibilities:
Amazon recommends the second approach as a best practice. ECS scales applications much more efficiently with homogeneous EC2 hosts than with heterogeneous ones.
We'll start with the following allocation of Docker containers to EC2 hosts based on anticipated load on the system.
<insert table>
If a homogeneous EC2 host starts with one Docker container, ECS can spawn additional Docker within that host when etc etc (is this true?).
Therefore, the architecture for the sample application, following AWS best practice, looks like this:
<insert graphic>
What to say about multiple ECS clusters?
If you don't have an account ...
If you have your own application, skip or modify the steps in this section as appropriate.
Download the sample code from link TBD to your local system.
Download agents separately?
Docker Compose file creates etc etc
Preventing a "node explosion" is a concern that is unique to cloud applications etc etc
Download?
Sample application uses:
The Machine agent pulls metrics for
etc etc
Log into the AWS console ...
The control panels for the AWS services you will use are
details TBD
Create one EC2 host for each service that your application provides, and one more for the AppDynamics Controller.
details TBD
details TBD
Docker Compose file creates etc etc
JSON file creates etc etc
Visit the following control panels and verify that metrics appear etc etc
Here's more about what you can monitor etc etc
If your preferred orchestration tool is not described by one of the sections below, we recommend adapting articles TBD
Decide on an Architecture (Kubernetes version)
steps TBD
skip back to section TBD
steps TBD
skip back to section TBD
steps TBD
skip back to section TBD
If your preferred orchestration tool is not described by one of the sections below, we recommend adapting articles TBD
Decide on an Architecture (Kubernetes version)
steps TBD
skip back to section TBD
If your preferred AppDynamics agents are not described by one of the sections below, we recommend adapting articles TBD
PHP Agent
steps TBD
skip back to section TBD