diff --git a/aws-ec2.cabal b/aws-ec2.cabal
--- a/aws-ec2.cabal
+++ b/aws-ec2.cabal
@@ -1,5 +1,5 @@
 name:                aws-ec2
-version:             0.2
+version:             0.2.1
 synopsis:            AWS EC2/VPC, ELB and CloudWatch client library for Haskell
 license-file:        LICENSE
 license:             BSD3
@@ -15,7 +15,7 @@
 source-repository this
   type: git
   location: https://github.com/zalora/aws-ec2.git
-  tag: 0.2
+  tag: 0.2.1
 
 source-repository head
   type: git
@@ -81,6 +81,7 @@
     , Aws.Elb.Commands.DeregisterInstancesFromLoadBalancer
     , Aws.Elb.Commands.CreateLBCookieStickinessPolicy
     , Aws.Elb.Commands.SetLoadBalancerPoliciesOfListener
+    , Aws.Elb.Commands.ConfigureHealthCheck
 
   build-depends:
       base >=4 && <5
diff --git a/src/Aws/Elb.hs b/src/Aws/Elb.hs
--- a/src/Aws/Elb.hs
+++ b/src/Aws/Elb.hs
@@ -16,6 +16,8 @@
 
 , module Aws.Elb.Commands.CreateLBCookieStickinessPolicy
 , module Aws.Elb.Commands.SetLoadBalancerPoliciesOfListener
+
+, module Aws.Elb.Commands.ConfigureHealthCheck
 ) where
 
 import Aws.Core (Transaction)
@@ -35,3 +37,5 @@
 
 import Aws.Elb.Commands.CreateLBCookieStickinessPolicy
 import Aws.Elb.Commands.SetLoadBalancerPoliciesOfListener
+
+import Aws.Elb.Commands.ConfigureHealthCheck
diff --git a/src/Aws/Elb/Commands/ConfigureHealthCheck.hs b/src/Aws/Elb/Commands/ConfigureHealthCheck.hs
new file mode 100644
--- /dev/null
+++ b/src/Aws/Elb/Commands/ConfigureHealthCheck.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE TypeFamilies
+           , MultiParamTypeClasses
+           , FlexibleInstances
+           , OverloadedStrings
+           , TemplateHaskell
+           , RecordWildCards
+           #-}
+
+module Aws.Elb.Commands.ConfigureHealthCheck where
+
+import qualified Data.Text as T
+import Aws.Elb.TH
+
+data Target = TargetTCP Integer
+            | TargetSSL Integer
+            | TargetHTTP Integer Text
+            | TargetHTTPS Integer Text
+
+instance Show Target where
+  show (TargetTCP port) = "TCP:" ++ show port
+  show (TargetSSL port) = "SSL:" ++ show port
+  show (TargetHTTP port path) = "HTTP:" ++ show port ++ (T.unpack path)
+  show (TargetHTTPS port path) = "HTTPS:" ++ show port ++ (T.unpack path)
+
+data HealthCheck = HealthCheck { hc_target :: Target
+                               , hc_healthyThreshold :: Integer
+                               , hc_unhealthyThreshold :: Integer
+                               , hc_interval :: Integer
+                               , hc_timeout :: Integer -- ^ must be less than `hc_interval'
+                               } deriving (Show)
+
+data ConfigureHealthCheck = ConfigureHealthCheck { chc_name :: Text
+                                                 , chc_healthCheck :: HealthCheck
+                                                 }
+
+instance SignQuery ConfigureHealthCheck where
+    type ServiceConfiguration ConfigureHealthCheck = QueryAPIConfiguration
+    signQuery ConfigureHealthCheck{..} = elbSignQuery $ ($ chc_healthCheck) $ \HealthCheck{..} ->
+                                                    [ ("Action", qArg "ConfigureHealthCheck")
+                                                    , defVersion
+                                                    , ("LoadBalancerName", qArg chc_name)
+                                                    , ("HealthCheck.HealthyThreshold", qShow hc_healthyThreshold)
+                                                    , ("HealthCheck.UnhealthyThreshold", qShow hc_unhealthyThreshold)
+                                                    , ("HealthCheck.Target", qShow hc_target)
+                                                    , ("HealthCheck.Interval", qShow hc_interval)
+                                                    , ("HealthCheck.Timeout", qShow hc_timeout)
+                                                    ]
+
+elbValueTransaction ''ConfigureHealthCheck "ConfigureHealthCheckResult"
