Move load balancing to seperate stack
This commit is contained in:
		
							
								
								
									
										240
									
								
								cloudformation/nakama/load_balancing.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										240
									
								
								cloudformation/nakama/load_balancing.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,240 @@
 | 
			
		||||
 | 
			
		||||
AWSTemplateFormatVersion: "2010-09-09"
 | 
			
		||||
Description: Nakama load balancing stack
 | 
			
		||||
Parameters:
 | 
			
		||||
  environment:
 | 
			
		||||
    Type: String
 | 
			
		||||
    Description: Name of the environment
 | 
			
		||||
    Default: production
 | 
			
		||||
  release:
 | 
			
		||||
    Type: String
 | 
			
		||||
    Description: Name of the release name of the stack version to use.
 | 
			
		||||
    Default: production
 | 
			
		||||
    AllowedValues: ['develop', 'production']
 | 
			
		||||
    ConstraintDescription: "Must be a possible release version."
 | 
			
		||||
  PublicSubnets:
 | 
			
		||||
    Description: The public subnets for the ALB to run in.
 | 
			
		||||
    Type: String
 | 
			
		||||
  PortalCertificate:
 | 
			
		||||
    Description: Arn of AWS Certificate
 | 
			
		||||
    Type: String
 | 
			
		||||
  VpcId:
 | 
			
		||||
    Description: ID of the VPC
 | 
			
		||||
    Type: AWS::EC2::VPC::Id
 | 
			
		||||
 | 
			
		||||
