0

定製VPC我已經嘗試按照這個特定文檔配置TCP傳遞一個可彈性青苗環境的負載均衡與配置文件(.ebextensions)

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-tcp-passthrough.html

沒有運氣我的特殊需要。需要的是從代理服務器到ELB的第4層TCP傳遞,直到Tomcat後端才終止SSL。入口端口是TCP 443,出口是8443.還需要使用自定義VPC而不是默認值。這怎麼能通過配置文件來完成?

回答

2

我可以用下面的配置文件來解決:

HTTPS的實例balancer.config

{ 
     "Resources": { 
      "AWSEBSecurityGroup": { 
       "Type": "AWS::EC2::SecurityGroup", 
       "Properties": { 
        "VpcId": "vpc-xxxxxxxx", 
        "GroupDescription": "EC28443Ingress", 
        "SecurityGroupIngress": [ 
         { 
          "IpProtocol": "tcp", 
          "FromPort": 8443, 
          "ToPort": 8443, 
          "CidrIp": "0.0.0.0/0" 
         } 
        ] 
       } 
      }, 
      "AWSEBLoadBalancerSecurityGroup": { 
       "Type": "AWS::EC2::SecurityGroup", 
       "Properties": { 
        "VpcId": "vpc-xxxxxxxx", 
        "GroupDescription": "ELB443and8443Ingress", 
        "SecurityGroupIngress": [ 
         { 
          "IpProtocol": "tcp", 
          "FromPort": 443, 
          "ToPort": 443, 
          "CidrIp": "0.0.0.0/0" 
         } 
        ], 
        "SecurityGroupEgress": [ 
         { 
          "IpProtocol": "tcp", 
          "FromPort": 8443, 
          "ToPort": 8443, 
          "CidrIp": "0.0.0.0/0" 
         } 
        ] 
       } 
      }, 
      "AWSEBLoadBalancer": { 
       "Type": "AWS::ElasticLoadBalancing::LoadBalancer", 
       "Properties": { 
        "Listeners": [ 
         { 
          "LoadBalancerPort": 443, 
          "Protocol": "TCP", 
          "InstancePort": 8443, 
          "InstanceProtocol": "TCP" 
         } 
        ], 
        "SecurityGroups": [ 
         { 
          "Fn::GetAtt": [ 
           "AWSEBLoadBalancerSecurityGroup", 
           "GroupId" 
          ] 
         } 
        ] 
       } 
      } 
     } 
    } 

HTTPS-LB-passthrough.config

{ 
     "option_settings": { 
     "aws:elb:listener:443": { 
      "ListenerProtocol": "TCP", 
      "InstancePort": 8443, 
      "InstanceProtocol": "TCP" 
     }, 
     "aws:elb:healthcheck": { 
      "Target": "TCP:8443" 
     } 
     } 
    } 

這大概可以用Terraform等軟件更容易完成,但對某些人來說這可能不是一種選擇。

+0

你會認爲A)這是一個常見的用例,B)AWS提供的文檔將包含這樣一個例子。我一整天都在努力讓自己的例子與Play一起工作,因爲它不是以root身份啓動的,因此可以訪問默認端口 - ergo必須精確地執行上述操作 - 以虛擬方式使用您的文件並立即工作!謝謝。 – Techmag

+0

該死!從頭開始 - 結果我意外地連接到了ec2實例,而不是前端負載均衡器。好像你已經讓實例在端口443上以某種方式提供服務(如果我可以讓ELB與之交談,這可能是有用的 - 完全不確定證書是如何提供的(正確地我可以添加),但是它是以某種方式)...回頭撞門...... – Techmag