Application Networking Foundations Net204

Title

AWS re:Invent 2022 - Application networking foundations (NET204)

Summary

  • Presenters: Tom and Jamie, both principal solution architects at AWS.
  • Focus: Definition of application networking, its building blocks, and guidance on service selection for specific use cases.
  • Key Topics:
    • Application networking involves intelligent routing decisions at the transport and application layers.
    • Service discovery and service connectivity are the two main categories of application networking services.
    • AWS services covered include Route 53, Cloud Map, Network Load Balancer (NLB), Global Accelerator, Application Load Balancer (ALB), API Gateway, CloudFront, App Mesh, and the newly introduced Amazon VPC Lattice.
    • The session also touched on compute options like EC2, containers, Kubernetes, ECS, and Lambda.
    • Example architectures were provided to illustrate how these services can be integrated.
    • The session did not cover traditional networking foundations like VPC, Transit Gateway, and Peering.

Insights

  • Service Discovery:

    • DNS and AWS Route 53 are used for traditional service discovery.
    • AWS CloudMap offers advanced service discovery with custom attributes and API-based discovery, which is faster and more flexible than DNS.
    • CloudMap integrates with Kubernetes for cross-cluster service discovery.
  • Service Connectivity:

    • Proxies play a crucial role in service connectivity by adding functionality like TLS termination, health checking, and load balancing.
    • AWS offers various services that act as proxies/load balancers, including NLB, ALB, API Gateway, and CloudFront.
    • AWS Global Accelerator provides a global load balancing solution using Anycast IP addresses and AWS's global network.
  • Application Load Balancers (ALB):

    • ALBs are suitable for HTTP/HTTPS applications and offer advanced routing capabilities based on HTTP headers, paths, and query strings.
    • ALBs can target EC2 instances, IP addresses, Lambda functions, and containers.
  • API Gateway:

    • API Gateway is used for organizing and managing APIs, offering features like request validation, mutual TLS, and integration with various AWS services.
    • It can be used in conjunction with ALBs for more complex API management scenarios.
  • CloudFront:

    • CloudFront is a content delivery network (CDN) that optimizes web application delivery by caching content at edge locations and using AWS's global network for dynamic content.
  • Service Mesh (App Mesh):

    • App Mesh is a service mesh that manages microservices communication, offering features like traffic shaping, blue-green deployments, and observability.
    • App Mesh requires management of the control plane and proxies within containers.
  • Amazon VPC Lattice:

    • VPC Lattice simplifies microservices communication by managing both the control plane and data plane, eliminating the need for developers to set up networking infrastructure like Transit Gateways or VPC peering.
    • It supports services running on different compute platforms, including Lambda, and uses IAM for authentication.
  • Global Accelerator vs. CloudFront:

    • Global Accelerator is used for any TCP/UDP application and provides Anycast IP addresses, while CloudFront is focused on HTTP/HTTPS applications with caching and other web optimization features.
    • Global Accelerator is better for load balancing to AWS destinations, while CloudFront is suitable for delivering content from any origin, including on-premises.
  • Example Architectures:

    • Jamie demonstrated how to evolve an architecture from a monolithic application to a modern microservices-based application using AWS services.
    • The use of App Mesh and VPC Lattice was shown to simplify service-to-service communication and reduce the complexity of networking configurations.
    • Global reach and high availability were addressed using CloudFront and Global Accelerator, showcasing how AWS services can provide resilience and performance improvements for applications with a global user base.