<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aws on Sander Knape</title>
    <link>https://sanderknape.com/tags/aws/</link>
    <description>Recent content in Aws on Sander Knape</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sat, 09 Nov 2024 12:43:02 +0200</lastBuildDate>
    <atom:link href="https://sanderknape.com/tags/aws/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Terraform &#39;data source will be read during apply&#39; messages - What is it and how to fix</title>
      <link>https://sanderknape.com/2024/11/terraform-data-source-read-during-apply-messages-fix/</link>
      <pubDate>Sat, 09 Nov 2024 12:43:02 +0200</pubDate>
      <guid>https://sanderknape.com/2024/11/terraform-data-source-read-during-apply-messages-fix/</guid>
      <description>&lt;p&gt;Terraform users will likely be familiar with &amp;ldquo;data source will be read during apply&amp;rdquo; messages that may appear in the plan output. These messages can be confusing and may even lead to unexpected re-creation of resources. Typically, these messages are related to using data sources in combination with Terraform modules and explicit dependencies.&lt;/p&gt;&#xA;&lt;p&gt;Data sources and modules are two powerful and essential concepts. Data sources allow you to fetch information from existing resources and pass that data to other resources. Modules promote reusability and hiding complexity by encapsulating collections of resources into sharable, versioned packages. Explicit dependencies are also valid to use in various situations. But combining these concepts can lead to confusion and unexpected behavior.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shift left AWS tag enforcement with Terraform and tfsec</title>
      <link>https://sanderknape.com/2021/05/shift-left-aws-tag-enforcement-terraform-tfsec/</link>
      <pubDate>Mon, 03 May 2021 21:03:01 +0200</pubDate>
      <guid>https://sanderknape.com/2021/05/shift-left-aws-tag-enforcement-terraform-tfsec/</guid>
      <description>&lt;p&gt;There are many ways to improve the developer experience of deploying infrastructure into the Cloud. One such method is by shifting left: provide early feedback to shorten the feedback loop and speed up development.&lt;/p&gt;&#xA;&lt;p&gt;When deploying infrastructure into AWS with an infrastructure as code tool such as Terraform, you can validate that code as part of a CI/CD pipeline. A pull request can automatically receive feedback about the configuration of resources, thus enforcing the environment to stay compliant with the organization&amp;rsquo;s policies.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Serverless Payment Workflow using AWS Lambda and the AWS CDK</title>
      <link>https://sanderknape.com/2020/12/serverless-payment-workflow-lambda-cdk/</link>
      <pubDate>Tue, 15 Dec 2020 17:38:12 +0200</pubDate>
      <guid>https://sanderknape.com/2020/12/serverless-payment-workflow-lambda-cdk/</guid>
      <description>&lt;p&gt;Serverless technology is getting more popular by the day. More and more people are starting to experiment with it and learn for which use cases it can add value. In this blog post I share an example of what a fully Serverless workflow can achieve.&lt;/p&gt;&#xA;&lt;p&gt;For a while now I&amp;rsquo;ve been curious how one would implement a payment workflow on a website. I was aware that platforms like &lt;a href=&#34;https://stripe.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Stripe&lt;/a&gt;, &lt;a href=&#34;https://www.adyen.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Adyen&lt;/a&gt; and &lt;a href=&#34;https://www.mollie.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Mollie&lt;/a&gt; exist, but I never knew how much work would be required to set up a fully functioning workflow. I therefore decided to give it a try using nothing but Serverless technology.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Amazon Cognito JWTs to authenticate with an Amazon HTTP API</title>
      <link>https://sanderknape.com/2020/08/amazon-cognito-jwts-authenticate-amazon-http-api/</link>
      <pubDate>Sun, 02 Aug 2020 16:29:33 +0200</pubDate>
      <guid>https://sanderknape.com/2020/08/amazon-cognito-jwts-authenticate-amazon-http-api/</guid>
      <description>&lt;p&gt;Last year AWS released a new iteration of their API Gateway product: &lt;a href=&#34;https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;HTTP APIs&lt;/a&gt;. This new version promises lower prices, improved performance and some new features. Some features that are available in the older REST API are not (yet) available for HTTP APIs, though. The official &lt;a href=&#34;https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-vs-rest.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;comparison page&lt;/a&gt; gives a good overview of which features are available in both products.&lt;/p&gt;&#xA;&lt;p&gt;My favorite new feature available for HTTPs APIs is &lt;a href=&#34;https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;JWT Authorizers&lt;/a&gt;. It is now possible to have the HTTP API validate a JWT coming from an OIDC or OAuth 2.0 provider. While this was already possible using a Lambda Authorizer, now this can be achieved in a fully managed way with only a minimum amount of work required. It&amp;rsquo;s even easier now to build secure APIs with proper authentication.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a static serverless website using S3 and CloudFront</title>
      <link>https://sanderknape.com/2020/02/building-a-static-serverless-website-using-s3-cloudfront/</link>
      <pubDate>Wed, 12 Feb 2020 19:25:02 +0200</pubDate>
      <guid>https://sanderknape.com/2020/02/building-a-static-serverless-website-using-s3-cloudfront/</guid>
      <description>&lt;p&gt;Hosting static websites is great. As they only contain static assets to be downloaded by the visitor&amp;rsquo;s browser - think HTML, CSS, Javascript, Fonts, images - no server-side code such as Java or PHP needs to be run. They&amp;rsquo;re therefore typically faster to load than dynamic websites, they have a smaller attack surface, and are easier to cache for even better performance.&lt;/p&gt;&#xA;&lt;p&gt;That is why some time ago I moved this blog from a Wordpress installation hosted on EC2 to a static website. As I was already in AWS, and I knew that S3 + CloudFront was a popular choice for hosting static websites, I decided to host my blog in S3 with CloudFront in front of it as the CDN.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Roundup of the most important pre-re:Invent 2019 releases - so far</title>
      <link>https://sanderknape.com/2019/11/most-important-pre-reinvent-releases/</link>
      <pubDate>Mon, 25 Nov 2019 11:04:24 +0200</pubDate>
      <guid>https://sanderknape.com/2019/11/most-important-pre-reinvent-releases/</guid>
      <description>&lt;p&gt;The most exciting time of the year for AWS Enthusiasts is upon us. In exactly seven days, AWS re:Invent 2019 will kick off and everyone is excited to see what great features will be released and announced this time around.&lt;/p&gt;&#xA;&lt;p&gt;This year especially though, many new features are already released the weeks leading up to re:Invent. If you haven&amp;rsquo;t been paying attention, it was easy to much some great new announcements. Therefore, in this blog post, a roundup of the (in my opinion) most important AWS releases in the past few weeks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Five ways to enable developer autonomy in AWS</title>
      <link>https://sanderknape.com/2019/07/five-ways-enable-developer-autonomy-aws/</link>
      <pubDate>Tue, 23 Jul 2019 12:00:00 +0200</pubDate>
      <guid>https://sanderknape.com/2019/07/five-ways-enable-developer-autonomy-aws/</guid>
      <description>&lt;p&gt;It hasn&amp;rsquo;t been that long since it was normal to request compute capacity at some operations department within your organization. In fact, it&amp;rsquo;s probably still pretty common in some organizations. With the move to virtualization and especially the cloud, this process of course has changed dramatically for the good. Not only compute capacity for applications, but also resources such as databases, queues, load balancers and storage are now available virtually unlimited.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building serverless applications with the AWS CDK - and testing them locally</title>
      <link>https://sanderknape.com/2019/05/building-serverless-applications-aws-cdk/</link>
      <pubDate>Fri, 31 May 2019 16:35:02 +0200</pubDate>
      <guid>https://sanderknape.com/2019/05/building-serverless-applications-aws-cdk/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://github.com/awslabs/aws-cdk&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;AWS Cloud Development Kit&lt;/a&gt; (AWS CDK) is a new framework for defining Infrastructure as Code (IaC) by AWS. It allows you to write IaC in a set of different languages. At the moment the following languages are supported: Javascript, Typescript, Python, Java, .NET. Support for other languages is coming.&lt;/p&gt;&#xA;&lt;p&gt;Of course, other methods like CloudFormation and Terraform already exist to write IaC. Using these tools you write declarative code in YAML, JSON or the Hashicorp Configuration Language (HCL) in a mostly declarative state. These tools will also support some basic operators such as if-statements and for-loops. Especially HCL has many of these capabilities with the latest &lt;a href=&#34;https://www.hashicorp.com/blog/announcing-terraform-0-12&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;0.12.0 release&lt;/a&gt;. However, it will always be different from using a &amp;ldquo;real&amp;rdquo; programming language. And it requires you to use a new tool, instead of using a language you already know.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blocking account-wide creation of public S3 buckets through a CloudFormation custom resource</title>
      <link>https://sanderknape.com/2018/11/blocking-account-wide-creation-public-s3-buckets-cloudformation-custom-resource/</link>
      <pubDate>Fri, 16 Nov 2018 17:25:02 +0200</pubDate>
      <guid>https://sanderknape.com/2018/11/blocking-account-wide-creation-public-s3-buckets-cloudformation-custom-resource/</guid>
      <description>&lt;p&gt;Yesterday, AWS announced the release of an important and much-wanted new feature for S3: &lt;a href=&#34;https://aws.amazon.com/blogs/aws/amazon-s3-block-public-access-another-layer-of-protection-for-your-accounts-and-buckets/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;blocking the creation of public S3 buckets on an account-wide&lt;/a&gt;. Enough has been written already about open S3 buckets on the internet. Given that it is very simple to create a public S3 bucket, we regularly learn about new (big) companies that have exposed privacy-sensitive data to the world through such buckets.&lt;/p&gt;&#xA;&lt;p&gt;The confusion is mainly around opening up your bucket to &amp;ldquo;everyone&amp;rdquo;. Where people expect this to mean &amp;ldquo;everyone in the AWS account&amp;rdquo;, it actually means &amp;ldquo;&lt;em&gt;everyone in the world&lt;/em&gt;&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to easily test your AWS IAM credentials locally</title>
      <link>https://sanderknape.com/2018/09/easily-test-aws-iam-credentials-locally/</link>
      <pubDate>Sun, 02 Sep 2018 18:30:02 +0200</pubDate>
      <guid>https://sanderknape.com/2018/09/easily-test-aws-iam-credentials-locally/</guid>
      <description>&lt;p&gt;It is still very common to develop an application locally on a laptop/desktop before pushing it to a production-like environment. The local development environment is kept as close as possible to production using technology such as Docker or AWS SAM when working with AWS Lambda. However, when working with AWS resources through Identity and Access Management (IAM) policies, local IAM permissions are typically different from the permissions the application will have in AWS. This inconsistency can cause issues later in the development workflow: an application that fully worked locally can run into errors when ran in AWS if the IAM permission there are different.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Two years with CloudFormation: lessons learned</title>
      <link>https://sanderknape.com/2018/08/two-years-with-cloudformation-lessons-learned/</link>
      <pubDate>Thu, 09 Aug 2018 12:43:02 +0200</pubDate>
      <guid>https://sanderknape.com/2018/08/two-years-with-cloudformation-lessons-learned/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been close to two years since I started working with &lt;a href=&#34;https://aws.amazon.com/cloudformation&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;AWS CloudFormation&lt;/a&gt;, the Infrastructure as Code solution by and for AWS. With CloudFormation you can describe and provision your entire AWS infrastructure in code.&lt;/p&gt;&#xA;&lt;p&gt;The entire AWS environment I work with is provisioned through CloudFormation - we only have read-only access to our AWS accounts. We now work with a number of different VPCs and many different AWS services. We currently have close to 300 stacks provisioned, describing the foundational networking and over a hundred different applications. All these stacks are deployed in three different accounts (testing, acceptance and production), with CloudFormation giving us the confidence that all these accounts are almost exactly the same (with minor exceptions such as that we run less resources in testing and acceptance to reduce costs).&lt;/p&gt;</description>
    </item>
    <item>
      <title>The hidden challenges of Serverless: from VM to function</title>
      <link>https://sanderknape.com/2018/08/hidden-challenges-serverless-vm-function/</link>
      <pubDate>Thu, 02 Aug 2018 12:29:02 +0200</pubDate>
      <guid>https://sanderknape.com/2018/08/hidden-challenges-serverless-vm-function/</guid>
      <description>&lt;p&gt;Serverless is a relatively new term. It&amp;rsquo;s a software development paradigm where the entire concept of a &amp;ldquo;server&amp;rdquo; is abstracted away from the development process. You essentially only use managed services that handle scaling, and you pay only for what you use. You no longer need to think about operating systems, security patches, scaling configuration and more. All this is handled for you behind the scenes. The most well-known example is AWS Lambda, though as we will see in this blog post, serverless is much more than that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to manage any kind of secret with AWS Secrets Manager</title>
      <link>https://sanderknape.com/2018/07/manage-custom-secrets-aws-secrets-manager/</link>
      <pubDate>Sat, 07 Jul 2018 20:04:02 +0200</pubDate>
      <guid>https://sanderknape.com/2018/07/manage-custom-secrets-aws-secrets-manager/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://aws.amazon.com/secrets-manager/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;AWS Secrets Manager&lt;/a&gt; is a service recently released designed to make the management of secrets easier. It provides built-in support for Amazon RDS, making it very easy to set and rotate secrets and use the CLI or an SDK to retrieve secrets from applications. Through the use of custom Lambda functions, essentially any database or an otherwise protected endpoint is supported.&lt;/p&gt;&#xA;&lt;p&gt;Setting up Secrets Manager for a non-RDS database is less trivial as you need to write your own functionality using AWS Lambda. In this blog post we&amp;rsquo;ll go through the process of creating a Lambda function for rotating a MongoDB user. First, let&amp;rsquo;s dive in a bit more into what Secrets Manager can do for us.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Secret management design decisions: theory plus an example</title>
      <link>https://sanderknape.com/2018/03/secret-management-design-decisions-theory-plus-an-example/</link>
      <pubDate>Thu, 08 Mar 2018 22:29:02 +0200</pubDate>
      <guid>https://sanderknape.com/2018/03/secret-management-design-decisions-theory-plus-an-example/</guid>
      <description>&lt;p&gt;Secret management is one of those security topics that is often an after-thought while designing systems. Passwords are set up manually, shared through non-secure methods such as e-mail or Slack, and password rotation is often neglected because it&amp;rsquo;s time-consuming and error-prone.&lt;/p&gt;&#xA;&lt;p&gt;This is a shame because with some effort, secret management can definitely be automated. If done properly, less manual work is required to build and maintain applications, and of course security is increased reducing risk.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Comparing AWS SAM with the Serverless framework</title>
      <link>https://sanderknape.com/2018/02/comparing-aws-sam-with-serverless-framework/</link>
      <pubDate>Thu, 22 Feb 2018 20:39:02 +0200</pubDate>
      <guid>https://sanderknape.com/2018/02/comparing-aws-sam-with-serverless-framework/</guid>
      <description>&lt;p&gt;Serverless applications are everywhere these days. Having been introduced some years ago with the introduction of AWS Lambda, today serverless is much more then Function as a Service (FaaS). AWS is even starting to use the term in their products: at AWS re:Invent 2017 &amp;ldquo;Aurora Serverless&amp;rdquo; was introduced, a fully managed RDMS database.&lt;/p&gt;&#xA;&lt;p&gt;How do you build such applications? Given that you properly like the Infrastructure as Code mindset as much as I do, the question is how to properly specify serverless applications provisioned in AWS in code. Two main options are out there: the Serverless Framework and AWS SAM. Both frameworks allow you to make it easier to build serverless applications.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating a serverless API using AWS API Gateway and DynamoDB</title>
      <link>https://sanderknape.com/2017/10/creating-a-serverless-api-using-aws-api-gateway-and-dynamodb/</link>
      <pubDate>Sat, 14 Oct 2017 14:54:02 +0200</pubDate>
      <guid>https://sanderknape.com/2017/10/creating-a-serverless-api-using-aws-api-gateway-and-dynamodb/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://aws.amazon.com/api-gateway/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;AWS API Gateway&lt;/a&gt; is a managed service from Amazon Web Services that allows you to easily create an API endpoint. An incoming request can either be forwarded to an HTTP endpoint, can invoke a Lambda function, or connect to an AWS service. Arguably, the Lambda integration is most commonly used as it allows you to invoke a piece of code without managing a server or operating system (thus, combined with API Gateway, creating a serverless api). A common use case is to store and retrieve data to/from a database.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A custom CloudFormation resource example for CodeDeploy</title>
      <link>https://sanderknape.com/2017/08/custom-cloudformation-resource-example-codedeploy/</link>
      <pubDate>Thu, 17 Aug 2017 21:25:02 +0200</pubDate>
      <guid>https://sanderknape.com/2017/08/custom-cloudformation-resource-example-codedeploy/</guid>
      <description>&lt;p&gt;CloudFormation is the AWS product for Infrastructure as Code. It allows you to provision AWS resources through a template that describes how to configure that resource. Unfortunately, CloudFormation will sometimes be behind on new features released by AWS. Where the AWS console and API will allow you to deploy resources with a certain configuration, in CloudFormation specific settings might simply not yet be available. If its your goal to deploy your AWS environment completely through Infrastructure as Code, this will block you from doing that. Luckily, through &lt;a href=&#34;http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;custom resources&lt;/a&gt;, CloudFormation allows you to extend the templating language and still give you the option to provision resources entirely through CloudFormation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using pre-signed URLs to upload a file to a private S3 bucket</title>
      <link>https://sanderknape.com/2017/08/using-pre-signed-urls-upload-file-private-s3-bucket/</link>
      <pubDate>Tue, 08 Aug 2017 18:12:02 +0200</pubDate>
      <guid>https://sanderknape.com/2017/08/using-pre-signed-urls-upload-file-private-s3-bucket/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve written about serverless architectures before (&lt;a href=&#34;https://sanderknape.com/2017/05/building-a-serverless-website-in-aws/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;a serverless website in S3&lt;/a&gt; and &lt;a href=&#34;https://sanderknape.com/2017/02/dynamic-image-generation-with-aws-api-gateway-and-lambda/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;dynamic image generation with Lambda&lt;/a&gt;). I strongly believe in this notion as it minimizes required maintenance and makes the initial setup much easier. Of course, there is no silver bullet for every problem but use cases definitely exist where a serverless architecture makes a lot of sense.&lt;/p&gt;&#xA;&lt;p&gt;One such use case for serverless is a small piece of functionality that you just need to run. &lt;em&gt;Somewhere&lt;/em&gt;. You want to care as little as possible about this &lt;em&gt;somewhere&lt;/em&gt; because the functionality is so small that pretty much any work you put into the &lt;em&gt;somewhere&lt;/em&gt; is more than the time you spend on the actual functionality.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CloudFormation StackSets: automated cross-account/region deployments</title>
      <link>https://sanderknape.com/2017/07/cloudformation-stacksets-automated-cross-account-region-deployments/</link>
      <pubDate>Wed, 26 Jul 2017 19:53:02 +0200</pubDate>
      <guid>https://sanderknape.com/2017/07/cloudformation-stacksets-automated-cross-account-region-deployments/</guid>
      <description>&lt;p&gt;Yesterday, AWS released &lt;a href=&#34;https://aws.amazon.com/blogs/aws/use-cloudformation-stacksets-to-provision-resources-across-multiple-aws-accounts-and-regions/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;CloudFormation StackSets&lt;/a&gt;. A StackSet is a set of CloudFormation stacks that can easily be deployed to multiple AWS accounts and/or multiple AWS regions. Before, each stack had to be deployed separately and custom scripts were required to orchestrate deploying to multiple accounts/regions. Therefore, this feature is bound to make the lives of AWS administrators a bit easier.&lt;/p&gt;&#xA;&lt;p&gt;There are loads of use cases for deploying stacks to multiple locations. For example, it&amp;rsquo;s considered a best practice to &lt;a href=&#34;https://www.slideshare.net/AmazonWebServices/aws-security-best-practices&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;enable AWS Config in every region&lt;/a&gt;. This service keeps track of resources in an AWS account and changes to those resources. AWS Config needs to be enabled in every region separately, so a CloudFormation stack is required for every region.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a serverless website in AWS</title>
      <link>https://sanderknape.com/2017/05/building-a-serverless-website-in-aws/</link>
      <pubDate>Mon, 01 May 2017 19:25:02 +0200</pubDate>
      <guid>https://sanderknape.com/2017/05/building-a-serverless-website-in-aws/</guid>
      <description>&lt;p&gt;Maintaining a web server for your website is not ideal. It&amp;rsquo;s tedious, takes a lot of time if done properly and distracts from what you really want to do: sell a product, share information, e.t.c. The more time and money you spend on the platform, the less is available to spend on the website and your core business. Unless you&amp;rsquo;re a hosting company of course, but then this blog post isn&amp;rsquo;t really for you.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Use Infrastructure as Code for automated security in the deployment pipeline</title>
      <link>https://sanderknape.com/2017/05/infrastructure-as-code-automated-security-deployment-pipeline/</link>
      <pubDate>Mon, 01 May 2017 19:25:02 +0200</pubDate>
      <guid>https://sanderknape.com/2017/05/infrastructure-as-code-automated-security-deployment-pipeline/</guid>
      <description>&lt;p&gt;Infrastructure as Code (IaC) is a very powerful concept. The idea is that you put all infrastructure resources - networks, subnets, load balancers, firewalls and so on - in code. You then deploy your infrastructure the same way application developers deploy their code: through a continuous integration / continuous deployment (CI/CD) pipeline. Other benefits already reaped by application developers that become available are code linting, automated testing and an audit trail of your changes if combined with a version control system. The most well known IaC tools are &lt;a href=&#34;https://www.terraform.io/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Terraform&lt;/a&gt; (supports many different services) and &lt;a href=&#34;https://aws.amazon.com/cloudformation&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;CloudFormation&lt;/a&gt; (specifically for the AWS cloud).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dynamic image generation with AWS API Gateway and Lambda</title>
      <link>https://sanderknape.com/2017/02/dynamic-image-generation-with-aws-api-gateway-and-lambda/</link>
      <pubDate>Tue, 21 Feb 2017 20:49:02 +0200</pubDate>
      <guid>https://sanderknape.com/2017/02/dynamic-image-generation-with-aws-api-gateway-and-lambda/</guid>
      <description>&lt;p&gt;The combination of API Gateway and Lambda is very powerful. It allows you to build some complex functionalities without maintaining any virtual machines yourself. Lambda can be hooked up to many other (AWS) Services including DynamoDB, Kinesis and S3. This paradigm, better known as &lt;em&gt;serverless&lt;/em&gt;, is truly upcoming for years now and its certainly time to jump on the bandwagon if you haven&amp;rsquo;t done so already.&lt;/p&gt;&#xA;&lt;p&gt;One of the better-known use cases of AWS Lambda is the &lt;a href=&#34;http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;generation of thumbnail images&lt;/a&gt; as images are inserted into S3. In this blog post we will go one step further and generate images based on the URL and return the image as a binary through API Gateway. The number of possibilities this unlocks are pretty much countless, including the generation of charts, bar codes, dynamic icons and much more.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting started with AWS Cognito</title>
      <link>https://sanderknape.com/2017/02/getting-started-with-aws-cognito/</link>
      <pubDate>Sat, 04 Feb 2017 23:32:02 +0200</pubDate>
      <guid>https://sanderknape.com/2017/02/getting-started-with-aws-cognito/</guid>
      <description>&lt;p&gt;Did you ever write your own authentication service? In essence it&amp;rsquo;s quite trivial: allow a user to enter a username and a password. Next, look in a database for a row/document that matches the received data. If found, login. If not, be gone. It becomes harder when you start thinking more about proper security. And what about features such as password resets, login throttling or logins with Google/Facebook? Surely a managed service must exist that can make all this much easier for us.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
