I have a pretty simple idea for how I want this website to work, in short:

  1. Upload posts and images to an Inbound S3 bucket.
  2. This kicks off Jekyll, running in Lambda, which writes out the website to an Outbound bucket.
  3. Front the Outbound Bucket with CloudFront.

I want to have a full CI / CD pipeline, where I can:

  1. Preview posts that are tagged as ‘draft’ (these posts won’t go to the live Outbound Bucket).
  2. Preview and validate template and CSS changes.
  3. Preview and validate new versions of Jekyll or plugins.

I saw that AWS CodeStar is designed help with “creating, managing, and working with software development projects on AWS,” so I thought I would give it a shot. I dove into Setting Up AWS CodeStar:

  1. Made an IAM Role ‘aws-codestar-service-role’ with one clock from CodeStar Console.
  2. Switched to the IAM Console so I could attach the ‘AWSCodeStarFullAccess’ policy to my IAM User.
  3. Back to the CodeStar console to click “Create Project.”
  4. I did not choose a template, none of them matched what I want.
  5. Named it Jekyll Engine
  6. Asking for an Amazon Developer Account? I linked to my root account. I hope this is right?
  7. Asking for an Amazon Vendor Account? Where do I set that up?
  8. Went to developer.amazon.com, logged in with my root account credentials, finished setting up profile, including setting up a company name.
  9. Restarted the Codestar Project setup, now I see my vendor account.
  10. At the confirmation screen, I see that I did select a template: “Hello World” Alexa / node.js. That Alexa bit would explain why it wanted a developer account and vendor ID.
  11. Backed out to the template selection screen to see if anything fit. The “Static Website” tempalte wants to host on EC2 instances — not S3 buckets — so this isn’t going to work.

I would have liked to have tried CodeStar, but I don’t want to use a template if I’m going to have to unwind the majority of the work it does for me. Instead, I’ll start building out a CloudFormation template, from scratch. More on that later.