Architecture with Lambda, AI, S3, DAX, DynamoDB

0

Hello,

Please confirm the below network architecture for an application that uses AWS Services: Lambda, Comprehend, Translate, S3, DAX, DynamoDB

Lambda, AI, S3, DAX

Thank you,
Mihai ADAM

asked a month ago287 views
3 Answers
1

Looking at the architecture diagram and considering general best practices for AWS cloud architecture, here are some suggestions to consider, if you have not already considered them:

  • The diagram only shows one subnet which is not ideal for production environments.
  • Deploy resources across multiple Availability Zones for high availability.
  • Implement proper security groups for your Lambda functions and other services to control inbound and outbound traffic.
  • Place Lambda functions within private subnets if no internet access is required to reduce exposure.
  • Secure S3 buckets with stringent bucket policies and encryption at rest using KMS.
  • Use AWS CloudWatch Logs for centralized logging and AWS CloudTrail for API call logging. Set up alarms and notifications for anomalous activities.
  • Consider using Amazon CloudFront for caching content closer to the end-users if there's heavy read access to S3.
  • Evaluate if DAX is necessary or if DynamoDB Accelerated Transacting Read Units (ATRU) meet your performance needs. Ensure that your DynamoDB tables are configured for auto-scaling to manage capacity.
  • If using DAX, ensure that the DAX cluster is set up for high availability across multiple nodes.
  • Consider using an Amazon SQS queue or an SNS topic to decouple Lambda functions from producing services. This can buffer and manage load effectively.
  • If Lambda functions are exposed as HTTP endpoints, use Amazon API Gateway with proper authorizers for secure access.
  • Use AWS CloudFormation or Terraform to manage your infrastructure as code, making your environment reproducible and version-controlled.
  • Enable VPC Flow Logs to monitor and capture IP traffic going to and from network interfaces in your VPC.
profile picture
EXPERT
answered a month ago
0

Hello,

It looks like you want to have an ENI in your subnet attached with some AWS Resources using the Backbone network. I may have some improvement tips for you.

The first thing I would change is that you have a Gateway Endpoint to connect to S3. However, why don't you do that with Interface Endpoints? The Interface Endpoints will be more managed, so you do not have to configure the route tables. This is also a good feature if you have any connection inside your VPC, like a Client VPN, and you can access resources over the Interface Endpoint. If you had a Gateway Endpoint, you would not be able to get this functionality.

In addition, I would add some Endpoint Policies to this architecture to make sure that the resources only get access to the API calls that they actually need.

Third, I am not quite sure if you mean to have multiple ENIs for the Endpoint Interface spread across AZs. But best practice is to make sure (if you want to pay more) that your workloads are Highly Available. This also means spreading your ENIs over multiple AZs.

profile picture
Julian
answered a month ago
0

The pictures has got issues.

S3 and Dynamo are regional services, which are not bound to a customer VPC, rather managed by AWS in an AWS owned VPC.

If your lambda is in a customer owned VPC (yours) then yes, you need gateway endpoints for dynamo and s3.

profile picture
EXPERT
answered a month ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions