The AWS European Sovereign Cloud is maybe the most interesting developments of the current cloud computing era; having AWS create a dedicated branch for european workloads is the next big move. But, how do you run a static website without using US vendors at all?
The past days have been full of content about serverless workloads with AWS AppSync, Amazon Cognito, and AWS Fargate. This guide wraps up all scenarios and is your starting point if you want to build modern serverless applications with AWS using the Cloud Development Kit (CDK).
The Amazon Cognito User Pool with Managed Login is a great baseline to start a new project. This guide adds an AWS AppSync GraphQL Data API to the project and shows you how to use the Amazon Cognito Access Token to authenticate against the GraphQL API using the Apollo Client in React.
The Cursor AI Code Editor is my default editor these days for writing code. As with other code companions, Cursor offers a chat-like interface to interact with your codebase and their AI services. More important, Cursor supports project-specific customizations; using a file in your project root.
Amazon Fargate is great for running containers without having to manage the underlying infrastructure. Using AWS Code Pipeline, you can update your running Fargate service whenever you push a new container version to the Amazon Container Registry.
Based on running a serverless container with Fargate, we want to add automated DNS failover handling with Route 53. Whenever the health check for the Fargate service on Amazon ECS fails, the DNS records point to a static website on Amazon S3; served with CloudFront.
With AWS, there are many ways to get something done; finding the perfect solution is one of the challenges. A simple task, like deploying a container, can be done in many ways; this guide will show you how to deploy an application in a Docker container using AWS Fargate and AWS Cloud Development Kit.
The AWS Key Management System can manage FIPS 140-2 Level 3 compliant private keys for Extended Validation (EV) Code Signing Certificates. Using AWS KMS and AWS Fargate for Amazon ECS, you can build a serverless Code Signing Service for Microsoft Windows binary files.
I am a huge fan of Computer Interfaces; especially non-textual ones. Spoken words can be a powerful interface to digital services; Amazon Web Services has various services and products available that work with audio. To identify language in spoken words and extract textual information, you can use Amazon Transcribe and analyse audio files.
AWS Step Functions can easily be used to wrap existing AWS services and persist specific use cases. For example, AWS Step Functions can call the Amazon Bedrock API to generate text responses using the AI21 Labs Jurassic-2 models. You can create a Step Function using the AWS Management Console, or the AWS Cloud Development Kit.
The previous post described how to create an Amazon EventBridgeEvent Bus with Amazon CloudWatch Log forwarding using the AWS CDK. Publishing events works fine with the AWS Management Console or the AWS CLI, but you can also use Service Integrations for Amazon API Gateway; this works for HTTP and Rest API Gateways.
Amazon EventBridge is a powerful service to build event-driven applications at scale across AWS. To get started with EventBridge, you just need to create an Event Bus; for example, using the AWS Cloud Development Kit. Next, forwarding all events to an Amazon CloudWatch Log group enables basic insights into all processed events.
After using Amazon Bedrock Generative AI with the AWS CLI and AWS JavaScript SDK, this guide will explain how to create an Amazon API Gateway and use the AWS Cloud Development Kit and AWS Lambda to invoke Amazon Bedrock.
After using Amazon Bedrock Generative AI with the AWS CLI, you may also want to use the AWS JavaScript SDK to invoke an available Amazon Bedrock Model.
With AWS re:Invent 2023 just around the corner, the frequency of AWS press releases increases. Generative AI is a hot topic everywhere, tools like Midjourney and ChatGPT lower the bar for non-technical people, and I wonder how and when AWS will introduce a more solution-like Genrative AI service.
When using the AWS Software Development Kit, pagination in API responses is a common and sometimes annoying to deal with. Thanks to a shared interfaced in @aws-sdk clients, can you can establish a common pattern to interact with AWS paginated API actions using the JavaScript SDK v3. Retrieving all AWS Accounts in your AWS Organization is a neat example use case for this.
To maintain a common foundation of resources across a complex AWS Organization, CloudFormation StackSet is the perfect companion. Usually, you want to deploy a common baseline of AWS resources and additionally specificy custom deployments; like setting custom contact information for billing, operations, or security communications.
At re:Invent 2021, AWS Amplify announced AWS Amplify Studio, a visual development portal to build and operate web applications. Together with Figma, you can easily manage UI components and generate React components without any development tasks.
AWS has everything you need for secure and reliable data storage. With Amazon S3, you can easily build a low-cost and high-available solution. Together with the available features for regional replication, you can easily have automatic cross-region backups for all data in S3.
For managing a multi-account AWS environment, Control Tower is a great tool. But, using the Account Factory to create new AWS accounts is always annoying. With AWS Systems Manager Automations, you can build a custom interface to create AWS accounts.
When coming from a serverless perspective, setting up an Application Load Balancer with VPC sounds like much to do for just invoking an AWS Lambda function. Thanks to the AWS CDK, it’s not that complex.
Managing and securing multiple AWS accounts gets complex. superwerker is a free and open-source solution to automate the setup and management of your multi-account AWS environments. Based on our experiences at superluminar, we teamed up with kreuzwerker from Berlin to bundle prescriptive best practices from multiple years of cloud consulting and created superwerker.
During Re:invent 2020, AWS announced an official AWS IoT Edukit hardware device. The M5Stack Core2 is an ESP32 development kit loaded with a display, touchscreen, motion sensor and microphone. Everything is powered either using USB or the built-in battery. The device supports FreeRTOS and is validated through AWS Device Qualification Program.
To decouple services on AWS, it’s a common pattern to use Amazon SQS and Amazon SNS. With AWS Key Management Service, you can encrypt the messages stored in the SNS topic and SQS queue. For the AWS Cloud Development Kit using TypeScript, you can easily create an architecture for secure message processing.
With AWS CloudFormation StackSets you can deploy a CloudFormation template to multiple AWS Accounts or AWS Regions. You can use the AWS Management Console, the AWS CLI, or CloudFormation to use StackSets. Before using StackSets, you need to configure specific IAM roles to be used with CloudFormation StackSets.
Most people only use Amazon API Gateway as an HTTP interface to invoke AWS Lambda functions. But, the service has way more to offer. For example, you can easily create an HTTP interface for nearly any AWS Service; not only AWS Lambda. Based on the previous post, on how to create a State Machine with AWS Step Functions and AWS Cloud Development Kit, this post describes how to create an HTTP interface to start an execution of a State Machine using the AWS CDK.
Most people know Amazon API Gateway from using it to build HTTP interfaces for AWS Lambda functions. But, in general, you can use API Gateway to call a variety AWS APIs using HTTPS. This post shows how to create an HTTPS interface for Amazon SQS using the AWS Cloud Development Kit.
With AWS Step Functions, you can easily orchestrate serverless functions and sequence them with other AWS services to a bundle application. You can create AWS Step Functions with CloudFormation, the AWS Cloud Development Kit, or - of course - using the visual interface available in the AWS Management Console. This post shows how to orchestrate AWS Lambda functions to a simple State Machine using AWS Step Functions.
The AWS Cloud Development Kit supports building docker images for AWS Lambda. With the most recent version, the CDK builds your docker images if needed and can push the image directly to AWS Elastic Container Registry. Personally, I think this is a great feature. With supporting docker images, AWS Lambda has immutable deployment artifacts!
The more complex your application and architecture becomes, the more complex your deployment process usually gets. Most people and engineering teams only think about pipelines as a fix path of actions, that need to happen in a specific order. That’s true, no questions about that. But your process for Continuous Integration and Continuous Delivery does not need to be a monolith!
Automated releases and deployments wil speed up your development prozess. After setting up Semantic Releases, a tagged software version can be deployed with GitHub Actions. For projects using Amazon Elastic Container Registry, you might want to build and tag a docker image for every GitHub release.
When you orchestrate an architecture von AWS, you’ll often end up with the need to read information like hostnames, identifiers, resource names or ARNs from somewhere for further processing. CloudFormation Stacks can have configured Outputs and Parameters, but using the AWS Parameter Store proved to be a more flexible solution. Using the AWS Cloud Development Kit in TypeScript, you can easily read data from AWS Parameter Store.
When you orchestrate an architecture von AWS, you’ll often end up with the need to store information like hostnames, identifiers, resource names or ARNs somewhere for further processing. CloudFormation Stacks can have configured Outputs, but using the AWS Parameter Store proved to be a more flexible solution. Using the AWS Cloud Development Kit in TypeScript, you can easily store data like an S3 Bucket domain name in AWS Parameter Store.
React is great for creating websites and writing applications using JavaScript. But, whenever the use of React is rejected, one of the most common reasons is the lack of a simple implementation for server-side rendering (SSR). When you search on Google for this topic, you’ll find various approaches and most of the time, people will tell you it’s complicated. But Why?
AWS Lambda functions are great. Using the AWS Cloud Development Kit in TypeScript, you can easily deploy files to AWS Lambda functions and configure an AWS Lambda Layer in the same CloudFormation Stack. After the deployment is done, the AWS Lambda function name to invoke the uploaded sources will be exposed as a CloudFormation Stack Output.
You can easily deploy static files stored in a folder to an Amazon S3 Bucket. If you configure your S3 Bucket for static website hosting, you can access all files via HTTPS from any browser or tool. Using the AWS Cloud Development Kit in TypeScript, your CloudFormation Stack can look like this. After the deployment is done, the domain name to access the uploaded content will be exposed as a CloudFormation Stack Output.
There are plenty of tools and services for continuous delivery available. Most of them are either directly built into the source code management tools you already use, or perfectly integrate with them. You might be familiar with CircleCI, Travis CI, GitLab CI, or GitHub Actions.
I was able to attend the AWS re:Invent 2019 conference. A week full of learning about current and new technologies, services, and general approaches is definitely overwhelming. There is no much content available, during the conference, and as videos and slide decks afterwards. I tried to list my favourite talks. There are way too much of them.
You can find plenty of frameworks and tools to provision your AWS resources. Some of them do a great job for a specific purpose, others are more generic. Nevertheless, I do prefer to use native CloudFormation templates as much as possible.
The more projects you work on, the more streamlined your tooling gets. Hopefully. Various services using different languages have different tooling requirements, of course. A sweet Makefile can be the entry to a unified tooling interface.
With AWS AppSync, it’s easy to run your own serverless GraphQL service API. Thanks to Velocity Mapping Templates, DynamoDB, and AWS Lambda your can aim for an architecture without any maintenance at all.
Let me be honest with you: GraphQL is the shit! Once you use GraphQL, you will never want to use anything else again. The same is true for a working and maintainable serverless FaaS infrastructure. Combine both technologies to run a genuinely serverless GraphQL API using AWS AppSync and Lambda resolvers.
Amazon recently announced CloudFormation support for AppSync and all its features. Together with the Serverless Application Model it’s now dead simple to deploy a GraphQL API and custom Lambda resolvers without using the API at all. The GraphQL RSS Proxy example project is a serverless GraphQL API using AppSync, with an AWS Lambda function as a custom Query Resolver writting in Go.
Do you use GitHub to manage your software projects and Slack for communication? With GitHub Webhooks and a simple AWS Lambda function, you can notify Slack channels about new releases of your projects.
The MaxMind GeoLite2 database is basically the standard solution when you need to get the geo information for an IP address. Together with the mmdb-reader NPM package you can easily deploy your own serverless API to AWS Lambda to lookup locations for IP addresses.
AWS Lambda functions together with an Amazon Kinesis Stream offer a great way to process continuous information. I created an example project called Serverless Analytics to demonstrate this. You can use this as the starting point to create your very own Google Analytics clone and run it serverless and hopefully maintenance-free on Amazon.
Since a few days, Amazon provides a native way to enable Auto Scaling for DynamoDB tables! Luckily the settings can be configured using CloudFormation templates, and so I wrote a plugin for serverless to easily configure Auto Scaling without having to write the whole CloudFormation configuration.
When you use a serverless environment for your service (and you should!), chances are high you might be using the Serverless framework and may end up in a situation like me with the need to process the AWS CloudFormation Stack Output after deploying the service.
Have you ever wondered how to process messages from SQS without maintaining infrastructure? Amazon Web Services perfectly support SNS as a trigger for AWS Lambda functions, but with SQS you have to find a custom solution. This tutorial will show an experimental setup using Serverless to read messages from an SQS queue and build auto-scaling worker processes.
If you read my first article about Amazon Alexa and AWS Lambda, you already know how to deploy a custom Alexa skill using Apex. With this article, you will learn how to use the Serverless framework to deploy a function to AWS Lambda and invoke it with your Amazon Echo using voice commands.
After watching all Mr. Robot episodes, I somehow felt the need to buy an Amazon Echo and get introduced to Alexa. Luckily Amazon sent me an invite to buy Echo just a couple of days before Christmas and so I got the perfect gift for myself and an awesome reason to spend some time coding during the Christmas holidays.
It’s not a secret you can easily host any static website on Amazon S3 without cryptic configuration. When you add CloudFront for HTTPS delivery and the Amazon Certificate Manager for free SSL certificates you will get a neat setup.