From 47d9ad52c266698b3ff2b90a5e72bf68dbdf65ec Mon Sep 17 00:00:00 2001 From: Levi Campbell Date: Tue, 15 Jan 2013 14:55:30 -0700 Subject: [PATCH 01/13] Added an option to supply a war file during deployment. This fixes issue #26 --- src/leiningen/beanstalk.clj | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/leiningen/beanstalk.clj b/src/leiningen/beanstalk.clj index a6770c4..6592e22 100644 --- a/src/leiningen/beanstalk.clj +++ b/src/leiningen/beanstalk.clj @@ -40,6 +40,13 @@ (aws/s3-upload-file project path) (aws/create-app-version project filename) (aws/deploy-environment project env)) + (println (str "Environment '" env-name "' not defined!")))) + ([project env-name war-file] + (let [filename (war-filename war-file) + path war-file] + (aws/s3-upload-file project path) + (aws/create-app-version project filename) + (aws/deploy-environment project env)) (println (str "Environment '" env-name "' not defined!"))))) (defn terminate From 7495e4d05d5b076249c3fe530baa9311129b45b2 Mon Sep 17 00:00:00 2001 From: James Van Dyke Date: Thu, 22 Aug 2013 20:43:45 -0400 Subject: [PATCH 02/13] Add 'alias' to deployment name. Fix ability of pull request to use custom war. Fix name of JAR to match timestamp-based name of uploaded war. --- .gitignore | 3 +++ src/leiningen/beanstalk.clj | 17 ++++++++++------- src/leiningen/beanstalk/aws.clj | 33 +++++++++++++++++++++++---------- 3 files changed, 36 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 6c25c84..186d6e6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ pom.xml.asc lib classes /target +.iml +.idea/ +*.iml diff --git a/src/leiningen/beanstalk.clj b/src/leiningen/beanstalk.clj index 6592e22..a04edea 100644 --- a/src/leiningen/beanstalk.clj +++ b/src/leiningen/beanstalk.clj @@ -9,9 +9,9 @@ (defn default-environments [project] (let [project-name (:name project)] - [{:name "development" :cname-prefix (str project-name "-dev")} - {:name "staging" :cname-prefix (str project-name "-staging")} - {:name "production" :cname-prefix project-name}])) + [{:alias "development" :name (str project-name "-dev") :cname-prefix (str project-name "-dev")} + {:alias "staging" :name (str project-name "-staging") :cname-prefix (str project-name "-staging")} + {:alias "production" :name project-name :cname-prefix project-name}])) (defn project-environments [project] @@ -23,11 +23,13 @@ (defn get-project-env [project env-name] (->> (or (seq (project-environments project)) (default-environments project)) - (filter #(= (:name %) env-name)) + (filter #(or (= (:name %) env-name) (= (:alias %) env-name))) (first))) (defn war-filename [project] - (str (:name project) "-" (aws/app-version project) ".war")) + (if (nil? (:name project)) + (str (clojure.string/replace project #".war" "") "-" (aws/app-version project) ".war") + (str (:name project) "-" (aws/app-version project) ".war"))) (defn deploy "Deploy the current project to Amazon Elastic Beanstalk." @@ -42,9 +44,10 @@ (aws/deploy-environment project env)) (println (str "Environment '" env-name "' not defined!")))) ([project env-name war-file] - (let [filename (war-filename war-file) + (if-let [env (get-project-env project env-name)] + (let [filename (war-filename war-file) path war-file] - (aws/s3-upload-file project path) + (aws/s3-upload-file project path filename) (aws/create-app-version project filename) (aws/deploy-environment project env)) (println (str "Environment '" env-name "' not defined!"))))) diff --git a/src/leiningen/beanstalk/aws.clj b/src/leiningen/beanstalk/aws.clj index 5c9d149..e0ad587 100644 --- a/src/leiningen/beanstalk/aws.clj +++ b/src/leiningen/beanstalk/aws.clj @@ -52,7 +52,10 @@ (:name project))) (defn app-version [project] - (str (:version project) "-" current-timestamp)) + (if (nil? (:version project)) + (str current-timestamp) + (str (:version project) "-" current-timestamp))) + (defn s3-bucket-name [project] (or (-> project :aws :beanstalk :s3-bucket) @@ -88,15 +91,25 @@ (when-not (.doesBucketExist client bucket) (.createBucket client bucket region))) -(defn s3-upload-file [project filepath] - (let [bucket (s3-bucket-name project) - file (io/file filepath) - ep-desc (project-endpoint project s3-endpoints)] - (doto (AmazonS3Client. (credentials project)) - (.setEndpoint (:ep ep-desc)) - (create-bucket bucket (:region ep-desc)) - (.putObject bucket (.getName file) file)) - (println "Uploaded" (.getName file) "to S3 Bucket"))) +(defn s3-upload-file + ([project filepath] + (let [bucket (s3-bucket-name project) + file (io/file filepath) + ep-desc (project-endpoint project s3-endpoints)] + (doto (AmazonS3Client. (credentials project)) + (.setEndpoint (:ep ep-desc)) + (create-bucket bucket (:region ep-desc)) + (.putObject bucket (.getName file) file)) + (println "Uploaded" (.getName file) "to S3 Bucket"))) + ([project filepath filename] + (let [bucket (s3-bucket-name project) + file (io/file filepath) + ep-desc (project-endpoint project s3-endpoints)] + (doto (AmazonS3Client. (credentials project)) + (.setEndpoint (:ep ep-desc)) + (create-bucket bucket (:region ep-desc)) + (.putObject bucket filename file)) + (println "Uploaded" filename "to S3 Bucket")))) (defn- beanstalk-client [project] (doto (AWSElasticBeanstalkClient. (credentials project)) From 48dd17a07c7f7d4d572ccd6ad3f3b7c0d8cc7472 Mon Sep 17 00:00:00 2001 From: James Van Dyke Date: Thu, 22 Aug 2013 21:03:55 -0400 Subject: [PATCH 03/13] Add documentation for aliases and custom WAR deployment. --- README.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/README.md b/README.md index e585ce8..6653ad5 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,13 @@ using the following command: $ lein beanstalk deploy development +#### Custom WAR + +If you're so inclined, you can also deploy a custom WAR by passing the file +to the deploy command. + + $ lein beanstalk deploy development target/myproject.war + ### Info To get information about the application itself run @@ -186,6 +193,35 @@ environment ``` By default the CNAME prefix is `-`. +### Aliases + +If you deploy multiple services to Elastic Beanstalk, you'll realize +that environment names must be unique across all of your applications. +Aliases allow you to refer to a standard name across your projects, +while deploying to an environment named suing either the defaults or +what is supplied for `:name`. + + +Below are the defaults. +```clojure +:aws {:beanstalk {:environments [{:alias "development" + :name "myproject-dev"} + {:alias "staging" + :name "myproject-staging"} + {:alias "production" + :name "myproject"}] + ...} + ...} +``` + +You may refer to either the alias or the name when running lein-beanstalk +commands. + + $ lein beanstalk deploy development + $ lein beanstalk deploy myproject-dev + +Both of the above commands deploy to `myproject-dev.elasticbeanstalk.com` + ### Environment Variables You can specify environment variables that will be added to the system From 40651f3af18b14e38e36d64876ca24c134500579 Mon Sep 17 00:00:00 2001 From: Osbert Feng Date: Fri, 15 Mar 2013 13:44:36 -0700 Subject: [PATCH 04/13] Document how to choose an alternate stack and the likely choices. --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 6653ad5..d0969cd 100644 --- a/README.md +++ b/README.md @@ -239,6 +239,20 @@ If the environment variable name is a keyword, it is upper-cased and underscores ("_") are substituted for dashes ("-"). e.g. `:database-url` becomes `"DATABASE_URL"`. +### Choosing an alternate stack + +The default stack chosen is 32bit Amazon Linux running Tomcat 7. You +can customize the stack used: + + :aws {:beanstalk {:stack-name "64bit Amazon Linux running Tomcat 7"}} + +The [full list][4] of available stacks that you are likely to use: + +* 32bit Amazon Linux running Tomcat 7 +* 64bit Amazon Linux running Tomcat 7 +* 32bit Amazon Linux running Tomcat 6 +* 64bit Amazon Linux running Tomcat 6 + ### S3 Buckets [Amazon Elastic Beanstalk][1] uses @@ -283,3 +297,4 @@ application. e.g. for Compojure add [1]: http://aws.amazon.com/elasticbeanstalk [2]: http://aws.amazon.com [3]: http://aws.amazon.com/s3 +[4]: http://docs.aws.amazon.com/elasticbeanstalk/latest/APIReference/API_ListAvailableSolutionStacks.html \ No newline at end of file From 87a10707c8a91c219dded9d74983347ffbadb7d5 Mon Sep 17 00:00:00 2001 From: Osbert Feng Date: Fri, 15 Mar 2013 12:30:11 -0700 Subject: [PATCH 05/13] Support passthrough of additional ConfigurationOptionSettings. --- README.md | 17 ++++++++++++++++- src/leiningen/beanstalk/aws.clj | 10 +++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d0969cd..594edcc 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,20 @@ The [full list][4] of available stacks that you are likely to use: * 64bit Amazon Linux running Tomcat 7 * 32bit Amazon Linux running Tomcat 6 * 64bit Amazon Linux running Tomcat 6 +======= +### Configuring instance type, autoscaling, VPC, SSH, AMI, SSL + +You can customize many [other settings][5] on a per beanstalk environment +basis with an options key: + + :aws + {:beanstalk + {:environments + [{:name "dev" + :options {"aws:autoscaling:asg" {"MinSize" "1" "MaxSize" "1"} + "aws:autoscaling:launchconfiguration" {"InstanceType" "m1.medium" + "EC2KeyName" "mykey" + "ImageId" "ami-cbab67a2"}}}]}} ### S3 Buckets @@ -297,4 +311,5 @@ application. e.g. for Compojure add [1]: http://aws.amazon.com/elasticbeanstalk [2]: http://aws.amazon.com [3]: http://aws.amazon.com/s3 -[4]: http://docs.aws.amazon.com/elasticbeanstalk/latest/APIReference/API_ListAvailableSolutionStacks.html \ No newline at end of file +[4]: http://docs.aws.amazon.com/elasticbeanstalk/latest/APIReference/API_ListAvailableSolutionStacks.html +[5]: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html diff --git a/src/leiningen/beanstalk/aws.clj b/src/leiningen/beanstalk/aws.clj index e0ad587..6b8631d 100644 --- a/src/leiningen/beanstalk/aws.clj +++ b/src/leiningen/beanstalk/aws.clj @@ -164,6 +164,13 @@ key) value))) +(defn extra-options + [options] + (apply concat + (for [[namespace keyvals] options] + (for [[key value] keyvals] + (ConfigurationOptionSetting. namespace key value))))) + (defn create-environment [project env] (println (str "Creating '" (:name env) "' environment") "(this may take several minutes)") @@ -173,7 +180,8 @@ (.setApplicationName (app-name project)) (.setEnvironmentName (:name env)) (.setVersionLabel (app-version project)) - (.setOptionSettings (env-var-options project env)) + (.setOptionSettings (concat (env-var-options project env) + (extra-options (:options env)))) (.setCNAMEPrefix (:cname-prefix env)) (.setSolutionStackName (or (-> project :aws :beanstalk :stack-name) "32bit Amazon Linux running Tomcat 7"))))) From ac80b469eb73af778bbaed678230e2481eb7432a Mon Sep 17 00:00:00 2001 From: James Van Dyke Date: Thu, 22 Aug 2013 22:11:13 -0400 Subject: [PATCH 06/13] Fix alias problems with terminate. Use alias in cname creation. --- src/leiningen/beanstalk.clj | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/leiningen/beanstalk.clj b/src/leiningen/beanstalk.clj index a04edea..9adb5be 100644 --- a/src/leiningen/beanstalk.clj +++ b/src/leiningen/beanstalk.clj @@ -17,7 +17,7 @@ [project] (for [env (-> project :aws :beanstalk :environments)] (if (map? env) - (merge {:cname-prefix (str (:name project) "-" (:name env))} env) + (merge {:cname-prefix (str (:name project) "-" (or (:alias env) (:name env)))} env) {:name env, :cname-prefix (str (:name project) "-" env)}))) (defn get-project-env [project env-name] @@ -57,9 +57,10 @@ ([project] (println "Usage: lein beanstalk terminate ")) ([project env-name] - (if-not (get-project-env project env-name) - (println (str "Environment '" env-name "' not in project.clj")) - (aws/terminate-environment project env-name)))) + (let [name (:name (get-project-env project env-name))] + (if-not name + (println (str "Environment '" name "' not in project.clj")) + (aws/terminate-environment project name))))) (def app-info-indent "\n ") From 2942021b97bcc8489da8d6cb666418d7e1d3db76 Mon Sep 17 00:00:00 2001 From: James Van Dyke Date: Thu, 22 Aug 2013 23:17:07 -0400 Subject: [PATCH 07/13] Improve option inheritance. Allow options for AWS options and environment variables to be inherited from :aws :beanstalk for each environment. --- src/leiningen/beanstalk/aws.clj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/leiningen/beanstalk/aws.clj b/src/leiningen/beanstalk/aws.clj index 6b8631d..67aefcd 100644 --- a/src/leiningen/beanstalk/aws.clj +++ b/src/leiningen/beanstalk/aws.clj @@ -156,6 +156,7 @@ (defn env-var-options [project options] (for [[key value] (merge (default-env-vars project) + (-> project :aws :beanstalk :env) (:env options))] (ConfigurationOptionSetting. "aws:elasticbeanstalk:application:environment" @@ -181,7 +182,8 @@ (.setEnvironmentName (:name env)) (.setVersionLabel (app-version project)) (.setOptionSettings (concat (env-var-options project env) - (extra-options (:options env)))) + (extra-options (merge (-> project :aws :beanstalk :options) + (:options env))))) (.setCNAMEPrefix (:cname-prefix env)) (.setSolutionStackName (or (-> project :aws :beanstalk :stack-name) "32bit Amazon Linux running Tomcat 7"))))) From 96d75ef0c550c3fd704ef2c84595e1b6767e8424 Mon Sep 17 00:00:00 2001 From: James Van Dyke Date: Fri, 23 Aug 2013 09:40:19 -0400 Subject: [PATCH 08/13] Fix case with aliases where name would not be set. --- src/leiningen/beanstalk.clj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/leiningen/beanstalk.clj b/src/leiningen/beanstalk.clj index 9adb5be..7d30af9 100644 --- a/src/leiningen/beanstalk.clj +++ b/src/leiningen/beanstalk.clj @@ -17,7 +17,8 @@ [project] (for [env (-> project :aws :beanstalk :environments)] (if (map? env) - (merge {:cname-prefix (str (:name project) "-" (or (:alias env) (:name env)))} env) + (merge {:cname-prefix (str (:name project) "-" (or (:alias env) (:name env)))} + (merge {:name (or (:name env) (str (:name project) "-" (:alias env)))} env)) {:name env, :cname-prefix (str (:name project) "-" env)}))) (defn get-project-env [project env-name] From 6f38ebf833ea21ebdb9fe732e0b90306e0749d5b Mon Sep 17 00:00:00 2001 From: Joe Hosteny Date: Mon, 30 Dec 2013 16:56:16 -0500 Subject: [PATCH 09/13] Add support for Amazon's recently added worker tier. This requires the latest AWS Java SDK. --- README.md | 11 +++++++++++ project.clj | 2 +- src/leiningen/beanstalk/aws.clj | 34 +++++++++++++++++++++++---------- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 594edcc..5c50462 100644 --- a/README.md +++ b/README.md @@ -267,6 +267,16 @@ basis with an options key: "EC2KeyName" "mykey" "ImageId" "ami-cbab67a2"}}}]}} +### Configuring the application tier ### + +Amazon recently added support for [worker tiers][6], which are useful for running background tasks. +The default stack is built for a web application. To deploy as a worker, supply the following options +for the `:app-tier` key. + + :aws + {:beanstalk + {:app-tier {:name "Worker" :type "SQS/HTTP" :version "1.0"}}} + ### S3 Buckets [Amazon Elastic Beanstalk][1] uses @@ -313,3 +323,4 @@ application. e.g. for Compojure add [3]: http://aws.amazon.com/s3 [4]: http://docs.aws.amazon.com/elasticbeanstalk/latest/APIReference/API_ListAvailableSolutionStacks.html [5]: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html +[6]: http://aws.typepad.com/aws/2013/12/background-task-handling-for-aws-elastic-beanstalk.html \ No newline at end of file diff --git a/project.clj b/project.clj index fdb5175..339680d 100644 --- a/project.clj +++ b/project.clj @@ -2,6 +2,6 @@ :description "Leiningen plugin for Amazon's Elastic Beanstalk" :url "https://github.com/weavejester/lein-beanstalk" :dependencies [[org.clojure/clojure "1.2.1"] - [com.amazonaws/aws-java-sdk "1.3.31"] + [com.amazonaws/aws-java-sdk "1.6.10"] [lein-ring "0.8.2"]] :eval-in-leiningen true) diff --git a/src/leiningen/beanstalk/aws.clj b/src/leiningen/beanstalk/aws.clj index 67aefcd..68ce2cd 100644 --- a/src/leiningen/beanstalk/aws.clj +++ b/src/leiningen/beanstalk/aws.clj @@ -18,6 +18,7 @@ com.amazonaws.services.elasticbeanstalk.model.UpdateEnvironmentRequest com.amazonaws.services.elasticbeanstalk.model.S3Location com.amazonaws.services.elasticbeanstalk.model.TerminateEnvironmentRequest + com.amazonaws.services.elasticbeanstalk.model.EnvironmentTier com.amazonaws.services.s3.AmazonS3Client com.amazonaws.services.s3.model.Region)) @@ -51,6 +52,15 @@ (or (-> project :aws :beanstalk :app-name) (:name project))) +(defn app-tier [project] + (doto (EnvironmentTier.) + (.setName (or (-> project :aws :beanstalk :app-tier :name) + "WebServer")) + (.setType (or (-> project :aws :beanstalk :app-tier :type) + "Standard")) + (.setVersion (or (-> project :aws :beanstalk :app-tier :version) + "1.0")))) + (defn app-version [project] (if (nil? (:version project)) (str current-timestamp) @@ -177,16 +187,20 @@ "(this may take several minutes)") (.createEnvironment (beanstalk-client project) - (doto (CreateEnvironmentRequest.) - (.setApplicationName (app-name project)) - (.setEnvironmentName (:name env)) - (.setVersionLabel (app-version project)) - (.setOptionSettings (concat (env-var-options project env) - (extra-options (merge (-> project :aws :beanstalk :options) - (:options env))))) - (.setCNAMEPrefix (:cname-prefix env)) - (.setSolutionStackName (or (-> project :aws :beanstalk :stack-name) - "32bit Amazon Linux running Tomcat 7"))))) + (let [request (CreateEnvironmentRequest.)] + (doto request + (.setApplicationName (app-name project)) + (.setEnvironmentName (:name env)) + (.setTier (app-tier project)) + (.setVersionLabel (app-version project)) + (.setOptionSettings (concat (env-var-options project env) + (extra-options (merge (-> project :aws :beanstalk :options) + (:options env))))) + (.setSolutionStackName (or (-> project :aws :beanstalk :stack-name) + "32bit Amazon Linux running Tomcat 7"))) + (if (= (.getName (.getTier request)) "WebServer") + (.setCNAMEPrefix request (:cname-prefix env))) + request))) (defn update-environment-settings [project env options] (.updateEnvironment From d9e86f88428bdfb51e99b9bea4280f58ff9c93a6 Mon Sep 17 00:00:00 2001 From: Martin Kremers Date: Thu, 16 Jul 2015 20:45:41 +0200 Subject: [PATCH 10/13] Remove clojure from dependencies since this is a plugin --- project.clj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/project.clj b/project.clj index 339680d..602d304 100644 --- a/project.clj +++ b/project.clj @@ -1,7 +1,6 @@ (defproject lein-beanstalk "0.2.7" :description "Leiningen plugin for Amazon's Elastic Beanstalk" :url "https://github.com/weavejester/lein-beanstalk" - :dependencies [[org.clojure/clojure "1.2.1"] - [com.amazonaws/aws-java-sdk "1.6.10"] + :dependencies [[com.amazonaws/aws-java-sdk "1.6.10"] [lein-ring "0.8.2"]] :eval-in-leiningen true) From a61b2621be709ecd7c67f4e02d5cbd59145902ea Mon Sep 17 00:00:00 2001 From: Martin Kremers Date: Thu, 16 Jul 2015 20:46:39 +0200 Subject: [PATCH 11/13] Update lein-ring dependency to 0.9.6 --- project.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.clj b/project.clj index 602d304..58c229f 100644 --- a/project.clj +++ b/project.clj @@ -2,5 +2,5 @@ :description "Leiningen plugin for Amazon's Elastic Beanstalk" :url "https://github.com/weavejester/lein-beanstalk" :dependencies [[com.amazonaws/aws-java-sdk "1.6.10"] - [lein-ring "0.8.2"]] + [lein-ring "0.9.6"]] :eval-in-leiningen true) From 71ede918250963c670452b1e7e94e1eafdc9aa41 Mon Sep 17 00:00:00 2001 From: Martin Kremers Date: Thu, 16 Jul 2015 20:52:10 +0200 Subject: [PATCH 12/13] Update aws-java-sdk to 1.10.5.1 --- project.clj | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/project.clj b/project.clj index 58c229f..3330af1 100644 --- a/project.clj +++ b/project.clj @@ -1,6 +1,12 @@ (defproject lein-beanstalk "0.2.7" :description "Leiningen plugin for Amazon's Elastic Beanstalk" :url "https://github.com/weavejester/lein-beanstalk" - :dependencies [[com.amazonaws/aws-java-sdk "1.6.10"] + :dependencies [[com.amazonaws/aws-java-sdk "1.10.5.1"] + + ;; The dependencies prevent the runtime error: + ;; NoSuchMethodError JsonFactory.requiresPropertyOrdering()Z + [com.fasterxml.jackson.core/jackson-core "2.2.3"] + [com.fasterxml.jackson.core/jackson-databind "2.2.3"] + [lein-ring "0.9.6"]] :eval-in-leiningen true) From 34fb962a6f198a2b050934b942ff15b4d8b465e4 Mon Sep 17 00:00:00 2001 From: Martin Kremers Date: Thu, 16 Jul 2015 20:55:08 +0200 Subject: [PATCH 13/13] Support eu-central-1 EU_Frankfurt --- README.md | 2 +- src/leiningen/beanstalk/aws.clj | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c50462..6484555 100644 --- a/README.md +++ b/README.md @@ -304,7 +304,7 @@ The following regions are recognized: * `eu-west-1` * `us-west-1` * `us-west-2` - +* `eu-central-1` ## Trouble-Shooting diff --git a/src/leiningen/beanstalk/aws.clj b/src/leiningen/beanstalk/aws.clj index 68ce2cd..91607bc 100644 --- a/src/leiningen/beanstalk/aws.clj +++ b/src/leiningen/beanstalk/aws.clj @@ -78,6 +78,7 @@ {:us-east-1 (ep "s3.amazonaws.com" "US_Standard") :us-west-1 (ep "s3-us-west-1.amazonaws.com" "US_West") :us-west-2 (ep "s3-us-west-2.amazonaws.com" "US_West_2") + :eu-central-1 (ep "s3-eu-central-1.amazonaws.com" "EU_Frankfurt") :eu-west-1 (ep "s3-eu-west-1.amazonaws.com" "EU_Ireland") :ap-southeast-1 (ep "s3-ap-southeast-1.amazonaws.com" "AP_Singapore") :ap-southeast-2 (ep "s3-ap-southeast-2.amazonaws.com" "AP_Sydney") @@ -88,6 +89,7 @@ {:us-east-1 "elasticbeanstalk.us-east-1.amazonaws.com" :us-west-1 "elasticbeanstalk.us-west-1.amazonaws.com" :us-west-2 "elasticbeanstalk.us-west-2.amazonaws.com" + :eu-central-1 "elasticbeanstalk.eu-central-1.amazonaws.com" :eu-west-1 "elasticbeanstalk.eu-west-1.amazonaws.com" :ap-southeast-1 "elasticbeanstalk.ap-southeast-1.amazonaws.com" :ap-southeast-2 "elasticbeanstalk.ap-southeast-2.amazonaws.com"