Choosing The Best AWS Service For Your Website + API - Brandon Minnick - NDC Oslo 2024

Learn how to choose the right AWS service for your website and API needs, comparing options like S3, Lambda, Amplify, and AppRunner for optimal performance and cost.

Key takeaways
  • AWS S3 is ideal for static websites, offering effectively free hosting for up to 10,000 monthly active users with limitations on request rates (3,500 PUT/POST/DELETE and 5,500 GET requests per second)

  • AWS Lambda is the original serverless offering with cold start times around 300ms for .NET applications. While cheaper than traditional hosting, cold starts need consideration for latency-sensitive applications

  • AWS Amplify provides an all-in-one solution that can grow with your application, supporting both static and dynamic websites plus authentication via Cognito

  • AWS AppRunner simplifies deployment by watching Git repositories and automatically building/deploying on commits, handling container orchestration behind the scenes

  • Cost considerations vary significantly between services:

    • LightSail offers fixed monthly costs (~$5) without auto-scaling
    • Serverless options like Lambda only charge for actual usage
    • Traditional VM services like EC2 charge for reserved capacity
  • Scaling approaches differ between services:

    • Horizontal scaling: Creates additional instances
    • Vertical scaling: Increases resources of existing instances
    • Serverless: Automatic scaling managed by AWS
  • For container-based applications:

    • ECS (Elastic Container Service) for simpler container deployments
    • EKS (Elastic Kubernetes Service) for Kubernetes orchestration
    • Fargate for serverless container execution
  • When choosing a service, consider:

    • Content type (static vs dynamic)
    • Required scaling capabilities
    • Operating system requirements
    • Container support needs
    • Storage requirements
    • Cost predictability vs flexibility
  • EC2 provides maximum control but requires managing OS updates and security patches, while managed services handle this automatically

  • Most services support both Windows and Linux, with SDKs available for major programming languages to simplify integration