{"id":1197,"date":"2021-05-27T05:33:06","date_gmt":"2021-05-27T04:33:06","guid":{"rendered":"https:\/\/www.easydeploy.io\/blog\/?p=1197"},"modified":"2023-08-31T09:04:18","modified_gmt":"2023-08-31T08:04:18","slug":"building-single-tenant-saas-platform-in-aws-fully-automated-part1","status":"publish","type":"post","link":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/","title":{"rendered":"Building Single Tenant SAAS application in AWS (Fully automated): Part1"},"content":{"rendered":"<h1>Introduction<\/h1>\n<p>We came upon a requirement from one of our client stating that when their customers registers with their application they should have automated the SAAS platform which should launch a EC2 instance to host their web application that should be under Elastic Load Balancer and their database should be in RDS and as well as each customer should be provided with a subdomain and automated code deployment. So, we decided to choose Multi Tenant SAAS architecture with instance isolation and implemented the same. You can contact us if you have any similar requirement with either docker or EC2 isolation.<\/p>\n<h1>Prerequisites<\/h1>\n<ul>\n<li aria-level=\"1\"><b>AWS account<\/b>.<\/li>\n<li aria-level=\"1\">In the AWS Account Create an <b>IAM Role<\/b> with <b>AWSCodeDeployRole<\/b><\/li>\n<li aria-level=\"1\">Client\u2019s <b>SAAS<\/b> <b>Domain Name<\/b> should be registered and their Corresponding <b>NS records<\/b> should be pointed to <b>Route53.<\/b><\/li>\n<li aria-level=\"1\"><b>Code base<\/b> should be either in any of the following version control tools such as AWS <b>CodeCommit<\/b>, <b>GitHub<\/b> or <b>BitBucket<\/b><\/li>\n<\/ul>\n<p><b>Wildcard SSL<\/b> Certificates for the main domain should be purchased\/imported on Amazon Certificate Manager (<b>ACM<\/b>).<\/p>\n<h1>The Architecture:<\/h1>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1198 size-full\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Multi-tenant-SAAS-application-on-AWS1-scaled.jpeg\" alt=\"\" width=\"2560\" height=\"1703\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Multi-tenant-SAAS-application-on-AWS1-scaled.jpeg 2560w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Multi-tenant-SAAS-application-on-AWS1-300x200.jpeg 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Multi-tenant-SAAS-application-on-AWS1-1024x681.jpeg 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Multi-tenant-SAAS-application-on-AWS1-768x511.jpeg 768w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Multi-tenant-SAAS-application-on-AWS1-1536x1022.jpeg 1536w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Multi-tenant-SAAS-application-on-AWS1-2048x1362.jpeg 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<h1>How we did it<\/h1>\n<h2>Launching EC2 instance<\/h2>\n<p>I have <b>launched an EC2 instance<\/b> with the configuration <b>T2 Micro<\/b>,<b>30GB HDD<\/b> and with base <b>OS Ubuntu 18.04<\/b>, The EC2 instance should be <b>installed with angular setup, codedeploy-agent<\/b> and EC2 instance should be assigned with <b>IAM Role with full Permissions<\/b> (not getting into too much on IAM role as it is not in scope of this blog).<\/p>\n<h2>Angular Installation<\/h2>\n<ul>\n<li aria-level=\"1\">For <b>Angular Installation<\/b> which we have done already in the instance and if you have any doubts regarding the installation kindly refer the below link<\/li>\n<\/ul>\n<table style=\"height: 74px;\" width=\"526\">\n<tbody>\n<tr>\n<td>\n<p style=\"text-align: center;\"># <a href=\"https:\/\/tecadmin.net\/install-angular-on-ubuntu\/\">How to Install Angular on Ubuntu 18.04 &amp; 16.04 &#8211; TecAdmin<\/a><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h3><b>Code-deploy-agent installation<\/b><\/h3>\n<ul>\n<li aria-level=\"1\">For <b>codedeploy-agent installation<\/b> SSH into the EC2 instance and run the below commands<\/li>\n<\/ul>\n<pre> sudo apt-get update\r\n\r\n sudo apt-get install ruby -y\r\n\r\n sudo apt-get install wget\r\n\r\n cd \/home\/ubuntu\r\n\r\n wget https:\/\/aws-codedeploy-us-east-1.s3.amazonaws.com\/latest\/install\r\n\r\n[Note: In the above URL replace us-east-1 with your region].\r\n\r\n chmod +x .\/install\r\n\r\n sudo .\/install auto\r\n\r\n sudo service codedeploy-agent start\r\n\r\n sudo service codedeploy-agent status\r\n<\/pre>\n<p>The <b>status of the Codedeploy-agent<\/b> should be up and running as shown in the below screenshot.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1199 size-full\" src=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Screenshot-2021-05-26-at-10.01.17-PM.png\" alt=\"\" width=\"1134\" height=\"294\" srcset=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Screenshot-2021-05-26-at-10.01.17-PM.png 1134w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Screenshot-2021-05-26-at-10.01.17-PM-300x78.png 300w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Screenshot-2021-05-26-at-10.01.17-PM-1024x265.png 1024w, https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Screenshot-2021-05-26-at-10.01.17-PM-768x199.png 768w\" sizes=\"(max-width: 1134px) 100vw, 1134px\" \/><\/p>\n<ul>\n<li aria-level=\"1\">My Client\u2019s <b>Code base<\/b> is in <b>AWS CodeCommit<\/b> which I have <b>cloned inside the EC2<\/b> instance which I have launched in the directory path <b>\/var\/www\/html<\/b><\/li>\n<li aria-level=\"1\">After cloning now Create a <b>directory <\/b>named <b>scripts<\/b> inside the directory <b>\/var\/www\/html<\/b> using the below command<\/li>\n<\/ul>\n<pre>mkdir -r \/var\/www\/html\/scripts\r\n<\/pre>\n<ul>\n<li>Create a bash script file named <b>before_install.sh<\/b>\u00a0 inside the directory <b>\/var\/www\/html\/scripts <\/b>with the following content which will remove the old modules packages and old build files.<\/li>\n<\/ul>\n<pre>#!\/bin\/bash\r\ncd \/var\/www\/html\r\nrm -rf nodemodules \r\nrm -rf dist\r\n<\/pre>\n<ul>\n<li>Create another bash script file name <b>after_install.sh<\/b> inside the directory <b>\/var\/www\/html\/scripts <\/b>with the following content.<\/li>\n<\/ul>\n<pre>#!\/bin\/bash\r\ncd \/var\/www\/html\r\nnpm install \r\nng  build --prod<\/pre>\n<ul>\n<li>Now we have created an <b>appspec.yml <\/b>inside the directory <b>\/var\/www\/html <\/b>with the following content as shown below and the purpose of this <b>appspec.ym<\/b>l is for pulling the changes in the repo to our running EC2 instance automatically whenever there is a change in the repo.<\/li>\n<\/ul>\n<pre>version: 0.0\r\nos: linux\r\nfiles:\r\n  - source: \/\r\n    destination: \/var\/www\/html\r\n    overwrite: true\r\npermissions:\r\n  - object: \/\r\n    pattern: \"**\"\r\n    owner: apache\r\n    group: apache\r\n    \r\n\r\nhooks:\r\n  BeforeInstall:\r\n     location: scripts\/before_install.sh\r\n      timeout: 300\r\n      \r\n  AfterInstall:\r\n    - location: scripts\/after_install.sh\r\n      timeout: 300\r\n<\/pre>\n<ul>\n<li aria-level=\"1\">Now you need to <b>commit<\/b> the <b>changes<\/b> in the directory <b>\/var\/www\/html <\/b>and push the changes to the <b>remote master repo<\/b><\/li>\n<li><b>Taken AMI<\/b> of the EC2 instance after installation of <b>Angular setup<\/b> and cloning the codebase from <b>AWS CodeCommit <\/b>creation of those <b>appspec.yml<\/b>,<b>before_install.sh<\/b> and <b>after_install.sh<\/b> files.<\/li>\n<\/ul>\n<p>Now, we have launched EC2 instance, installed angularjs on the instance that will be running the application. Setup codedeploy agent and configured it with angularjs build steps.<\/p>\n<p>That&#8217;s it for Part 1. Please click on <a href=\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-application-in-aws-fully-automated-part2\/\">Building Multi Tenant SAAS application in AWS (Fully automated): Part2<\/a> for next steps.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction We came upon a requirement from one of our client stating that when their customers registers with their application they should have automated the SAAS platform which should launch a EC2 instance to host their web application that should be under Elastic Load Balancer and their database should be in RDS and as well [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":1441,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2,128],"tags":[366,367,305,306,307,308,303,304,365,457],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Building Single Tenant SAAS application in AWS (Fully automated): Part1<\/title>\n<meta name=\"description\" content=\"Steps on how to build an automated SAAS application on AWS with cloudformation, EC2, RDS, ALB, S3, CodeCommit, CodeDeploy and Codepipelines.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building Single Tenant SAAS application in AWS (Fully automated): Part1\" \/>\n<meta property=\"og:description\" content=\"Steps on how to build an automated SAAS application on AWS with cloudformation, EC2, RDS, ALB, S3, CodeCommit, CodeDeploy and Codepipelines.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/\" \/>\n<meta property=\"og:site_name\" content=\"easydeploy.io\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-27T04:33:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-31T08:04:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Untitled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"965\" \/>\n\t<meta property=\"og:image:height\" content=\"647\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Siranjeevi R\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Siranjeevi R\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/\"},\"author\":{\"name\":\"Siranjeevi R\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/0e7f79e0cd26f6446f7a76d9d2d3b20c\"},\"headline\":\"Building Single Tenant SAAS application in AWS (Fully automated): Part1\",\"datePublished\":\"2021-05-27T04:33:06+00:00\",\"dateModified\":\"2023-08-31T08:04:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/\"},\"wordCount\":558,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Untitled.png\",\"keywords\":[\"aws saas architecture\",\"aws saas solutions\",\"cloudformation\",\"CodeCommit\",\"CodeDeploy\",\"Codepipelines\",\"SAAS application\",\"SAAS application in AWS\",\"saas architecture best practices\",\"Single tenant SAAS application\"],\"articleSection\":[\"Amazon Web Services\",\"Cloud Computing\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/\",\"url\":\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/\",\"name\":\"Building Single Tenant SAAS application in AWS (Fully automated): Part1\",\"isPartOf\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Untitled.png\",\"datePublished\":\"2021-05-27T04:33:06+00:00\",\"dateModified\":\"2023-08-31T08:04:18+00:00\",\"description\":\"Steps on how to build an automated SAAS application on AWS with cloudformation, EC2, RDS, ALB, S3, CodeCommit, CodeDeploy and Codepipelines.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#primaryimage\",\"url\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Untitled.png\",\"contentUrl\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Untitled.png\",\"width\":965,\"height\":647,\"caption\":\"SAAS application in AWS\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.easydeploy.io\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building Single Tenant SAAS application in AWS (Fully automated): Part1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#website\",\"url\":\"https:\/\/www.easydeploy.io\/blog\/\",\"name\":\"easydeploy.io\",\"description\":\"A Cloud Architect Company\",\"publisher\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.easydeploy.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#organization\",\"name\":\"EasyDeploy Technologies Pvt Ltd\",\"url\":\"https:\/\/www.easydeploy.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2019\/02\/easydeploy.png\",\"contentUrl\":\"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2019\/02\/easydeploy.png\",\"width\":536,\"height\":100,\"caption\":\"EasyDeploy Technologies Pvt Ltd\"},\"image\":{\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/0e7f79e0cd26f6446f7a76d9d2d3b20c\",\"name\":\"Siranjeevi R\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/353661218917699fcc292e9bc0da9081?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/353661218917699fcc292e9bc0da9081?s=96&d=mm&r=g\",\"caption\":\"Siranjeevi R\"},\"url\":\"https:\/\/www.easydeploy.io\/blog\/author\/siru\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building Single Tenant SAAS application in AWS (Fully automated): Part1","description":"Steps on how to build an automated SAAS application on AWS with cloudformation, EC2, RDS, ALB, S3, CodeCommit, CodeDeploy and Codepipelines.","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:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/","og_locale":"en_GB","og_type":"article","og_title":"Building Single Tenant SAAS application in AWS (Fully automated): Part1","og_description":"Steps on how to build an automated SAAS application on AWS with cloudformation, EC2, RDS, ALB, S3, CodeCommit, CodeDeploy and Codepipelines.","og_url":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/","og_site_name":"easydeploy.io","article_published_time":"2021-05-27T04:33:06+00:00","article_modified_time":"2023-08-31T08:04:18+00:00","og_image":[{"width":965,"height":647,"url":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Untitled.png","type":"image\/png"}],"author":"Siranjeevi R","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Siranjeevi R","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#article","isPartOf":{"@id":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/"},"author":{"name":"Siranjeevi R","@id":"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/0e7f79e0cd26f6446f7a76d9d2d3b20c"},"headline":"Building Single Tenant SAAS application in AWS (Fully automated): Part1","datePublished":"2021-05-27T04:33:06+00:00","dateModified":"2023-08-31T08:04:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/"},"wordCount":558,"commentCount":0,"publisher":{"@id":"https:\/\/www.easydeploy.io\/blog\/#organization"},"image":{"@id":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Untitled.png","keywords":["aws saas architecture","aws saas solutions","cloudformation","CodeCommit","CodeDeploy","Codepipelines","SAAS application","SAAS application in AWS","saas architecture best practices","Single tenant SAAS application"],"articleSection":["Amazon Web Services","Cloud Computing"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/","url":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/","name":"Building Single Tenant SAAS application in AWS (Fully automated): Part1","isPartOf":{"@id":"https:\/\/www.easydeploy.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#primaryimage"},"image":{"@id":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Untitled.png","datePublished":"2021-05-27T04:33:06+00:00","dateModified":"2023-08-31T08:04:18+00:00","description":"Steps on how to build an automated SAAS application on AWS with cloudformation, EC2, RDS, ALB, S3, CodeCommit, CodeDeploy and Codepipelines.","breadcrumb":{"@id":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#primaryimage","url":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Untitled.png","contentUrl":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2021\/05\/Untitled.png","width":965,"height":647,"caption":"SAAS application in AWS"},{"@type":"BreadcrumbList","@id":"https:\/\/www.easydeploy.io\/blog\/building-single-tenant-saas-platform-in-aws-fully-automated-part1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.easydeploy.io\/blog\/"},{"@type":"ListItem","position":2,"name":"Building Single Tenant SAAS application in AWS (Fully automated): Part1"}]},{"@type":"WebSite","@id":"https:\/\/www.easydeploy.io\/blog\/#website","url":"https:\/\/www.easydeploy.io\/blog\/","name":"easydeploy.io","description":"A Cloud Architect Company","publisher":{"@id":"https:\/\/www.easydeploy.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.easydeploy.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.easydeploy.io\/blog\/#organization","name":"EasyDeploy Technologies Pvt Ltd","url":"https:\/\/www.easydeploy.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.easydeploy.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2019\/02\/easydeploy.png","contentUrl":"https:\/\/www.easydeploy.io\/blog\/wp-content\/uploads\/2019\/02\/easydeploy.png","width":536,"height":100,"caption":"EasyDeploy Technologies Pvt Ltd"},"image":{"@id":"https:\/\/www.easydeploy.io\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/0e7f79e0cd26f6446f7a76d9d2d3b20c","name":"Siranjeevi R","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.easydeploy.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/353661218917699fcc292e9bc0da9081?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/353661218917699fcc292e9bc0da9081?s=96&d=mm&r=g","caption":"Siranjeevi R"},"url":"https:\/\/www.easydeploy.io\/blog\/author\/siru\/"}]}},"_links":{"self":[{"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/posts\/1197"}],"collection":[{"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/comments?post=1197"}],"version-history":[{"count":10,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/posts\/1197\/revisions"}],"predecessor-version":[{"id":2996,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/posts\/1197\/revisions\/2996"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/media\/1441"}],"wp:attachment":[{"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/media?parent=1197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/categories?post=1197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.easydeploy.io\/blog\/wp-json\/wp\/v2\/tags?post=1197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}