{"id":72,"date":"2020-01-01T15:04:09","date_gmt":"2020-01-01T15:04:09","guid":{"rendered":"http:\/\/blog.adonlon.org\/?p=72"},"modified":"2020-01-01T15:04:43","modified_gmt":"2020-01-01T15:04:43","slug":"devops-tooling","status":"publish","type":"post","link":"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/","title":{"rendered":"Devops Tooling"},"content":{"rendered":"\n<p>I&#8217;ve been putting together this WordPress site as a DevOps exercise. Now that it&#8217;s starting to take shape a little bit it&#8217;s probably worth taking note of some of the tools which I&#8217;ve used to help me.<br>We&#8217;ll start with the software that actually runs the site<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>WordPress running as a docker container on ECS-EC2<\/li><li>MySQL RDS instance<\/li><\/ul>\n\n\n\n<p>For provisioning, we&#8217;ve got<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Ansible<\/li><li>Packer<\/li><li>Terraform<\/li><\/ul>\n\n\n\n<p>Everything&#8217;s running on AWS, including a Route53 domain, an SSL certificate from Certificate Manager, MySQL in RDS, shared content stored in EFS. Individual instances are provisioned into an autoscaling group attached to an Application Load Balancer which takes care of SSL termination and sends access logs into S3. The application itself runs on as an ECS task backed by an EFS volume containing more static content.<\/p>\n\n\n\n<p>The whole thing is stored as code in AWS CodeCommit with CodeBuild used to implement pipelines automatically building and deploying the cloud infrastructure.<\/p>\n\n\n\n<p>For monitoring we have<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Cloudwatch<\/li><li>ELK<\/li><\/ul>\n\n\n\n<p>I run an ELK stack for monitoring \/ mining the ALB access logs in S3.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been putting together this WordPress site as a DevOps exercise. Now that it&#8217;s starting to take shape a little bit it&#8217;s probably worth taking note of some of the tools which I&#8217;ve used to help me.We&#8217;ll start with the software that actually runs the site WordPress running as a docker container on ECS-EC2 MySQL [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[3],"class_list":["post-72","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-aws"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Devops Tooling - Pragmatic Software Engineering<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Devops Tooling - Pragmatic Software Engineering\" \/>\n<meta property=\"og:description\" content=\"I&#8217;ve been putting together this WordPress site as a DevOps exercise. Now that it&#8217;s starting to take shape a little bit it&#8217;s probably worth taking note of some of the tools which I&#8217;ve used to help me.We&#8217;ll start with the software that actually runs the site WordPress running as a docker container on ECS-EC2 MySQL [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/\" \/>\n<meta property=\"og:site_name\" content=\"Pragmatic Software Engineering\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-01T15:04:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-01-01T15:04:43+00:00\" \/>\n<meta name=\"author\" content=\"alastair\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"alastair\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/\"},\"author\":{\"name\":\"alastair\",\"@id\":\"https:\/\/blog.adonlon.org\/#\/schema\/person\/4c5a1b2463425db9814bf8540f8954c1\"},\"headline\":\"Devops Tooling\",\"datePublished\":\"2020-01-01T15:04:09+00:00\",\"dateModified\":\"2020-01-01T15:04:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/\"},\"wordCount\":183,\"publisher\":{\"@id\":\"https:\/\/blog.adonlon.org\/#\/schema\/person\/4c5a1b2463425db9814bf8540f8954c1\"},\"keywords\":[\"aws\"],\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/\",\"url\":\"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/\",\"name\":\"Devops Tooling - Pragmatic Software Engineering\",\"isPartOf\":{\"@id\":\"https:\/\/blog.adonlon.org\/#website\"},\"datePublished\":\"2020-01-01T15:04:09+00:00\",\"dateModified\":\"2020-01-01T15:04:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.adonlon.org\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Devops Tooling\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.adonlon.org\/#website\",\"url\":\"https:\/\/blog.adonlon.org\/\",\"name\":\"Pragmatic Software Engineering\",\"description\":\"Random thoughts and insights on software engineering\",\"publisher\":{\"@id\":\"https:\/\/blog.adonlon.org\/#\/schema\/person\/4c5a1b2463425db9814bf8540f8954c1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.adonlon.org\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/blog.adonlon.org\/#\/schema\/person\/4c5a1b2463425db9814bf8540f8954c1\",\"name\":\"alastair\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/blog.adonlon.org\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cf9abf1220f449fccd0f6795d12b05cb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cf9abf1220f449fccd0f6795d12b05cb?s=96&d=mm&r=g\",\"caption\":\"alastair\"},\"logo\":{\"@id\":\"https:\/\/blog.adonlon.org\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Devops Tooling - Pragmatic Software Engineering","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/","og_locale":"en_GB","og_type":"article","og_title":"Devops Tooling - Pragmatic Software Engineering","og_description":"I&#8217;ve been putting together this WordPress site as a DevOps exercise. Now that it&#8217;s starting to take shape a little bit it&#8217;s probably worth taking note of some of the tools which I&#8217;ve used to help me.We&#8217;ll start with the software that actually runs the site WordPress running as a docker container on ECS-EC2 MySQL [&hellip;]","og_url":"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/","og_site_name":"Pragmatic Software Engineering","article_published_time":"2020-01-01T15:04:09+00:00","article_modified_time":"2020-01-01T15:04:43+00:00","author":"alastair","twitter_card":"summary_large_image","twitter_misc":{"Written by":"alastair","Estimated reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/#article","isPartOf":{"@id":"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/"},"author":{"name":"alastair","@id":"https:\/\/blog.adonlon.org\/#\/schema\/person\/4c5a1b2463425db9814bf8540f8954c1"},"headline":"Devops Tooling","datePublished":"2020-01-01T15:04:09+00:00","dateModified":"2020-01-01T15:04:43+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/"},"wordCount":183,"publisher":{"@id":"https:\/\/blog.adonlon.org\/#\/schema\/person\/4c5a1b2463425db9814bf8540f8954c1"},"keywords":["aws"],"articleSection":["Uncategorized"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/","url":"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/","name":"Devops Tooling - Pragmatic Software Engineering","isPartOf":{"@id":"https:\/\/blog.adonlon.org\/#website"},"datePublished":"2020-01-01T15:04:09+00:00","dateModified":"2020-01-01T15:04:43+00:00","breadcrumb":{"@id":"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.adonlon.org\/index.php\/2020\/01\/01\/devops-tooling\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.adonlon.org\/"},{"@type":"ListItem","position":2,"name":"Devops Tooling"}]},{"@type":"WebSite","@id":"https:\/\/blog.adonlon.org\/#website","url":"https:\/\/blog.adonlon.org\/","name":"Pragmatic Software Engineering","description":"Random thoughts and insights on software engineering","publisher":{"@id":"https:\/\/blog.adonlon.org\/#\/schema\/person\/4c5a1b2463425db9814bf8540f8954c1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.adonlon.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.adonlon.org\/#\/schema\/person\/4c5a1b2463425db9814bf8540f8954c1","name":"alastair","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/blog.adonlon.org\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cf9abf1220f449fccd0f6795d12b05cb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cf9abf1220f449fccd0f6795d12b05cb?s=96&d=mm&r=g","caption":"alastair"},"logo":{"@id":"https:\/\/blog.adonlon.org\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/blog.adonlon.org\/index.php\/wp-json\/wp\/v2\/posts\/72","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.adonlon.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.adonlon.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.adonlon.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.adonlon.org\/index.php\/wp-json\/wp\/v2\/comments?post=72"}],"version-history":[{"count":0,"href":"https:\/\/blog.adonlon.org\/index.php\/wp-json\/wp\/v2\/posts\/72\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.adonlon.org\/index.php\/wp-json\/wp\/v2\/media?parent=72"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.adonlon.org\/index.php\/wp-json\/wp\/v2\/categories?post=72"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.adonlon.org\/index.php\/wp-json\/wp\/v2\/tags?post=72"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}