From 517d5e097930a071f6f8a8ac9fb1f72b4083151f Mon Sep 17 00:00:00 2001 From: Joe Bailey Date: Sun, 12 Feb 2023 13:05:36 -0800 Subject: [PATCH] Setup the PR phase in Github and working to get blue-green deployment working in AWS. * Added a PR and deploy Github actions file for the first steps in the pipeline. * Building out deployment with blue-green, need the docker file in main for CodeBuild. --- .editorconfig | 1 + .github/workflows/deploy.yml | 65 +++ .github/workflows/maven-build.yml | 29 -- .github/workflows/pr.yml | 23 + .gitignore | 3 + Dockerfile | 3 + infra/LICENSE | 202 +++++++++ infra/NOTICE | 10 + infra/README.md | 130 ++++++ infra/bin/deploy | 23 + infra/deploy/.gitignore | 2 + infra/ecs-blue-green-deployment.yaml | 80 ++++ infra/images/cloudformation-launch-stack.png | Bin 0 -> 3880 bytes infra/images/codepipeline1.png | Bin 0 -> 137719 bytes infra/images/ecs-bluegreen.png | Bin 0 -> 129664 bytes infra/scripts/blue_green_flip.py | 228 ++++++++++ infra/scripts/deployer.py | 196 +++++++++ infra/templates/deployment-pipeline.yaml | 420 +++++++++++++++++++ infra/templates/ecs-cluster.yaml | 220 ++++++++++ infra/templates/load-balancer.yaml | 56 +++ infra/templates/service.yaml | 145 +++++++ infra/templates/vpc.yaml | 96 +++++ pom.xml | 7 +- 23 files changed, 1908 insertions(+), 31 deletions(-) create mode 100644 .github/workflows/deploy.yml delete mode 100644 .github/workflows/maven-build.yml create mode 100644 .github/workflows/pr.yml create mode 100644 Dockerfile create mode 100644 infra/LICENSE create mode 100644 infra/NOTICE create mode 100644 infra/README.md create mode 100755 infra/bin/deploy create mode 100644 infra/deploy/.gitignore create mode 100644 infra/ecs-blue-green-deployment.yaml create mode 100644 infra/images/cloudformation-launch-stack.png create mode 100644 infra/images/codepipeline1.png create mode 100644 infra/images/ecs-bluegreen.png create mode 100644 infra/scripts/blue_green_flip.py create mode 100644 infra/scripts/deployer.py create mode 100644 infra/templates/deployment-pipeline.yaml create mode 100644 infra/templates/ecs-cluster.yaml create mode 100644 infra/templates/load-balancer.yaml create mode 100644 infra/templates/service.yaml create mode 100644 infra/templates/vpc.yaml diff --git a/.editorconfig b/.editorconfig index 2513d2a34..3229d747b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,6 +6,7 @@ charset = utf-8 end_of_line = lf insert_final_newline = true indent_style = space +indent_size = 2 [*.{java,xml}] indent_size = 4 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 000000000..ec94e1c74 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,65 @@ +name: Deploy + +# on: +# push: +# branches: +# - main +on: + pull_request: + branches: [main] + + +jobs: + deploy-infra: + name: Deploy Infrastructure + + + # deploy-blue: + # name: Deploy + # runs-on: ubuntu-latest + # environment: production + + # steps: + # - name: Checkout + # uses: actions/checkout@v3 + + # - name: Configure AWS credentials + # uses: aws-actions/configure-aws-credentials@13d241b293754004c80624b5567555c4a39ffbe3 + # with: + # aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + # aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # aws-region: ${{ env.AWS_REGION }} + + # - name: Login to Amazon ECR + # id: login-ecr + # uses: aws-actions/amazon-ecr-login@aaf69d68aa3fb14c1d5a6be9ac61fe15b48453a2 + + # - name: Build, tag, and push image to Amazon ECR + # id: build-image + # env: + # ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} + # IMAGE_TAG: ${{ github.sha }} + # run: | + # # Build a docker container and + # # push it to ECR so that it can + # # be deployed to ECS. + # # docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . + # ./mvnw spring-boot:build-image -Dspring-boot.build-image.imageName=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG + # docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG + # echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT + + # - name: Fill in the new image ID in the Amazon ECS task definition + # id: task-def + # uses: aws-actions/amazon-ecs-render-task-definition@97587c9d45a4930bf0e3da8dd2feb2a463cf4a3a + # with: + # task-definition: ${{ env.ECS_TASK_DEFINITION }} + # container-name: ${{ env.CONTAINER_NAME }} + # image: ${{ steps.build-image.outputs.image }} + + # - name: Deploy Amazon ECS task definition + # uses: aws-actions/amazon-ecs-deploy-task-definition@de0132cf8cdedb79975c6d42b77eb7ea193cf28e + # with: + # task-definition: ${{ steps.task-def.outputs.task-definition }} + # service: ${{ env.ECS_SERVICE }} + # cluster: ${{ env.ECS_CLUSTER }} + # wait-for-service-stability: true diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml deleted file mode 100644 index 323fc7ca5..000000000 --- a/.github/workflows/maven-build.yml +++ /dev/null @@ -1,29 +0,0 @@ -# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven - -name: Java CI with Maven - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - strategy: - matrix: - java: [ '17' ] - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK ${{matrix.java}} - uses: actions/setup-java@v2 - with: - java-version: ${{matrix.java}} - distribution: 'adopt' - cache: maven - - name: Build with Maven Wrapper - run: ./mvnw -B package diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 000000000..cd51313f6 --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,23 @@ +name: PR Verification + +on: + pull_request: + branches: [main] + +jobs: + build-test: + runs-on: ubuntu-latest + strategy: + matrix: + java: ["17"] + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK ${{matrix.java}} + uses: actions/setup-java@v2 + with: + java-version: ${{matrix.java}} + distribution: "adopt" + cache: maven + - name: Build with Maven Wrapper + run: ./mvnw -B package diff --git a/.gitignore b/.gitignore index af0cb9bb0..30a6366b7 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,6 @@ build/* _site/ *.css !petclinic.css + +*_override.tf +tmp/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..fd7caee0e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM openjdk:8-jdk-alpine +COPY target/spring-petclinic-3.0.0-SNAPSHOT.jar spring-petclinic-3.0.0-SNAPSHOT.jar +ENTRYPOINT ["java","-jar","/spring-petclinic-3.0.0-SNAPSHOT.jar"] diff --git a/infra/LICENSE b/infra/LICENSE new file mode 100644 index 000000000..f62d4c997 --- /dev/null +++ b/infra/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016 Amazon Web Services + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/infra/NOTICE b/infra/NOTICE new file mode 100644 index 000000000..886dfe351 --- /dev/null +++ b/infra/NOTICE @@ -0,0 +1,10 @@ +Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with the License. A copy of the License is located at + + http://aws.amazon.com/apache2.0/ + +or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +ecs-refarch-continuous-deployment +Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/infra/README.md b/infra/README.md new file mode 100644 index 000000000..98a3933f1 --- /dev/null +++ b/infra/README.md @@ -0,0 +1,130 @@ +# **NOTE:** Same reference architecture, but using [AWS Fargate](https://aws.amazon.com/fargate/) is available in [fargate branch](https://github.com/awslabs/ecs-blue-green-deployment/tree/fargate) + +# Blue/Green deployments on ECS + +This reference architecture is in reference to blog post on [blue green deployments on ECS](https://aws.amazon.com/blogs/compute/bluegreen-deployments-with-amazon-ecs/). It creates a continuous delivery by leveraging AWS CloudFormation templates. The templates creates resources using Amazon's Code* services to build and deploy containers onto an ECS cluster as long running services. It also includes a manual approval step facilitated by lambda function that discovers and swaps target group rules between 2 target groups, promoting the green version to production and demoting the blue version to staging. + +## Pre-Requisites +This example uses [AWS Command Line Interface](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) to run Step-3 below. + +Please follow [instructions](http://docs.aws.amazon.com/cli/latest/userguide/installing.html) if you haven't installed AWS CLI. Your CLI [configuration](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) need PowerUserAccess and IAMFullAccess [IAM policies](http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) associated with your credentials + +```console +aws --version +``` + +Output from above must yield **AWS CLI version >= 1.11.37** + +## Quick setup in three steps + +#### 1. Fork ECS Sample app + +[Fork](https://help.github.com/articles/fork-a-repo/) the [Amazon ECS sample app](https://github.com/awslabs/ecs-demo-php-simple-app) GitHub repository into your GitHub account. + +Clone the ECS Sample app repo +```console +git clone https://github.com//ecs-demo-php-simple-app +``` + +#### 2. Clone ECS blue green repo + +```console +git clone https://github.com/awslabs/ecs-blue-green-deployment +``` + +#### 2a (Optional) . Switch to [fargate branch](https://github.com/awslabs/ecs-blue-green-deployment/tree/fargate) , if you want to use [AWS Fargate](https://aws.amazon.com/fargate/) + +```console +git checkout fargate +``` + +#### 3. Run bin/deploy +```console +bin/deploy +``` + +Here are the inputs required to launch CloudFormation templates: + * **S3 Bucket**: Enter S3 Bucket for storing your CloudFormation templates and scripts. This bucket must be in the same region where you wish to launch all the AWS resources created by this example. + * **CloudFormation Stack Name**: Enter CloudFormation Stack Name to create stacks + * **GitHubUser**: Enter your GitHub Username + * **GitHubToken**: Enter your GitHub Token for authentication ([https://github.com/settings/tokens](https://github.com/settings/tokens)) + +Sit back and relax until all the resources are created for you. After the templates are created, you can open ELB DNS URL to see the ECS Sample App + +For testing Blue Green deployment, Go ahead and make a change in ECS Sample App. For ex, edit src/index.php and update the background-color to #20E941 to change to Green background color. After commiting to your repo, Code Pipeline will pick the change automatically and go through the process of updating your application. + +Click on "Review" button in Code pipeline management console and Approve the change. Now you should see the new version of the application with Green background. + +## Resources created in this exercise + +Count | AWS resources +| --- | --- | +7 | [AWS CloudFormation templates](https://aws.amazon.com/cloudformation/) +1 | [Amazon VPC](https://aws.amazon.com/vpc/) (10.215.0.0/16) +1 | [AWS CodePipeline](https://aws.amazon.com/codepipeline/) +2 | [AWS CodeBuild projects](https://aws.amazon.com/codebuild/) +1 | [Amazon S3 Bucket](https://aws.amazon.com/s3/) +1 | [AWS Lambda](https://aws.amazon.com/lambda/) +1 | [Amazon ECS Cluster](https://aws.amazon.com/ecs/) +2 | [Amazon ECS Service](https://aws.amazon.com/ecs/) +1 | [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/applicationloadbalancer/) +2 | [Application Load Balancer Target Groups](https://aws.amazon.com/elasticloadbalancing/applicationloadbalancer/) + + +## Implementation details +During first phase, the parent template (ecs-blue-green-deployment.yaml) kicks off creating VPC and the resources in deployment-pipeline template. +This creates CodePipeline, CodeBuild and Lambda resources. Once this is complete, second phase creates the rest of resources such as ALB, +Target Groups and ECS resources. Below is a screenshot of CodePipeline once all CloudFormation templates are completed + +![codepipeline](images/codepipeline1.png) + +The templates create two services on ECS cluster and associates a Target Group to each service as depicted in the diagram. +Blue Target Group is associated with Port 80 that represents Live/Production traffic and Green Target Group is associated with Port 8080 and is available for new version of the Application. +The new version of the application can be tested by accessing the load balancer at port 8080, example http://LOAD_BALANCER_URL:8080 .If you want to restrict the traffic ranges accessing beta version of the code, you may modify the Ingress rules [here](https://github.com/awslabs/ecs-blue-green-deployment/blob/master/templates/load-balancer.yaml#L30). +During initial rollout, both Blue and Green service serve same application versions.As you introduce new release, CodePipeline picks those changes and are pushed down the pipeline using CodeBuild and deployed to the Green service. In order to switch from Green to Blue service (or from beta to Prod environment), you have to _Approve_** the release by going to CodePipeline management console and clicking _Review_** button. Approving the change will trigger Lambda function (blue_green_flip.py) which does the swap of ALB Target Groups. If you discover bugs while in Production, you can revert to previous application version by clicking and approving the change again. This in turn will put Blue service back into Production. To simplify identifying which Target Groups are serving Live traffic, we have added Tags on ALB Target Groups. Target Group **IsProduction** Tag will say **true** for Production application. + +![bluegreen](images/ecs-bluegreen.png) + +Here is further explaination for each stages of Code Pipeline. + +**During Build stage** + +* During first phase, CodeBuild builds the docker container image and pushes to [Amazon ECR](https://aws.amazon.com/ecr/). + +* During second phase, Codebuild executes scripts/deployer.py which executes the following scripted logic + + 1. Retrieve artifact (build.json) from the previous phase (CodeBuild phase, which builds application container images) + 2. Check if the load balancer exists. Name of the ELB is fed through environment variable by the pipeline. + 3. Get tag key value of the target group, running on port 8080 and 80 with KeyName as "Identifier". It will be either "Code1" or "Code2" + 4. Get Sha of the image id running on target group at port 8080 and 80 + 5. Edit the build.json retrieved from step-1 and append the values retrieved in step3 and step4 + 6. Save the modified build.json. This file is the output from codebuild project and fed as an input to the CloudFormation + execution stage.This json file has the following schema + { + "Code1" : "CONTAINER_TAG1", + "Code2" : "CONTAINER_TAG2" + } + If the load balancer does not exists (as found in step-2), this would imply that the stack is executed for the first time, and the values of "CONTAINER_TAG1" and CONTAINER_TAG2" will be the same and default to the + value retrieved from build.json in step-1 + +**During Deploy stage** +CodePipeline executes templates/ecs-cluster.yaml. The CloudFormation input parameters with KeyName as "Code1" and "Code2" are overwritten with the values as written in the build.json, retrieved from the second phase of Build Stage. + +**During Review stage** +The pipeline offers manual "Review" button so that the approver can review code and Approve new release. +Providing approvals at this stage will trigger the Lambda function (blue_green_flip.py) which swaps the Green Target Group to Live traffic. You can checkout sample app to see new release change. blue_green_flip.py has the following logic scripted + + 1. Read Job Data from input json + 2. Read Job ID from input json + 3. Get parameters from input json + 4. Get Load balancer name from parameters + 5. Identify the TargetGroup running on this Load Balancer at port 80 and port 8080. Perform the TargetGroup Swap. Also swap the values of "IsProduction" tags. + 6. Send success or failure to CodePipeline + +## Cleanup +First delete ecs-cluster CloudFormation stack, this will delete both ECS services (BlueService and GreenService) and LoadBalancer stacks. Next delete the parent stack. This should delete all the resources that were created for this exercise + + + + + diff --git a/infra/bin/deploy b/infra/bin/deploy new file mode 100755 index 000000000..022a91bd6 --- /dev/null +++ b/infra/bin/deploy @@ -0,0 +1,23 @@ +#!/bin/bash + +set -o errexit -o xtrace +echo -n "Enter S3 Bucket to host the templates and scripts > " +read bucket +echo -n "Enter stackname to create or update the stack > " +read stackname +echo -n "Enter GitHub User > " +read GitHubUser +echo -n "Enter GitHubToken > " +read GitHubToken + +zip deploy/templates.zip ecs-blue-green-deployment.yaml templates/* +cd scripts && zip scripts.zip * && cd .. +mv scripts/scripts.zip deploy/scripts.zip + +aws s3 cp deploy/templates.zip "s3://${bucket}" --acl public-read +aws s3 cp deploy/scripts.zip "s3://${bucket}" --acl public-read +aws s3 cp ecs-blue-green-deployment.yaml "s3://${bucket}" --acl public-read +aws s3 cp --recursive templates/ "s3://${bucket}/templates" --acl public-read +aws s3 cp --recursive scripts/ "s3://${bucket}/scripts" --acl public-read +aws s3api put-bucket-versioning --bucket "${bucket}" --versioning-configuration Status=Enabled +aws cloudformation deploy --stack-name $stackname --template-file ecs-blue-green-deployment.yaml --capabilities CAPABILITY_NAMED_IAM --parameter-overrides GitHubUser=$GitHubUser GitHubToken=$GitHubToken TemplateBucket=$bucket \ No newline at end of file diff --git a/infra/deploy/.gitignore b/infra/deploy/.gitignore new file mode 100644 index 000000000..d6b7ef32c --- /dev/null +++ b/infra/deploy/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/infra/ecs-blue-green-deployment.yaml b/infra/ecs-blue-green-deployment.yaml new file mode 100644 index 000000000..65ee3ecae --- /dev/null +++ b/infra/ecs-blue-green-deployment.yaml @@ -0,0 +1,80 @@ +Description: > + This template illustrates reference architecture for Blue/Green Deployment on ECS. For further reference, please review BluegreenRepo ==> https://github.com/awslabs/ecs-blue-green-deployment + +Parameters: + GitHubUser: + Type: String + Description: Your username on GitHub. + + GitHubRepo: + Type: String + Default: spring-petclinic + Description: The repo name of the sample service. + AllowedPattern: "[A-Za-z0-9_.-]*" + MaxLength: 50 + + GitHubBranch: + Type: String + Default: main + Description: The branch of the repo to continuously deploy. + + GitHubToken: + Type: String + Description: > + Token for the user specified above. (https://github.com/settings/tokens) + + TemplateBucket: + Type: String + Description: > + S3 Bucket used for nested templates + +Metadata: + AWS::CloudFormation::Interface: + ParameterLabels: + GitHubUser: + default: "User" + GitHubRepo: + default: "Repo" + GitHubBranch: + default: "Branch" + GitHubToken: + default: "Personal Access Token" + ParameterGroups: + - Label: + default: GitHub Configuration + Parameters: + - GitHubRepo + - GitHubBranch + - GitHubUser + - GitHubToken + +Resources: + DeploymentPipeline: + Type: AWS::CloudFormation::Stack + Properties: + TemplateURL: !Sub https://s3.amazonaws.com/${TemplateBucket}/templates/deployment-pipeline.yaml + Parameters: + GitHubUser: !Ref GitHubUser + GitHubToken: !Ref GitHubToken + GitHubRepo: !Ref GitHubRepo + GitHubBranch: !Ref GitHubBranch + TemplateBucket: !Ref TemplateBucket + Subnet1: !GetAtt VPC.Outputs.Subnet1 + Subnet2: !GetAtt VPC.Outputs.Subnet2 + VpcId: !GetAtt VPC.Outputs.VpcId + VpcCIDR: 10.215.0.0/16 + + VPC: + Type: AWS::CloudFormation::Stack + Properties: + TemplateURL: !Sub https://s3.amazonaws.com/${TemplateBucket}/templates/vpc.yaml + Parameters: + Name: !Ref AWS::StackName + VpcCIDR: 10.215.0.0/16 + Subnet1CIDR: 10.215.10.0/24 + Subnet2CIDR: 10.215.20.0/24 + +Outputs: + PipelineUrl: + Description: The continuous deployment pipeline in the AWS Management Console. + Value: !GetAtt DeploymentPipeline.Outputs.PipelineUrl diff --git a/infra/images/cloudformation-launch-stack.png b/infra/images/cloudformation-launch-stack.png new file mode 100644 index 0000000000000000000000000000000000000000..7c0b53b6f2efc6a9a69fb4cb570314fe48f54abb GIT binary patch literal 3880 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Μd&@B$45%sKG%bP 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

