From 8a9e5927e534a6c2d8f4307f8824522b4489c738 Mon Sep 17 00:00:00 2001 From: Manuel Luypaert Date: Fri, 4 Aug 2023 16:15:35 +0100 Subject: [PATCH] Migrated load balancer from classic to application load balancer --- .../application-load-balancer.config | 25 +++++++++++++++++++ .ebextensions/aws-ec2-vpc.config | 2 ++ .../elasticbeanstalk-environment.config | 13 ---------- .ebextensions/securelistener-clb.config | 7 ------ Makefile | 5 +++- 5 files changed, 31 insertions(+), 21 deletions(-) create mode 100644 .ebextensions/application-load-balancer.config delete mode 100644 .ebextensions/securelistener-clb.config diff --git a/.ebextensions/application-load-balancer.config b/.ebextensions/application-load-balancer.config new file mode 100644 index 00000000..2b590e2f --- /dev/null +++ b/.ebextensions/application-load-balancer.config @@ -0,0 +1,25 @@ +option_settings: + # As noted in the AWS docs, the following option cannot be set through the .ebextensions configuration files, + # and thus has to be defines through EB CLI arguments on environment creation. + # + # aws:elasticbeanstalk:environment: + # LoadBalancerType: application + # + # https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-cfg-alb.html#environments-cfg-alb-namespaces + aws:elasticbeanstalk:environment: + EnvironmentType: LoadBalanced + ServiceRole: aws-elasticbeanstalk-service-role + #Processors + aws:elasticbeanstalk:environment:process:default: + HealthCheckPath: '/index.html' + Port: '80' + Protocol: HTTP + StickinessEnabled: 'true' + StickinessLBCookieDuration: '43200' + #Listeners + aws:elbv2:listener:80: + ListenerEnabled: false + aws:elbv2:listener:443: + SSLCertificateArns: arn:aws:acm:us-east-1:357210185381:certificate/bdb39bca-9a70-491d-adb0-b500a1b71bde + Protocol: HTTPS + DefaultProcess: default \ No newline at end of file diff --git a/.ebextensions/aws-ec2-vpc.config b/.ebextensions/aws-ec2-vpc.config index 7478967e..b1eed454 100644 --- a/.ebextensions/aws-ec2-vpc.config +++ b/.ebextensions/aws-ec2-vpc.config @@ -4,6 +4,8 @@ option_settings: ELBScheme: public ELBSubnets: - subnet-a33a2bd5 + - subnet-1ce4c744 Subnets: - subnet-a33a2bd5 + - subnet-1ce4c744 VPCId: vpc-8e0087e9 diff --git a/.ebextensions/elasticbeanstalk-environment.config b/.ebextensions/elasticbeanstalk-environment.config index dc06ed6e..6e91c2bf 100644 --- a/.ebextensions/elasticbeanstalk-environment.config +++ b/.ebextensions/elasticbeanstalk-environment.config @@ -5,19 +5,6 @@ option_settings: DeleteOnTerminate: 'false' RetentionInDays: '14' StreamLogs: 'true' - aws:elasticbeanstalk:environment: - EnvironmentType: LoadBalanced - ServiceRole: aws-elasticbeanstalk-service-role - aws:elasticbeanstalk:environment:process:default: - DeregistrationDelay: '20' #Default? - HealthCheckInterval: '15' #Default? - HealthCheckPath: '/index.html' - HealthCheckTimeout: '5' #Default? - MatcherHttpCode: '200' #Default? - Port: '80' #Default? - Protocol: HTTP #Default? - StickinessEnabled: 'true' - StickinessLBCookieDuration: '43200' aws:elasticbeanstalk:hostmanager: LogPublicationControl: 'true' aws:elasticbeanstalk:managedactions: diff --git a/.ebextensions/securelistener-clb.config b/.ebextensions/securelistener-clb.config deleted file mode 100644 index 116edcac..00000000 --- a/.ebextensions/securelistener-clb.config +++ /dev/null @@ -1,7 +0,0 @@ -option_settings: - aws:elb:listener:80: - ListenerEnabled: false - aws:elb:listener:443: - SSLCertificateId: arn:aws:acm:us-east-1:357210185381:certificate/bdb39bca-9a70-491d-adb0-b500a1b71bde - ListenerProtocol: HTTPS - InstancePort: 80 diff --git a/Makefile b/Makefile index 97341496..a879b67b 100644 --- a/Makefile +++ b/Makefile @@ -131,7 +131,10 @@ eb-create: eb-def-app-env \ --region=us-east-1 \ --tags="CreatedBy=${AWS_IAM_UNAME},Role=RestAPI" \ --cname="${PROJ_NAME}" \ - -p docker + -p docker \ + --elb-type application \ + --vpc.id vpc-8e0087e9 --vpc.ec2subnets subnet-1ce4c744,subnet-a33a2bd5 --vpc.elbsubnets subnet-1ce4c744,subnet-a33a2bd5 \ + --vpc.elbpublic --vpc.publicip .PHONY: eb-deploy eb-deploy: eb-def-app-env \