AWS Well-Architected design considerations - Scalable Analytics Using Apache Druid on AWS

AWS Well-Architected design considerations

This solution uses the best practices from the AWS Well-Architected Framework, which helps customers design and operate reliable, secure, efficient, and cost-effective workloads in the cloud.

This section describes how the design principles and best practices of the Well-Architected Framework benefit this solution.

Operational excellence

This section describes how we architected this solution using the principles and best practices of the operational excellence pillar.

  • Logs and metrics from all Druid components are gathered and stored in CloudWatch.

  • A comprehensive CloudWatch dashboard is provided to monitor the operational status of underlying services.

  • Alarms are set up within CloudWatch to provide timely notifications for issues or anomalies.

  • Server access logging is enabled to provide detail records for the requests that are made to an Amazon S3 bucket.

  • Amazon Virtual Private Cloud (Amazon VPC) flow logs are enabled to monitor IP traffic both incoming and outgoing through network interfaces in your VPC Security.

Security

This section describes how we architected this solution using the principles and best practices of the security pillar.

  • Multiple authentication schemas are supported including basic authentication, OIDC authentication, and LDAP authentication.

  • All inter service communications use AWS Identity and Access Management (IAM) roles. Communications between EC2 instances hosting the Druid process and Aurora Postgres uses basic authentication and does not use IAM.

  • All IAM roles used by the solution follow the least privilege access principle. They only contain the minimum permissions required so that the service can function properly.

  • AWS WAF is associated with AWS ALB to protect the Druid cluster from common application-layer exploits. AWS WAF is only provisioned and associated with the Application Load Balancer (ALB) when it is configured to be internet-facing and in the public mode.

  • All data stored in Amazon Aurora, AWS Backup, and Amazon S3 buckets have encryption at REST with customer managed keys.

  • All communication between Apache Druid and AWS service endpoints is covered by TLS.

  • TLS connectivity is implemented within the Druid cluster, as well as from the Druid cluster to the rest of the supported AWS services.

  • VPC endpoints are introduced to privately connect to supported AWS services.

Reliability

This section describes how we architected this solution using the principles and best practices of the reliability pillar.

  • Amazon EC2 Auto Scaling is used to distribute instances across Availability Zones, and replace the failed instances automatically.

  • The database-first migration strategy allows for cluster restoration using existing backups of the metadata store and deep storage.

  • The solution stores data in Amazon S3 so it persists in multiple Availability Zones by default.

  • AWS Backup is used to regularly backup the metadata store at defined intervals.

Performance efficiency

This section describes how we architected this solution using the principles and best practices of the performance efficiency pillar.

  • The solution supports AWS Fargate for serverless compute and Aurora PostgreSQL Serverless.

  • You can deploy the solution in any AWS Region that supports the required AWS services.

  • The solution provides versatile Automatic scaling policies, including CPU utilization, request per second, and scheduled scaling.

  • Developed using AWS CDK and managed through AWS CloudFormation stacks, it follows a complete Infrastructure-as-Code (IAC) approach, simplifying upgrades and resource management.

  • The solution maximizes the utilization of AWS Managed Services. For more details, refer to the AWS services used in this solution section.

Cost optimization

This section describes how we architected this solution using the principles and best practices of the cost optimization pillar.

  • The solution offers support for various EC2 instance types, including Graviton-based EC2 instances.

  • It supports a full serverless architecture by leveraging AWS Fargate and Aurora PostgreSQL Serverless.

Sustainability

This section describes how we architected this solution using the principles and best practices of the sustainability pillar.

  • Support for Graviton-based EC2 instances aids in minimizing your carbon footprint and aligning with sustainability objectives.

  • Amazon EC2 Auto Scaling is used to scale your workloads dynamically. The predicative auto scaling is used to proactively scale as you anticipate predicted and planned changes in demand.