<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ben Fellows</title>
    <description>The latest articles on DEV Community by Ben Fellows (@awsexpert).</description>
    <link>https://dev.to/awsexpert</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F326837%2Fc6e245a2-7659-42a8-95c7-a638a3ae5a41.png</url>
      <title>DEV Community: Ben Fellows</title>
      <link>https://dev.to/awsexpert</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/awsexpert"/>
    <language>en</language>
    <item>
      <title>Simplifying CloudFormation Deployment</title>
      <dc:creator>Ben Fellows</dc:creator>
      <pubDate>Mon, 09 May 2022 01:26:32 +0000</pubDate>
      <link>https://dev.to/aws-builders/simplifying-cloudformation-deployment-2b9e</link>
      <guid>https://dev.to/aws-builders/simplifying-cloudformation-deployment-2b9e</guid>
      <description>&lt;p&gt;CloudFormation (CFN) is a great templating framework or DSL that you can use to define infrastructure in either YAML or JSON.&lt;/p&gt;

&lt;p&gt;Over the years I've watched it develop from something that was relatively difficult to implement to now being widely accepted and easier, but still with some caveats. When I started doing enterprise cloud migrations (~2012) to AWS I was using tools like Ansible to solve the problem of automating IAM, EC2s, RDS and VPC. In addition to this we didn't have several of the tools we have now available for migrating to AWS. &lt;/p&gt;

&lt;p&gt;I started using CFN templates to create IAM policies, EC2 templates and Roles and also VPCs. Some of the challenges back then was around the JSON formatting and injecting parameter's values into deployment. This is why I used tools like Ansible and the AWS CLI to wrap around CFN templates. This would give me control around what AMIs I could use for an EC2 for example or what AccountID I could use in a parameter for a Cross Account IAM Role.&lt;/p&gt;

&lt;p&gt;** Conditionals&lt;/p&gt;

&lt;p&gt;Another issue I found was that when launching a CFN template you are always going to have the issue of conditionals based on Parameter values. For example for an EC2 template if you launch it in a public subnet you might want to have a Public IP, but if you launch it in a private subnet you will only want a private IP.&lt;/p&gt;

&lt;p&gt;** User data&lt;/p&gt;

&lt;p&gt;User data in EC2 launches can be another problem that is not solved by templates alone. For example you can provide user data to run a command or run a script on initial launch.&lt;/p&gt;

&lt;p&gt;Overall the biggest challenge for people who are new to using CloudFormation is learning the syntax and types of resources you need and the parameters available. The documentation provides this, but it can be challenging reading through lines and lines of documentation.&lt;/p&gt;

&lt;p&gt;One of the ideas I had was being able to help people learn about AWS CloudFormation and supporting them in being able to create their own templates.&lt;/p&gt;

&lt;p&gt;You can try &lt;a href="https://app.teemops.com/"&gt;https://app.teemops.com/&lt;/a&gt; to get an idea of what I'm talking about - it allows you to use a basic UI to generate a template and launch it in your own AWS account, saving you hours of frustration learning. The source code is all available on &lt;a href="https://github.com/teemops/tui"&gt;https://github.com/teemops/tui&lt;/a&gt; if you want to run locally and play with.&lt;/p&gt;

&lt;p&gt;At the moment I only support EC2 and Autoscaling groups, but the idea is to support as many AWS resources as possible. Give it a try and I look forward to feedback.&lt;/p&gt;

</description>
      <category>awscommmunity</category>
    </item>
    <item>
      <title>Introduction to backups in AWS</title>
      <dc:creator>Ben Fellows</dc:creator>
      <pubDate>Mon, 11 Apr 2022 22:22:13 +0000</pubDate>
      <link>https://dev.to/aws-builders/introduction-to-backups-in-aws-5ffe</link>
      <guid>https://dev.to/aws-builders/introduction-to-backups-in-aws-5ffe</guid>
      <description>&lt;p&gt;Yesterday I did a live discussion on introduction to backups in AWS. Video link is available at the end of this article.&lt;/p&gt;

&lt;p&gt;In this video I explained how you can plan your backups and what tools you can use in AWS to configure backups.&lt;/p&gt;

&lt;p&gt;I'm going to summarise the main points here for everyone if you can't be bothered watching the recording of the Livestream.&lt;/p&gt;

&lt;h2&gt;
  
  
  Planning
&lt;/h2&gt;

&lt;p&gt;First you can start with a company wide SLA for the acceptable downtime for any given application or database and the acceptable time until recovery as well as point in time. &lt;/p&gt;

&lt;p&gt;These are the areas you need to plan for an enterprise cloud backup solution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Normal required hours of service (e.g. 7am-7pm)&lt;/li&gt;
&lt;li&gt;Acceptable uptime as a percentage (e.g. 95%, 99%, 99.99%)&lt;/li&gt;
&lt;li&gt;Recovery Point Objective (or RPO) as the point in time you want to recover to.&lt;/li&gt;
&lt;li&gt;Recovery Time Objective (or RTO) as the maximum time until you recover.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you have these negotiated and agreed upon with your business you can design a scalable solution.&lt;/p&gt;

&lt;p&gt;Because each enterprise and business unit may have different objectives I found it more simple to provide 2 categories of application:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mission Critical&lt;/li&gt;
&lt;li&gt;Normal Business Hours&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mission Critical applications are your website, phone systems, email, production databases etc.&lt;br&gt;
Normal Business Hours applications might be HRIS, Payroll, Finance.&lt;/p&gt;

&lt;p&gt;Again this depends on the type of organisation you are and if you are in several different time zones most of your applications might be mission critical.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schedule Planning
&lt;/h3&gt;

&lt;p&gt;You need to understand what needs to happen when you have different types of data to backup. For example you might have EC2 servers with files stored on EBS volumes, SQL Server Enterprise on EC2 and EBS volumes. And you may have an open source app or website running on an RDS Instance.&lt;/p&gt;

&lt;p&gt;You can have a schedule for each task that is going to be performed. This will depend on the solution you have in place. You want to co-ordinate timing of backups with each other and what the impact is going to be on running systems.&lt;/p&gt;

&lt;p&gt;This spreadsheet will give you a good sample schedule for backups and restore process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/awsexp-backupspreadsheet"&gt;https://bit.ly/awsexp-backupspreadsheet&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools
&lt;/h2&gt;

&lt;p&gt;Let’s look at the combination of an Amazon DLM solution and a SQL Server S3 based solution.&lt;/p&gt;

&lt;p&gt;Amazon DLM is for EBS volumes and AMIs, Whereas the database solution is for backing up to S3 and having a lifecycle that sits within S3.&lt;/p&gt;

&lt;p&gt;Amazon DLM automates the creation of snapshots and manages the retention based on policies you set. For example you can setup a policy that snapshots all your EBS volumes for your website and set a schedule that runs daily. In addition to this you can have multiple schedules per policy so you could have a policy that has daily, weekly and monthly snapshots.&lt;/p&gt;

&lt;p&gt;DLM can automatically copy tags of existing EBS volumes and also create additional tags. I have provided a link to an AWS CloudFormation template you can use for a simple daily backup policy at the end of this article.&lt;/p&gt;

&lt;p&gt;For a custom solution you can use S3 as a target location for files you might want to backup into S3. A common use case is backing up SQL Server Backup files to S3. S3 can be configured with Life Cycle rules for deletion or archiving of files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auditing
&lt;/h2&gt;

&lt;p&gt;One of the things I didn’t cover in the video was auditing. It is essential that you audit your backups are running. This can be done via some simple code that checks for S3 objects by date and also check for EBS snapshots. &lt;/p&gt;

&lt;p&gt;For example, I use some Python code that handles the auditing of backups and ensures the correct files exist. This can be run as a continuous task daily, weekly or monthly. I would recommend running this as often as possible. In addition to this, AWS Lambda can be used with a scheduled Event. (More on that in another post).&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Plan your backups, streamline your process and audit your backups. Test your restore process regularly to make sure your backup works as intended.&lt;/p&gt;

&lt;p&gt;Video: &lt;a href="https://www.twitch.tv/videos/1452480056"&gt;https://www.twitch.tv/videos/1452480056&lt;/a&gt;&lt;br&gt;
Cloudformation for DLM Policy: &lt;a href="https://bit.ly/teemdlmcfn"&gt;https://bit.ly/teemdlmcfn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Free resources for AWS</title>
      <dc:creator>Ben Fellows</dc:creator>
      <pubDate>Mon, 05 Apr 2021 01:35:41 +0000</pubDate>
      <link>https://dev.to/awsexpert/free-resources-for-aws-1bag</link>
      <guid>https://dev.to/awsexpert/free-resources-for-aws-1bag</guid>
      <description>&lt;p&gt;Over the last 10 years of work I've created a lot of code, cloudformation templates and documents/diagrams that have helped customers on AWS.&lt;/p&gt;

&lt;p&gt;Now I'm slowly open sourcing these to help anyone else become an AWS expert. &lt;/p&gt;

&lt;p&gt;Would love your feedback and any requests for any given CloudFormation, Script, AWS CLI commands or any other thing related to AWS.&lt;/p&gt;

&lt;p&gt;Thanks for taking a look, the 2 documentation and cloudformation repos are available at: &lt;a href="https://github.com/awsexp"&gt;https://github.com/awsexp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'll be dropping more files over the next few weeks so either star the repo or follow me here on &lt;a class="mentioned-user" href="https://dev.to/awsexpert"&gt;@awsexpert&lt;/a&gt; &lt;br&gt;
Thanks! &lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloudformation</category>
      <category>cloud</category>
      <category>cloudskills</category>
    </item>
  </channel>
</rss>