Resources:
 | 
			
		||||
 | 
			
		||||
  #-- Network Load Balancer --#
 | 
			
		||||
  PublicNLB:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
 | 
			
		||||
    Properties:
 | 
			
		||||
      Type: network
 | 
			
		||||
      LoadBalancerAttributes:
 | 
			
		||||
        - Key: deletion_protection.enabled
 | 
			
		||||
          Value: false
 | 
			
		||||
      Scheme: internet-facing
 | 
			
		||||
      Subnets: !Split [",", !Ref PublicSubnets]
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub "Nakama-${environment}-NLB"
 | 
			
		||||
        - Key: environment
 | 
			
		||||
          Value: !Ref environment
 | 
			
		||||
 | 
			
		||||
  # Target group for HTTP api
 | 
			
		||||
  HttpApiTargetGroup:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
 | 
			
		||||
    Properties:
 | 
			
		||||
      Port: 7350
 | 
			
		||||
      Protocol: TCP
 | 
			
		||||
      TargetGroupAttributes:
 | 
			
		||||
        - Key: deregistration_delay.timeout_seconds
 | 
			
		||||
          Value: '20'
 | 
			
		||||
      VpcId: !Ref 'VpcId'
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub 'nakama-http-${release}'
 | 
			
		||||
 | 
			
		||||
  # Listener for HTTP
 | 
			
		||||
  HttpApiNlbListener:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::Listener
 | 
			
		||||
    Properties:
 | 
			
		||||
      DefaultActions:
 | 
			
		||||
        - Type: forward
 | 
			
		||||
          TargetGroupArn: !Ref HttpApiTargetGroup
 | 
			
		||||
      LoadBalancerArn: !Ref PublicNLB
 | 
			
		||||
      Port: 7350
 | 
			
		||||
      Protocol: TCP
 | 
			
		||||
 | 
			
		||||
  # Target group for gRPC API
 | 
			
		||||
  GRpcApiTargetGroup:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
 | 
			
		||||
    Properties:
 | 
			
		||||
      Port: 7349
 | 
			
		||||
      Protocol: TCP_UDP
 | 
			
		||||
      TargetGroupAttributes:
 | 
			
		||||
        - Key: deregistration_delay.timeout_seconds
 | 
			
		||||
          Value: '20'
 | 
			
		||||
      VpcId: !Ref 'VpcId'
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub 'nakama-GRpc-${release}'
 | 
			
		||||
 | 
			
		||||
  # Listener for gRPC API
 | 
			
		||||
  GRpcNlbListener:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::Listener
 | 
			
		||||
    Properties:
 | 
			
		||||
      DefaultActions:
 | 
			
		||||
        - Type: forward
 | 
			
		||||
          TargetGroupArn: !Ref GRpcApiTargetGroup
 | 
			
		||||
      LoadBalancerArn: !Ref PublicNLB
 | 
			
		||||
      Port: 7349
 | 
			
		||||
      Protocol: TCP_UDP
 | 
			
		||||
 | 
			
		||||
  # Target group for gRPC embeded console
 | 
			
		||||
  GRpcEApiTargetGroup:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
 | 
			
		||||
    Properties:
 | 
			
		||||
      Port: 7348
 | 
			
		||||
      Protocol: TCP_UDP
 | 
			
		||||
      TargetGroupAttributes:
 | 
			
		||||
        - Key: deregistration_delay.timeout_seconds
 | 
			
		||||
          Value: '20'
 | 
			
		||||
      VpcId: !Ref 'VpcId'
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub 'nakama-GRpc-${release}'
 | 
			
		||||
 | 
			
		||||
  # Listener for gRPC embeded console
 | 
			
		||||
  GRpcENlbListener:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::Listener
 | 
			
		||||
    Properties:
 | 
			
		||||
      DefaultActions:
 | 
			
		||||
        - Type: forward
 | 
			
		||||
          TargetGroupArn: !Ref GRpcEApiTargetGroup
 | 
			
		||||
      LoadBalancerArn: !Ref PublicNLB
 | 
			
		||||
      Port: 7348
 | 
			
		||||
      Protocol: TCP_UDP
 | 
			
		||||
 | 
			
		||||
  #-- Application Load Balancer --#
 | 
			
		||||
  PublicALB:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
 | 
			
		||||
    Properties:
 | 
			
		||||
      Type: application
 | 
			
		||||
      LoadBalancerAttributes:
 | 
			
		||||
        - Key: deletion_protection.enabled
 | 
			
		||||
          Value: false
 | 
			
		||||
        - Key: idle_timeout.timeout_seconds
 | 
			
		||||
          Value: 60
 | 
			
		||||
      Scheme: internet-facing
 | 
			
		||||
      SecurityGroups:
 | 
			
		||||
        - !Ref AlbSecurityGroup
 | 
			
		||||
      Subnets: !Split [",", !Ref PublicSubnets]
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub "Nakama-${environment}-ALB"
 | 
			
		||||
        - Key: environment
 | 
			
		||||
          Value: !Ref environment
 | 
			
		||||
 | 
			
		||||
  AlbSecurityGroup:
 | 
			
		||||
    Type: AWS::EC2::SecurityGroup
 | 
			
		||||
    Properties:
 | 
			
		||||
      GroupDescription: ECS Allowed Ports
 | 
			
		||||
      VpcId: !Ref VpcId
 | 
			
		||||
      SecurityGroupIngress:
 | 
			
		||||
        - IpProtocol: icmp
 | 
			
		||||
          FromPort: "-1"
 | 
			
		||||
          ToPort: "-1"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
        - IpProtocol: tcp
 | 
			
		||||
          FromPort: "443"
 | 
			
		||||
          ToPort: "443"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
        - IpProtocol: tcp
 | 
			
		||||
          FromPort: "80"
 | 
			
		||||
          ToPort: "80"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
      SecurityGroupEgress:
 | 
			
		||||
        - IpProtocol: icmp
 | 
			
		||||
          FromPort: "-1"
 | 
			
		||||
          ToPort: "-1"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
        - IpProtocol: tcp
 | 
			
		||||
          FromPort: "0"
 | 
			
		||||
          ToPort: "65535"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
        - IpProtocol: udp
 | 
			
		||||
          FromPort: "0"
 | 
			
		||||
          ToPort: "65535"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
 | 
			
		||||
  # Target group for admin portal port
 | 
			
		||||
  AdminPortalTargetGroup:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
 | 
			
		||||
    Properties:
 | 
			
		||||
      HealthCheckIntervalSeconds: 30
 | 
			
		||||
      HealthCheckProtocol: HTTP
 | 
			
		||||
      HealthCheckTimeoutSeconds: 15
 | 
			
		||||
      HealthyThresholdCount: 2
 | 
			
		||||
      UnhealthyThresholdCount: 2
 | 
			
		||||
      Matcher:
 | 
			
		||||
        HttpCode: '200'
 | 
			
		||||
      HealthCheckPath: '/'
 | 
			
		||||
      Port: 7351
 | 
			
		||||
      Protocol: HTTP
 | 
			
		||||
      TargetGroupAttributes:
 | 
			
		||||
        - Key: deregistration_delay.timeout_seconds
 | 
			
		||||
          Value: '20'
 | 
			
		||||
      VpcId: !Ref 'VpcId'
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub 'nakama-${release}'
 | 
			
		||||
 | 
			
		||||
  # HTTPS for Admin Portal
 | 
			
		||||
  AdminPortalAlbListener:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::Listener
 | 
			
		||||
    Properties:
 | 
			
		||||
      Certificates:
 | 
			
		||||
        - CertificateArn: !Ref PortalCertificate
 | 
			
		||||
      DefaultActions:
 | 
			
		||||
        - Type: forward
 | 
			
		||||
          TargetGroupArn: !Ref AdminPortalTargetGroup
 | 
			
		||||
      LoadBalancerArn: !Ref PublicALB
 | 
			
		||||
      Port: 443
 | 
			
		||||
      Protocol: HTTPS
 | 
			
		||||
 | 
			
		||||
  # Redirect HTTP -> HTTPS
 | 
			
		||||
  AdminPortalRedirectAlbListener:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::Listener
 | 
			
		||||
    Properties:
 | 
			
		||||
      DefaultActions:
 | 
			
		||||
      - Type: redirect
 | 
			
		||||
        RedirectConfig:
 | 
			
		||||
          Protocol: HTTPS
 | 
			
		||||
          Port: 443
 | 
			
		||||
          Host: '#{host}'
 | 
			
		||||
          Path: '/#{path}'
 | 
			
		||||
          Query: '#{query}'
 | 
			
		||||
          StatusCode: HTTP_301
 | 
			
		||||
      LoadBalancerArn: !Ref PublicALB
 | 
			
		||||
      Port: 80
 | 
			
		||||
      Protocol: HTTP
 | 
			
		||||
 | 
			
		||||
