1

我有一个 Beanstalk 应用程序,默认情况下它有一个 app_name.elasticbeanstalk.com 域名。

我想要一个像 www.app_name.com 这样的域名,可以通过 bowser 访问,并采取以下步骤。

  1. 注册域名 app_name.com
  2. 设置www.app_name.com为 ELB 的公共 DNS 的 CNAME。

这样,我就可以通过浏览器访问www.app_name.com了。但是,一旦浏览器被加载,URL 突然变为 app_name.elasticbeanstalk.com

我不想app_name.elasticbeanstalk.com向任何人展示。我可以只使用 www.app_name.com 吗?如何?

请帮帮我。

4

1 回答 1

5

您可以使用Route53CloudFormation来做到这一点。为此,您将使用 CloudFormation 模板中的 Elastic Beanstalk 资源来创建您的 Elastic Beanstalk 堆栈。您还可以使用 Route53 资源来创建所需的域名。然后,在您的 Route53 资源中,您将创建一个映射到您的 Elastic Beanstalk 端点的别名。

这可能看起来像:

"Resources" : {
  "DNS" : {
    "Type" : "AWS::Route53::RecordSetGroup",
    "Properties" : {
      "HostedZoneName" : "example.com",
      "Comment" : "CNAME alias targeted to Elastic Beanstalk endpoint.",
      "RecordSets" : [
        {
          "Name" : "example.example.com",
          "Type" : "CNAME",
          "TTL"  : "900",
          "ResourceRecords" : [{ "Fn::GetAtt" : ["sampleEnvironment","EndpointURL"] }]
        }]
    }
  },

   "sampleApplication" : {
     "Type" : "AWS::ElasticBeanstalk::Application",
     "Properties" : {
       "Description" : "AWS Elastic Beanstalk Ruby Sample Application",
       "ApplicationVersions" : [{
         "VersionLabel" : "Initial Version",
         "Description" : "Version 1.0",
         "SourceBundle" : {
           "S3Bucket" : { "Fn::Join" : ["-", ["elasticbeanstalk-samples", { "Ref" : "AWS::Region" }]]},
           "S3Key" : "ruby-sample.zip"
         }
       }],
       "ConfigurationTemplates" : [{
         "TemplateName" : "DefaultConfiguration",
         "Description" : "Default Configuration Version 1.0 - with SSH access",
         "SolutionStackName" : "64bit Amazon Linux running Ruby 1.9.3",
         "OptionSettings" : [{
           "Namespace" : "aws:autoscaling:launchconfiguration",
           "OptionName" : "EC2KeyName",
           "Value" : { "Ref" : "KeyName" }
         }]
       }]
     }
   },
   "sampleEnvironment" : {
     "Type" : "AWS::ElasticBeanstalk::Environment",
     "Properties" : {
       "ApplicationName" : { "Ref" : "sampleApplication" },
        "Description" :  "AWS Elastic Beanstalk Environment running Ruby Sample Application",
        "TemplateName" : "DefaultConfiguration",
        "VersionLabel" : "Initial Version"
     }
   }
 },

可以在此处找到有关使用 CloudFormation 资源的更多信息,并且可以在此处找到示例模板

CloudFormation 使与资源的动态交互变得非常简单和干净……更不用说完全脚本化了 :)

于 2013-02-13T21:31:03.287 回答