What is our primary use case?
I am working on a project where we are using Amazon infrastructure service with Lambda. We are using multiple services on Amazon. I'm working in a company where we are using AWS CloudTrail. We are using Amazon EC2 instances as infrastructure service, and we are using S3 bucket, Lambda function, step function. We have moved to DynamoDB and I'm using DynamoDB and a few databases.
What is most valuable?
For monitoring, we use Dynatrace. Dynatrace is connected with AWS CloudTrail, so AWS CloudTrail sends the notifications via SNS to Dynatrace. We get notifications, and Dynatrace will send notifications.
AWS CloudTrail is a log function that will store all logs easily for whatever services we are using on Amazon. All logs will be stored in AWS CloudTrail for 15 years, as we have the service purchased for that duration. The logs will be stored in AWS CloudTrail via S3 bucket.
In AWS CloudTrail, we have enabled CPU, disk, and RAM monitoring. These are three services we are monitoring from AWS CloudTrail. AWS CloudTrail will monitor and produce graphs. We have separate L1 teams for monitoring; they will monitor and share the information. Also, Dynatrace will receive the information, and if any service goes beyond the threshold limit, AWS CloudTrail will create an alert.
CloudTrail and CloudWatch are sister services. Both should be preconfigured internally. We only watch the dashboards because we can't go and watch each service; there are multiple servers running and multiple services configured, so we watch only the dashboard graphs. If any graph goes beyond the normal limit, we take action.
We watch the graph. If any of the graphs show abnormal activity, then immediately we dig into AWS CloudWatch and AWS CloudTrail. We check the reason by verifying the logs. The graph will show you the time period, so we go into AWS CloudWatch, filter the logs for that particular time period, and from there, we identify the cause of the issue, and then we troubleshoot.
API is a main element that allows us to connect AWS CloudWatch to AWS CloudTrail and AWS CloudTrail to Dynatrace. That connection is done via API. By API, everything is integrated. The integration part is managed by the API, transferring information from one service to another. We are not working on the API; the configuration team, the cloud operations team, they take care of it.
What needs improvement?
I'm satisfied function-wise with AWS CloudTrail; only the integration with third-party solutions is a point for improvement.
For how long have I used the solution?
We are actively using the solution.
What do I think about the stability of the solution?
I rate the stability of AWS CloudTrail as an eight.
How was the initial setup?
AWS CloudTrail setup is simple. While creating EC2 instances, some of the AWS CloudWatch and AWS CloudTrail settings are preconfigured. Most things are preconfigured. That's what I appreciate about AWS CloudTrail because when creating EC2 instances, logs are generated. By creating EC2 instances, you can enable AWS CloudTrail with a tick mark, which makes most of the configurations automatic. That part is very user-friendly.
Which other solutions did I evaluate?
Compared to other products, I believe AWS CloudTrail is the best for AWS. If we consider AWS CloudTrail, we are sticking only with AWS. For Azure, they work solely on Azure; thus, we can't compare AWS CloudTrail with others. Azure is generally considered the first choice in comparison, and GCP has its own platforms.
What other advice do I have?
I am a system admin and site reliability engineer. We work closely with the DBA team. While patching, we have to patch the server where the DB servers are. We patch DB servers also, and we are in touch with the DBA. We see the cluster; the DBA is always in a cluster. They will do instance by instance, they will remove the server from the cluster and allow us to patch. Then they add the server back and they monitor it.
We maintain high availability; if any resource goes down, immediately a ticket is raised, and we troubleshoot the issue. I'm not a DBA specialist. The DBA works on the DB. My work is to monitor the DB servers continuously. I'm not going to write any queries for monitoring purposes. As a technical architect, my work is to maintain the server running continuously. We write some scripts for management.
After three months, data is moved from S3 bucket to Glacier, according to our created policy. All logs stored in an S3 bucket, that information is triggered via Lambda. It is integrated with Lambda function. If any issue goes beyond, Lambda gets triggered. We have configured Lambda; it triggers and sends an SNS notification to us. Even if we are not watching the dashboard, we will get notifications via SMS and email services. SMS and simple mail services are already configured.
Dynatrace is a full stack service that supports EC2. It supports infrastructure services as well as all services we can connect with Dynatrace. We have Kubernetes, Docker, and EC2 instances, and all heterogeneous services are connected by Dynatrace. Dynatrace not only logs but operates on service levels and host levels. We just need to install OneAgent software. Once OneAgent is configured, Dynatrace takes complete control of the information.
AWS CloudTrail is a log, so we are not watching AWS CloudTrail directly. The AWS CloudTrail APIs are integrated with Dynatrace. From the Dynatrace dashboard, we monitor for any issue going beyond the limit; first, we watch the Dynatrace logs. In turn, Dynatrace is connected with AWS CloudTrail. If we click the logs inside Dynatrace, it directly links to AWS CloudTrail.
Dynatrace is a third-party tool that gives support not only to AWS but also to all multi-cloud services. It is a heterogeneous tool that supports all services whereas AWS CloudTrail is limited to AWS. AWS CloudTrail only supports AWS, and Azure has its functions, GCP has their own. Dynatrace offers more flexible dashboards and services, making it more adaptable compared to AWS CloudTrail. AWS CloudTrail is mostly CLI based, with a little bit of UI interaction, but Dynatrace is more flexible.
AWS CloudTrail features a totally cloud-based deployment. I rate AWS CloudTrail a nine out of ten.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)