Outputs:
 | 
			
		||||
  AdminPortalTargetGroup:
 | 
			
		||||
    Description: ""
 | 
			
		||||
    Value: !Ref AdminPortalTargetGroup
 | 
			
		||||
  HttpApiTargetGroup:
 | 
			
		||||
    Description: ""
 | 
			
		||||
    Value: !Ref HttpApiTargetGroup
 | 
			
		||||
  GRpcApiTargetGroup:
 | 
			
		||||
    Description: ""
 | 
			
		||||
    Value: !Ref GRpcApiTargetGroup
 | 
			
		||||
  GRpcEApiTargetGroup:
 | 
			
		||||
    Description: ""
 | 
			
		||||
    Value: !Ref GRpcEApiTargetGroup
 | 
			
		||||
  PublicNlbDnsName:
 | 
			
		||||
    Description: ""
 | 
			
		||||
    Value: !GetAtt PublicNLB.DNSName
 | 
			
		||||
  PublicAlbDnsName:
 | 
			
		||||
    Description: ""
 | 
			
		||||
    Value: !GetAtt PublicALB.DNSName
 | 
			
		||||
@ -126,8 +126,8 @@ Resources:
 | 
			
		||||
        environment: !Ref environment
 | 
			
		||||
        Domain: !Ref Domain
 | 
			
		||||
        SubDomain: !Ref SubDomain
 | 
			
		||||
        NakamaDns: !GetAtt PublicNLB.DNSName
 | 
			
		||||
        AdminDns: !GetAtt PublicALB.DNSName
 | 
			
		||||
        NakamaDns: !GetAtt LoadBalancing.Outputs.PublicNlbDnsName
 | 
			
		||||
        AdminDns: !GetAtt LoadBalancing.Outputs.PublicAlbDnsName
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  #----------
 | 
			
		||||
@ -151,202 +151,16 @@ Resources:
 | 
			
		||||
  #-----------------
 | 
			
		||||
  # Load Balancing 
 | 
			
		||||
  #-----------------
 | 
			
		||||
 | 
			
		||||
  #-- Network Load Balancer --#
 | 
			
		||||
  PublicNLB:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
 | 
			
		||||
  LoadBalancing:
 | 
			
		||||
    Type: AWS::CloudFormation::Stack
 | 
			
		||||
    Properties:
 | 
			
		||||
      Type: network
 | 
			
		||||
      LoadBalancerAttributes:
 | 
			
		||||
        - Key: deletion_protection.enabled
 | 
			
		||||
          Value: false
 | 
			
		||||
      Scheme: internet-facing
 | 
			
		||||
      Subnets: !Split [",", !Ref PublicSubnets]
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub "Nakama-${environment}-NLB"
 | 
			
		||||
        - Key: environment
 | 
			
		||||
          Value: !Ref environment
 | 
			
		||||
 | 
			
		||||
  # Target group for HTTP api
 | 
			
		||||
  HttpApiTargetGroup:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
 | 
			
		||||
    Properties:
 | 
			
		||||
      Port: 7350
 | 
			
		||||
      Protocol: TCP
 | 
			
		||||
      TargetGroupAttributes:
 | 
			
		||||
        - Key: deregistration_delay.timeout_seconds
 | 
			
		||||
          Value: '20'
 | 
			
		||||
      VpcId: !Ref 'VpcId'
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub 'nakama-http-${release}'
 | 
			
		||||
 | 
			
		||||
  # Listener for HTTP
 | 
			
		||||
  HttpApiNlbListener:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::Listener
 | 
			
		||||
    Properties:
 | 
			
		||||
      DefaultActions:
 | 
			
		||||
        - Type: forward
 | 
			
		||||
          TargetGroupArn: !Ref HttpApiTargetGroup
 | 
			
		||||
      LoadBalancerArn: !Ref PublicNLB
 | 
			
		||||
      Port: 7350
 | 
			
		||||
      Protocol: TCP
 | 
			
		||||
 | 
			
		||||
  # Target group for gRPC API
 | 
			
		||||
  GRpcApiTargetGroup:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
 | 
			
		||||
    Properties:
 | 
			
		||||
      Port: 7349
 | 
			
		||||
      Protocol: TCP_UDP
 | 
			
		||||
      TargetGroupAttributes:
 | 
			
		||||
        - Key: deregistration_delay.timeout_seconds
 | 
			
		||||
          Value: '20'
 | 
			
		||||
      VpcId: !Ref 'VpcId'
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub 'nakama-GRpc-${release}'
 | 
			
		||||
 | 
			
		||||
  # Listener for gRPC API
 | 
			
		||||
  GRpcNlbListener:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::Listener
 | 
			
		||||
    Properties:
 | 
			
		||||
      DefaultActions:
 | 
			
		||||
        - Type: forward
 | 
			
		||||
          TargetGroupArn: !Ref GRpcApiTargetGroup
 | 
			
		||||
      LoadBalancerArn: !Ref PublicNLB
 | 
			
		||||
      Port: 7349
 | 
			
		||||
      Protocol: TCP_UDP
 | 
			
		||||
 | 
			
		||||
  # Target group for gRPC embeded console
 | 
			
		||||
  GRpcEApiTargetGroup:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
 | 
			
		||||
    Properties:
 | 
			
		||||
      Port: 7348
 | 
			
		||||
      Protocol: TCP_UDP
 | 
			
		||||
      TargetGroupAttributes:
 | 
			
		||||
        - Key: deregistration_delay.timeout_seconds
 | 
			
		||||
          Value: '20'
 | 
			
		||||
      VpcId: !Ref 'VpcId'
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub 'nakama-GRpc-${release}'
 | 
			
		||||
 | 
			
		||||
  # Listener for gRPC embeded console
 | 
			
		||||
  GRpcENlbListener:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::Listener
 | 
			
		||||
    Properties:
 | 
			
		||||
      DefaultActions:
 | 
			
		||||
        - Type: forward
 | 
			
		||||
          TargetGroupArn: !Ref GRpcEApiTargetGroup
 | 
			
		||||
      LoadBalancerArn: !Ref PublicNLB
 | 
			
		||||
      Port: 7348
 | 
			
		||||
      Protocol: TCP_UDP
 | 
			
		||||
 | 
			
		||||
  #-- Application Load Balancer --#
 | 
			
		||||
  PublicALB:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
 | 
			
		||||
    Properties:
 | 
			
		||||
      Type: application
 | 
			
		||||
      LoadBalancerAttributes:
 | 
			
		||||
        - Key: deletion_protection.enabled
 | 
			
		||||
          Value: false
 | 
			
		||||
        - Key: idle_timeout.timeout_seconds
 | 
			
		||||
          Value: 60
 | 
			
		||||
      Scheme: internet-facing
 | 
			
		||||
      SecurityGroups:
 | 
			
		||||
        - !Ref AlbSecurityGroup
 | 
			
		||||
      Subnets: !Split [",", !Ref PublicSubnets]
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub "Nakama-${environment}-ALB"
 | 
			
		||||
        - Key: environment
 | 
			
		||||
          Value: !Ref environment
 | 
			
		||||
 | 
			
		||||
  AlbSecurityGroup:
 | 
			
		||||
    Type: AWS::EC2::SecurityGroup
 | 
			
		||||
    Properties:
 | 
			
		||||
      GroupDescription: ECS Allowed Ports
 | 
			
		||||
      VpcId: !Ref VpcId
 | 
			
		||||
      SecurityGroupIngress:
 | 
			
		||||
        - IpProtocol: icmp
 | 
			
		||||
          FromPort: "-1"
 | 
			
		||||
          ToPort: "-1"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
        - IpProtocol: tcp
 | 
			
		||||
          FromPort: "443"
 | 
			
		||||
          ToPort: "443"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
        - IpProtocol: tcp
 | 
			
		||||
          FromPort: "80"
 | 
			
		||||
          ToPort: "80"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
      SecurityGroupEgress:
 | 
			
		||||
        - IpProtocol: icmp
 | 
			
		||||
          FromPort: "-1"
 | 
			
		||||
          ToPort: "-1"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
        - IpProtocol: tcp
 | 
			
		||||
          FromPort: "0"
 | 
			
		||||
          ToPort: "65535"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
        - IpProtocol: udp
 | 
			
		||||
          FromPort: "0"
 | 
			
		||||
          ToPort: "65535"
 | 
			
		||||
          CidrIp: 0.0.0.0/0
 | 
			
		||||
 | 
			
		||||
  # Target group for admin portal port
 | 
			
		||||
  AdminPortalTargetGroup:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
 | 
			
		||||
    Properties:
 | 
			
		||||
      HealthCheckIntervalSeconds: 30
 | 
			
		||||
      HealthCheckProtocol: HTTP
 | 
			
		||||
      HealthCheckTimeoutSeconds: 15
 | 
			
		||||
      HealthyThresholdCount: 2
 | 
			
		||||
      UnhealthyThresholdCount: 2
 | 
			
		||||
      Matcher:
 | 
			
		||||
        HttpCode: '200'
 | 
			
		||||
      HealthCheckPath: '/'
 | 
			
		||||
      Port: 7351
 | 
			
		||||
      Protocol: HTTP
 | 
			
		||||
      TargetGroupAttributes:
 | 
			
		||||
        - Key: deregistration_delay.timeout_seconds
 | 
			
		||||
          Value: '20'
 | 
			
		||||
      VpcId: !Ref 'VpcId'
 | 
			
		||||
      Tags:
 | 
			
		||||
        - Key: Name
 | 
			
		||||
          Value: !Sub 'nakama-${release}'
 | 
			
		||||
 | 
			
		||||
  # HTTPS for Admin Portal
 | 
			
		||||
  AdminPortalAlbListener:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::Listener
 | 
			
		||||
    Properties:
 | 
			
		||||
      Certificates:
 | 
			
		||||
        - CertificateArn: !Ref PortalCertificate
 | 
			
		||||
      DefaultActions:
 | 
			
		||||
        - Type: forward
 | 
			
		||||
          TargetGroupArn: !Ref AdminPortalTargetGroup
 | 
			
		||||
      LoadBalancerArn: !Ref PublicALB
 | 
			
		||||
      Port: 443
 | 
			
		||||
      Protocol: HTTPS
 | 
			
		||||
 | 
			
		||||
  # Redirect HTTP -> HTTPS
 | 
			
		||||
  AdminPortalRedirectAlbListener:
 | 
			
		||||
    Type: AWS::ElasticLoadBalancingV2::Listener
 | 
			
		||||
    Properties:
 | 
			
		||||
      DefaultActions:
 | 
			
		||||
      - Type: redirect
 | 
			
		||||
        RedirectConfig:
 | 
			
		||||
          Protocol: HTTPS
 | 
			
		||||
          Port: 443
 | 
			
		||||
          Host: '#{host}'
 | 
			
		||||
          Path: '/#{path}'
 | 
			
		||||
          Query: '#{query}'
 | 
			
		||||
          StatusCode: HTTP_301
 | 
			
		||||
      LoadBalancerArn: !Ref PublicALB
 | 
			
		||||
      Port: 80
 | 
			
		||||
      Protocol: HTTP
 | 
			
		||||
      
 | 
			
		||||
      TemplateURL: !Sub 'https://s3.${AWS::Region}.amazonaws.com/sumu-stacks/${release}/cloudformation/nakama/load_balancing.yaml'
 | 
			
		||||
      Parameters:
 | 
			
		||||
        environment: !Ref environment
 | 
			
		||||
        release: !Ref release
 | 
			
		||||
        VpcId: !Ref VpcId
 | 
			
		||||
        PublicSubnets: !Ref PublicSubnets
 | 
			
		||||
        PortalCertificate: !Ref PortalCertificate
 | 
			
		||||
 | 
			
		||||
  #-------------------
 | 
			
		||||
  # ECS Task & Service
 | 
			
		||||
@ -364,7 +178,7 @@ Resources:
 | 
			
		||||
        NakamaPasswordOverride: !Ref NakamaPasswordOverride
 | 
			
		||||
 | 
			
		||||
  EcsService:
 | 
			
		||||
    DependsOn: AdminPortalAlbListener
 | 
			
		||||
    DependsOn: LoadBalancing
 | 
			
		||||
    Type: AWS::ECS::Service
 | 
			
		||||
    Properties:
 | 
			
		||||
      Cluster: !Ref EcsCluster
 | 
			
		||||
@ -373,13 +187,13 @@ Resources:
 | 
			
		||||
      LoadBalancers:  
 | 
			
		||||
        - ContainerName: "nakama"
 | 
			
		||||
          ContainerPort: 7351
 | 
			
		||||
          TargetGroupArn: !Ref AdminPortalTargetGroup
 | 
			
		||||
          TargetGroupArn: !GetAtt LoadBalancing.Outputs.AdminPortalTargetGroup
 | 
			
		||||
        - ContainerName: "nakama"
 | 
			
		||||
          ContainerPort: 7350
 | 
			
		||||
          TargetGroupArn: !Ref HttpApiTargetGroup
 | 
			
		||||
          TargetGroupArn: !GetAtt LoadBalancing.Outputs.HttpApiTargetGroup
 | 
			
		||||
        - ContainerName: "nakama"
 | 
			
		||||
          ContainerPort: 7349
 | 
			
		||||
          TargetGroupArn: !Ref GRpcApiTargetGroup
 | 
			
		||||
          TargetGroupArn: !GetAtt LoadBalancing.Outputs.GRpcApiTargetGroup
 | 
			
		||||
        - ContainerName: "nakama"
 | 
			
		||||
          ContainerPort: 7348
 | 
			
		||||
          TargetGroupArn: !Ref GRpcEApiTargetGroup
 | 
			
		||||
          TargetGroupArn: !GetAtt LoadBalancing.Outputs.GRpcEApiTargetGroup
 | 
			
		||||
		Reference in New Issue
	
	Block a user