;m4gx!Dt?^6|IXFvLV?27l5( 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%0DaaomsXS9=ZYrE#Ydg% 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 literal 0 HcmV?d00001 diff --git a/infra/images/ecs-bluegreen.png b/infra/images/ecs-bluegreen.png new file mode 100644 index 0000000000000000000000000000000000000000..5cc726851fc6550a7f1550cd1d29dc560f452197 GIT binary patch literal 129664 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 + Create CodePipeline and CodeBuild resources for Blue/Green Deployment on ECS. For further reference, please review BluegreenRepo ==> https://github.com/awslabs/ecs-blue-green-deployment + +Parameters: + GitHubRepo: + Type: String + + GitHubBranch: + Type: String + + GitHubToken: + Type: String + + GitHubUser: + Type: String + + TemplateBucket: + Type: String + + Subnet1: + Type: AWS::EC2::Subnet::Id + Subnet2: + Type: AWS::EC2::Subnet::Id + + VpcId: + Type: AWS::EC2::VPC::Id + + VpcCIDR: + Type: String + +Resources: + BlueGreenFlipLambda: + Type: AWS::Lambda::Function + Properties: + FunctionName: !Sub lambda-${GitHubRepo}-blue-green-swap + Handler: blue_green_flip.handler + Runtime: python3.7 + Description: !Sub lambda-${GitHubRepo}-blue-green-swap + Code: + S3Bucket: !Ref TemplateBucket + S3Key: scripts.zip + MemorySize: 128 + Timeout: 60 + Role: !GetAtt BlueGreenFlipLambdaRole.Arn + + BlueGreenFlipLambdaRole: + Type: AWS::IAM::Role + Properties: + #RoleName: !Sub lambda-${GitHubRepo}-blue-green-swap-role + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Principal: + Service: + - lambda.amazonaws.com + Action: + - sts:AssumeRole + Path: / + + BlueGreenFlipLambdaPolicy: + Type: AWS::IAM::Policy + Properties: + PolicyName: !Sub lambda-${GitHubRepo}-blue-green-swap-policy + PolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Action: + - elasticloadbalancing:* + - codepipeline:PutJobFailureResult + - codepipeline:PutJobSuccessResult + Resource: "*" + - Effect: Allow + Action: + - logs:CreateLogGroup + - logs:CreateLogStream + - logs:PutLogEvents + Resource: arn:aws:logs:*:*:* + Roles: + - !Ref BlueGreenFlipLambdaRole + + Repository: + Type: AWS::ECR::Repository + DeletionPolicy: Retain + + CloudFormationExecutionRole: + Type: AWS::IAM::Role + DeletionPolicy: Retain + Properties: + #RoleName: !Sub cfn-${AWS::StackName} + Path: / + AssumeRolePolicyDocument: | + { + "Statement": [{ + "Effect": "Allow", + "Principal": { "Service": [ "cloudformation.amazonaws.com" ]}, + "Action": [ "sts:AssumeRole" ] + }] + } + Policies: + - PolicyName: root + PolicyDocument: + Version: 2012-10-17 + Statement: + - Resource: "*" + Effect: Allow + Action: + - ecs:* + - ecr:* + - iam:* + - ec2:* + - elasticloadbalancing:* + - autoscaling:* + + CodeBuildServiceRole: + Type: AWS::IAM::Role + Properties: + #RoleName: !Sub cb-${AWS::StackName} + Path: / + AssumeRolePolicyDocument: | + { + "Statement": [{ + "Effect": "Allow", + "Principal": { "Service": [ "codebuild.amazonaws.com" ]}, + "Action": [ "sts:AssumeRole" ] + }] + } + Policies: + - PolicyName: root + PolicyDocument: + Version: 2012-10-17 + Statement: + - Resource: "*" + Effect: Allow + Action: + - logs:CreateLogGroup + - logs:CreateLogStream + - logs:PutLogEvents + - ecr:GetAuthorizationToken + - cloudformation:Describe* + - elasticloadbalancing:Describe* + - codepipeline:Get* + - codebuild:BatchGetBuilds + - Resource: !Sub arn:aws:s3:::${ArtifactBucket}/* + Effect: Allow + Action: + - s3:GetObject + - s3:PutObject + - s3:GetObjectVersion + - Resource: !Sub arn:aws:ecr:${AWS::Region}:${AWS::AccountId}:repository/${Repository} + Effect: Allow + Action: + - ecr:GetDownloadUrlForLayer + - ecr:BatchGetImage + - ecr:BatchCheckLayerAvailability + - ecr:PutImage + - ecr:InitiateLayerUpload + - ecr:UploadLayerPart + - ecr:CompleteLayerUpload + + CodePipelineServiceRole: + Type: AWS::IAM::Role + Properties: + #RoleName: !Sub cp-${AWS::StackName} + Path: / + AssumeRolePolicyDocument: | + { + "Statement": [{ + "Effect": "Allow", + "Principal": { "Service": [ "codepipeline.amazonaws.com" ]}, + "Action": [ "sts:AssumeRole" ] + }] + } + Policies: + - PolicyName: root + PolicyDocument: + Version: 2012-10-17 + Statement: + - Resource: + - !Sub arn:aws:s3:::${ArtifactBucket}/* + - !Sub arn:aws:s3:::${TemplateBucket} + - !Sub arn:aws:s3:::${TemplateBucket}/* + Effect: Allow + Action: + - s3:PutObject + - s3:GetObject + - s3:GetObjectVersion + - s3:GetBucketVersioning + - Resource: "*" + Effect: Allow + Action: + - codebuild:StartBuild + - codebuild:BatchGetBuilds + - cloudformation:* + - lambda:* + - iam:PassRole + + ArtifactBucket: + Type: AWS::S3::Bucket + DeletionPolicy: Retain + + CodeBuildProject: + Type: AWS::CodeBuild::Project + Properties: + Artifacts: + Type: CODEPIPELINE + Source: + Type: CODEPIPELINE + BuildSpec: | + version: 0.1 + phases: + # install: + # commands: + # - apt-get update -y + # - apt-get -y install python-pip + # - pip install --upgrade python + # - pip install --upgrade awscli + pre_build: + commands: + - printenv + - echo -n "$CODEBUILD_LOG_PATH" > /tmp/build_id.out + - printf "%s:%s" "$REPOSITORY_URI" "$(cat /tmp/build_id.out)" > /tmp/build_tag.out + - printf '{"tag":"%s"}' "$(cat /tmp/build_id.out)" > /tmp/build.json + # - $(aws ecr get-login-password) + build: + commands: + - ./mvnw package + - docker build --tag "$(cat /tmp/build_tag.out)" . + # - ./mvnw spring-boot:build-image + - docker image tag spring-petclinic:3.0.0-SNAPSHOT "$(cat /tmp/build_tag.out)" + post_build: + commands: + - docker push "$(cat /tmp/build_tag.out)" + artifacts: + files: /tmp/build.json + discard-paths: yes + Environment: + ComputeType: "BUILD_GENERAL1_SMALL" + Image: "aws/codebuild/standard:6.0" + Type: "LINUX_CONTAINER" + EnvironmentVariables: + - Name: AWS_DEFAULT_REGION + Value: !Ref AWS::Region + - Name: REPOSITORY_URI + Value: !Sub ${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/${Repository} + - Name: DOCKER_HOST + Value: unix:///var/run/docker.sock + Name: !Sub ${AWS::StackName}-codebuildproject + ServiceRole: !Ref CodeBuildServiceRole + + BlueGreenElbDiscovery: + Type: AWS::CodeBuild::Project + Properties: + Artifacts: + Type: CODEPIPELINE + Source: + Type: CODEPIPELINE + BuildSpec: | + version: 0.1 + phases: + install: + commands: + - pip install --upgrade python + - pip install --upgrade awscli + - pip install --upgrade boto3 + pre_build: + commands: + - printenv + - ls -ld $(find .) + - python deployer.py + artifacts: + files: cf_inputs.json + discard-paths: yes + Environment: + ComputeType: "BUILD_GENERAL1_SMALL" + Image: aws/codebuild/python:2.7.12 + Type: "LINUX_CONTAINER" + EnvironmentVariables: + - Name: AWS_DEFAULT_REGION + Value: !Ref AWS::Region + - Name: ELB_NAME + Value: !Ref GitHubRepo + Name: !Sub ${AWS::StackName}-discoveryproject + ServiceRole: !Ref CodeBuildServiceRole + + Pipeline: + Type: AWS::CodePipeline::Pipeline + Properties: + RoleArn: !GetAtt CodePipelineServiceRole.Arn + ArtifactStore: + Type: S3 + Location: !Ref ArtifactBucket + Stages: + - Name: Source + Actions: + - Name: App + ActionTypeId: + Category: Source + Owner: ThirdParty + Version: 1 + Provider: GitHub + Configuration: + Owner: !Ref GitHubUser + Repo: !Ref GitHubRepo + Branch: !Ref GitHubBranch + OAuthToken: !Ref GitHubToken + OutputArtifacts: + - Name: App + RunOrder: 1 + - Name: Template + ActionTypeId: + Category: Source + Owner: AWS + Version: 1 + Provider: S3 + OutputArtifacts: + - Name: Template + RunOrder: 1 + Configuration: + S3Bucket: !Ref TemplateBucket + S3ObjectKey: templates.zip + - Name: Scripts + ActionTypeId: + Category: Source + Owner: AWS + Version: 1 + Provider: S3 + OutputArtifacts: + - Name: Scripts + RunOrder: 1 + Configuration: + S3Bucket: !Ref TemplateBucket + S3ObjectKey: scripts.zip + - Name: Build + Actions: + - Name: Build + ActionTypeId: + Category: Build + Owner: AWS + Version: 1 + Provider: CodeBuild + Configuration: + ProjectName: !Ref CodeBuildProject + InputArtifacts: + - Name: App + OutputArtifacts: + - Name: BuildOutput + RunOrder: 1 + - Name: Discover + ActionTypeId: + Category: Build + Owner: AWS + Version: 1 + Provider: CodeBuild + Configuration: + ProjectName: !Ref BlueGreenElbDiscovery + InputArtifacts: + - Name: Scripts + OutputArtifacts: + - Name: DiscoveryOutput + RunOrder: 2 + - Name: Deploy-Approve-Swap + Actions: + - Name: Deploy + ActionTypeId: + Category: Deploy + Owner: AWS + Version: 1 + Provider: CloudFormation + Configuration: + ChangeSetName: Deploy + ActionMode: CREATE_UPDATE + StackName: !Sub "${AWS::StackName}-ecs-cluster" + Capabilities: CAPABILITY_NAMED_IAM + TemplatePath: Template::templates/ecs-cluster.yaml + RoleArn: !GetAtt CloudFormationExecutionRole.Arn + ParameterOverrides: !Sub | + { + "Subnet1": "${Subnet1}", + "Subnet2": "${Subnet2}", + "VpcId": "${VpcId}", + "VpcCIDR": "${VpcCIDR}", + "Code1" : { "Fn::GetParam" : [ "DiscoveryOutput", "cf_inputs.json", "Code1" ] }, + "Code2" : { "Fn::GetParam" : [ "DiscoveryOutput", "cf_inputs.json", "Code2" ] }, + "Repository": "${Repository}", + "GitHubRepo": "${GitHubRepo}", + "TemplateBucket": "${TemplateBucket}" + + } + InputArtifacts: + - Name: Template + - Name: DiscoveryOutput + RunOrder: 1 + - Name: approve-blue-green-swap + ActionTypeId: + Category: Approval + Owner: AWS + Version: 1 + Provider: Manual + Configuration: + CustomData: "Continue with blue-green swap ?" + RunOrder: 2 + - Name: swap-target-group + ActionTypeId: + Category: Invoke + Owner: AWS + Version: 1 + Provider: Lambda + Configuration: + FunctionName: !Ref BlueGreenFlipLambda + UserParameters: !Sub | + { + "ElbName": "${GitHubRepo}" + } + RunOrder: 3 + +Outputs: + PipelineUrl: + Value: !Sub https://console.aws.amazon.com/codepipeline/home?region=${AWS::Region}#/view/${Pipeline} diff --git a/infra/templates/ecs-cluster.yaml b/infra/templates/ecs-cluster.yaml new file mode 100644 index 000000000..52331ecd6 --- /dev/null +++ b/infra/templates/ecs-cluster.yaml @@ -0,0 +1,220 @@ +Description: > + Create ECS Cluster resources for Blue/Green Deployment on ECS. For further reference, please review BluegreenRepo ==> https://github.com/awslabs/ecs-blue-green-deployment + +Parameters: + InstanceType: + Type: String + Default: t2.large + + ClusterSize: + Type: Number + Default: 1 + + Subnet1: + Type: AWS::EC2::Subnet::Id + Subnet2: + Type: AWS::EC2::Subnet::Id + + VpcId: + Type: AWS::EC2::VPC::Id + + VpcCIDR: + Type: String + + Code1: + Type: String + Default: latest + + Code2: + Type: String + Default: latest + + Repository: + Type: String + + GitHubRepo: + Type: String + + TemplateBucket: + Type: String + Description: > + S3 Bucket used for nested templates + + +Mappings: + AWSRegionToAMI: + us-east-1: + AMI: ami-71ef560b + us-east-2: + AMI: ami-1b8ca37e + us-west-1: + AMI: ami-e5cdf385 + us-west-2: + AMI: ami-a64d9ade + eu-west-1: + AMI: ami-014ae578 + eu-west-2: + AMI: ami-4f8d912b + eu-central-1: + AMI: ami-4255d32d + ap-northeast-1: + AMI: ami-3405af52 + ap-southeast-1: + AMI: ami-134e0670 + ap-southeast-2: + AMI: ami-2ab95148 + ca-central-1: + AMI: ami-c802baac + + +Resources: + ECSRole: + Type: AWS::IAM::Role + Properties: + Path: / + #RoleName: !Sub ecs-${AWS::StackName} + AssumeRolePolicyDocument: | + { + "Statement": [{ + "Effect": "Allow", + "Principal": { "Service": [ "ec2.amazonaws.com" ]}, + "Action": [ "sts:AssumeRole" ] + }] + } + ManagedPolicyArns: + - arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role + + InstanceProfile: + Type: AWS::IAM::InstanceProfile + Properties: + Path: / + Roles: + - !Ref ECSRole + + SecurityGroup: + Type: "AWS::EC2::SecurityGroup" + Properties: + GroupDescription: !Sub ${AWS::StackName}-hosts + SecurityGroupIngress: + - SourceSecurityGroupId: !GetAtt LoadBalancer.Outputs.SecurityGroup + IpProtocol: -1 + VpcId: !Ref VpcId + + Cluster: + Type: AWS::ECS::Cluster + Properties: + ClusterName: !Ref AWS::StackName + + AutoScalingGroup: + Type: AWS::AutoScaling::AutoScalingGroup + Properties: + VPCZoneIdentifier: + - !Ref Subnet1 + - !Ref Subnet2 + LaunchConfigurationName: !Ref LaunchConfiguration + MinSize: !Ref ClusterSize + MaxSize: !Ref ClusterSize + DesiredCapacity: !Ref ClusterSize + Tags: + - Key: Name + Value: !Sub ${AWS::StackName} - ECS Host + PropagateAtLaunch: true + CreationPolicy: + ResourceSignal: + Timeout: PT15M + UpdatePolicy: + AutoScalingRollingUpdate: + MinInstancesInService: 1 + MaxBatchSize: 1 + PauseTime: PT15M + WaitOnResourceSignals: true + + LaunchConfiguration: + Type: AWS::AutoScaling::LaunchConfiguration + Metadata: + AWS::CloudFormation::Init: + config: + commands: + 01_add_instance_to_cluster: + command: !Sub echo ECS_CLUSTER=${Cluster} > /etc/ecs/ecs.config + files: + "/etc/cfn/cfn-hup.conf": + mode: 000400 + owner: root + group: root + content: !Sub | + [main] + stack=${AWS::StackId} + region=${AWS::Region} + "/etc/cfn/hooks.d/cfn-auto-reloader.conf": + content: !Sub | + [cfn-auto-reloader-hook] + triggers=post.update + path=Resources.ContainerInstances.Metadata.AWS::CloudFormation::Init + action=/opt/aws/bin/cfn-init -v --region ${AWS::Region} --stack ${AWS::StackName} --resource LaunchConfiguration + services: + sysvinit: + cfn-hup: + enabled: true + ensureRunning: true + files: + - /etc/cfn/cfn-hup.conf + - /etc/cfn/hooks.d/cfn-auto-reloader.conf + Properties: + ImageId: !FindInMap [ AWSRegionToAMI, !Ref "AWS::Region", AMI ] + InstanceType: !Ref InstanceType + IamInstanceProfile: !Ref InstanceProfile + SecurityGroups: + - !Ref SecurityGroup + UserData: + "Fn::Base64": !Sub | + #!/bin/bash + yum install -y aws-cfn-bootstrap + /opt/aws/bin/cfn-init -v --region ${AWS::Region} --stack ${AWS::StackName} --resource LaunchConfiguration + /opt/aws/bin/cfn-signal -e $? --region ${AWS::Region} --stack ${AWS::StackName} --resource AutoScalingGroup + + LoadBalancer: + Type: AWS::CloudFormation::Stack + Properties: + TemplateURL: !Sub https://s3.amazonaws.com/${TemplateBucket}/templates/load-balancer.yaml + Parameters: + Subnet1 : !Ref Subnet1 + Subnet2 : !Ref Subnet2 + VpcId: !Ref VpcId + VpcCIDR: !Ref VpcCIDR + Name: !Ref GitHubRepo + + GreenService: + Type: AWS::CloudFormation::Stack + Properties: + TemplateURL: !Sub https://s3.amazonaws.com/${TemplateBucket}/templates/service.yaml + Parameters: + Cluster: !Ref Cluster + LoadBalancer: !GetAtt LoadBalancer.Outputs.LoadBalancerArn + Port: 8080 + Tag: !Ref Code2 + DesiredCount: "1" + VpcId: !Ref VpcId + Repository: !Ref Repository + Identifier: "Code2" + IsProduction: False + + BlueService: + Type: AWS::CloudFormation::Stack + Properties: + TemplateURL: !Sub https://s3.amazonaws.com/${TemplateBucket}/templates/service.yaml + Parameters: + Cluster: !Ref Cluster + LoadBalancer: !GetAtt LoadBalancer.Outputs.LoadBalancerArn + Port: 80 + Tag: !Ref Code1 + DesiredCount: "1" + VpcId: !Ref VpcId + Repository: !Ref Repository + Identifier: "Code1" + IsProduction: True + + +Outputs: + ClusterName: + Value: !Ref Cluster diff --git a/infra/templates/load-balancer.yaml b/infra/templates/load-balancer.yaml new file mode 100644 index 000000000..706e263e5 --- /dev/null +++ b/infra/templates/load-balancer.yaml @@ -0,0 +1,56 @@ +Description: > + Create Application Load Balancer resources for Blue/Green Deployment on ECS. For further reference, please review BluegreenRepo ==> https://github.com/awslabs/ecs-blue-green-deployment + +Parameters: + VpcId: + Type: String + + VpcCIDR: + Type: String + + Subnet1: + Type: AWS::EC2::Subnet::Id + Subnet2: + Type: AWS::EC2::Subnet::Id + + Name: + Type: String + + +Resources: + SecurityGroup: + Type: "AWS::EC2::SecurityGroup" + Properties: + GroupDescription: !Sub ${AWS::StackName}-alb + SecurityGroupIngress: + - CidrIp: "0.0.0.0/0" + IpProtocol: "TCP" + FromPort: 80 + ToPort: 80 + - CidrIp: "0.0.0.0/0" + # Change above to !Ref VpcCIDR, if you want to restrict the beta version of the traffic to VPC CIDRs only + IpProtocol: "TCP" + FromPort: 8080 + ToPort: 8080 + VpcId: !Ref VpcId + + LoadBalancer: + Type: AWS::ElasticLoadBalancingV2::LoadBalancer + Properties: + Name: !Ref Name + Subnets: + - !Ref Subnet1 + - !Ref Subnet2 + SecurityGroups: + - !Ref SecurityGroup + +Outputs: + ServiceUrl: + Description: URL of the load balancer for the sample service. + Value: !Sub http://${LoadBalancer.DNSName} + + SecurityGroup: + Value: !Ref SecurityGroup + + LoadBalancerArn: + Value: !Ref LoadBalancer diff --git a/infra/templates/service.yaml b/infra/templates/service.yaml new file mode 100644 index 000000000..cd944ac5d --- /dev/null +++ b/infra/templates/service.yaml @@ -0,0 +1,145 @@ +Description: > + Create ECS Service for Blue/Green Deployment on ECS. For further reference, please review BluegreenRepo ==> https://github.com/awslabs/ecs-blue-green-deployment + +Parameters: + DesiredCount: + Type: Number + Default: 0 + + VpcId: + Type: AWS::EC2::VPC::Id + + Cluster: + Type: String + + LoadBalancer: + Type: String + + Repository: + Type: String + + Tag: + Type: String + Default: latest + + Port: + Type: Number + + Identifier: + Type: String + + IsProduction: + Type: String + + +Resources: + + LoadBalancerListener: + Type: AWS::ElasticLoadBalancingV2::Listener + Properties: + LoadBalancerArn: !Ref LoadBalancer + Port: !Ref Port + Protocol: HTTP + DefaultActions: + - Type: forward + TargetGroupArn: !Ref TargetGroup + + TargetGroup: + Type: AWS::ElasticLoadBalancingV2::TargetGroup + Properties: + VpcId: !Ref VpcId + Port: !Ref Port + Protocol: HTTP + Matcher: + HttpCode: 200-299 + HealthCheckIntervalSeconds: 10 + HealthCheckPath: / + HealthCheckProtocol: HTTP + HealthCheckTimeoutSeconds: 5 + HealthyThresholdCount: 2 + TargetGroupAttributes: + - Key: deregistration_delay.timeout_seconds + Value: 30 + Tags: + - Key: Identifier + Value: !Ref Identifier + - Key: Image + Value: !Ref Tag + - Key: IsProduction + Value: !Ref IsProduction + + ListenerRule: + Type: AWS::ElasticLoadBalancingV2::ListenerRule + Properties: + Actions: + - Type: forward + TargetGroupArn: !Ref TargetGroup + Conditions: + - Field: path-pattern + Values: + - "*" + ListenerArn: !Ref LoadBalancerListener + Priority: 1 + + ECSServiceRole: + Type: AWS::IAM::Role + Properties: + #RoleName: !Sub ecs-service-${AWS::StackName} + Path: / + AssumeRolePolicyDocument: | + { + "Statement": [{ + "Effect": "Allow", + "Principal": { "Service": [ "ecs.amazonaws.com" ]}, + "Action": [ "sts:AssumeRole" ] + }] + } + ManagedPolicyArns: + - arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceRole + + Service: + Type: AWS::ECS::Service + Properties: + Cluster: !Ref Cluster + Role: !Ref ECSServiceRole + DesiredCount: !Ref DesiredCount + TaskDefinition: !Ref TaskDefinition + LoadBalancers: + - ContainerName: simple-app + ContainerPort: 80 + TargetGroupArn: !Ref TargetGroup + + TaskDefinition: + Type: AWS::ECS::TaskDefinition + Properties: + #Family: !Sub ${AWS::StackName}-simple-app + ContainerDefinitions: + - Name: simple-app + Image: !Sub ${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/${Repository}:${Tag} + EntryPoint: + - /usr/sbin/apache2 + - -D + - FOREGROUND + Essential: true + Memory: 128 + MountPoints: + - SourceVolume: my-vol + ContainerPath: /var/www/my-vol + PortMappings: + - ContainerPort: 80 + Environment: + - Name: Tag + Value: !Ref Tag + - Name: busybox + Image: busybox + EntryPoint: + - sh + - -c + Essential: false + Memory: 128 + VolumesFrom: + - SourceContainer: simple-app + Command: + - /bin/sh -c "while true; do /bin/date > /var/www/my-vol/date; sleep 1; done" + Volumes: + - Name: my-vol diff --git a/infra/templates/vpc.yaml b/infra/templates/vpc.yaml new file mode 100644 index 000000000..a7c4e6fce --- /dev/null +++ b/infra/templates/vpc.yaml @@ -0,0 +1,96 @@ +Description: > + Create VPC resources for Blue/Green Deployment on ECS. For further reference, please review BluegreenRepo ==> https://github.com/awslabs/ecs-blue-green-deployment + +Parameters: + Name: + Type: String + + VpcCIDR: + Type: String + + Subnet1CIDR: + Type: String + + Subnet2CIDR: + Type: String + + +Resources: + VPC: + Type: AWS::EC2::VPC + Properties: + CidrBlock: !Ref VpcCIDR + Tags: + - Key: Name + Value: !Ref Name + + InternetGateway: + Type: AWS::EC2::InternetGateway + Properties: + Tags: + - Key: Name + Value: !Ref Name + + InternetGatewayAttachment: + Type: AWS::EC2::VPCGatewayAttachment + Properties: + InternetGatewayId: !Ref InternetGateway + VpcId: !Ref VPC + + Subnet1: + Type: AWS::EC2::Subnet + Properties: + VpcId: !Ref VPC + AvailabilityZone: !Select [ 0, !GetAZs ] + MapPublicIpOnLaunch: true + CidrBlock: !Ref Subnet1CIDR + Tags: + - Key: Name + Value: !Sub ${Name} (Public) + + Subnet2: + Type: AWS::EC2::Subnet + Properties: + VpcId: !Ref VPC + AvailabilityZone: !Select [ 1, !GetAZs ] + MapPublicIpOnLaunch: true + CidrBlock: !Ref Subnet2CIDR + Tags: + - Key: Name + Value: !Sub ${Name} (Public) + + RouteTable: + Type: AWS::EC2::RouteTable + Properties: + VpcId: !Ref VPC + Tags: + - Key: Name + Value: !Ref Name + + DefaultRoute: + Type: AWS::EC2::Route + Properties: + RouteTableId: !Ref RouteTable + DestinationCidrBlock: 0.0.0.0/0 + GatewayId: !Ref InternetGateway + + Subnet1RouteTableAssociation: + Type: AWS::EC2::SubnetRouteTableAssociation + Properties: + RouteTableId: !Ref RouteTable + SubnetId: !Ref Subnet1 + + Subnet2RouteTableAssociation: + Type: AWS::EC2::SubnetRouteTableAssociation + Properties: + RouteTableId: !Ref RouteTable + SubnetId: !Ref Subnet2 + + +Outputs: + Subnet1: + Value: !Ref Subnet1 + Subnet2: + Value: !Ref Subnet2 + VpcId: + Value: !Ref VPC diff --git a/pom.xml b/pom.xml index 6ea3dd6e6..a468b5c4a 100644 --- a/pom.xml +++ b/pom.xml @@ -129,10 +129,13 @@ - + org.springframework.boot spring-boot-maven-plugin