diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,21 @@
 # Change Log
 
+## [1.4.4](https://github.com/brendanhay/amazonka/tree/1.4.4)
+Released: **23 October, 2016**, Compare: [1.4.3](https://github.com/brendanhay/amazonka/compare/1.4.3...1.4.4)
+
+### Fixed [\#306](https://github.com/brendanhay/amazonka/pull/306)
+
+- Kinesis `SharedLevelMetrics` now correctly deserializes empty responses. [\#306](https://github.com/brendanhay/amazonka/pull/306)
+
+### Changed
+
+- `newEnv` no longer takes `Region` as a parameter and instead defaults to `us-east-1`
+  per other SDK behaviour. The new `Env` can be configured using the `envRegion` lens
+  or the `within` combinator.
+- Region is now discovered via the `InstanceIdentity` metadata document. [\#308](https://github.com/brendanhay/amazonka/pull/308)
+- Region can now be overridden via the `AWS_REGION` environment variable. [\#308](https://github.com/brendanhay/amazonka/pull/308)
+
+
 ## [1.4.3](https://github.com/brendanhay/amazonka/tree/1.4.3)
 Released: **09 June, 2016**, Compare: [1.4.2](https://github.com/brendanhay/amazonka/compare/1.4.2...1.4.3)
 
diff --git a/amazonka.cabal b/amazonka.cabal
--- a/amazonka.cabal
+++ b/amazonka.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka
-version:               1.4.4
+version:               1.4.4.1
 synopsis:              Comprehensive Amazon Web Services SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
diff --git a/src/Network/AWS/EC2/Metadata.hs b/src/Network/AWS/EC2/Metadata.hs
--- a/src/Network/AWS/EC2/Metadata.hs
+++ b/src/Network/AWS/EC2/Metadata.hs
@@ -44,15 +44,15 @@
     , devpayProductCodes
     , billingProducts
     , version
-    , privateIP
+    , privateIp
     , availabilityZone
     , region
-    , instanceID
+    , instanceId
     , instanceType
-    , accountID
-    , imageID
-    , kernelID
-    , ramdiskID
+    , accountId
+    , imageId
+    , kernelId
+    , ramdiskId
     , architecture
     ) where
 
@@ -343,15 +343,15 @@
     { _devpayProductCodes :: Maybe Text
     , _billingProducts    :: Maybe Text
     , _version            :: Text
-    , _privateIP          :: Text
+    , _privateIp          :: Text
     , _availabilityZone   :: Text
     , _region             :: !Region
-    , _instanceID         :: Text
+    , _instanceId         :: Text
     , _instanceType       :: Text
-    , _accountID          :: Text
-    , _imageID            :: Text
-    , _kernelID           :: Text
-    , _ramdiskID          :: Maybe Text
+    , _accountId          :: Text
+    , _imageId            :: Text
+    , _kernelId           :: Text
+    , _ramdiskId          :: Maybe Text
     , _architecture       :: Text
     } deriving (Eq, Show)
 
@@ -364,8 +364,8 @@
 version :: Lens' IdentityDocument Text
 version = lens _version (\s a -> s { _version = a })
 
-privateIP :: Lens' IdentityDocument Text
-privateIP = lens _privateIP (\s a -> s { _privateIP = a })
+privateIp :: Lens' IdentityDocument Text
+privateIp = lens _privateIp (\s a -> s { _privateIp = a })
 
 availabilityZone :: Lens' IdentityDocument Text
 availabilityZone = lens _availabilityZone (\s a -> s { _availabilityZone = a })
@@ -373,59 +373,59 @@
 region :: Lens' IdentityDocument Region
 region = lens _region (\s a -> s { _region = a })
 
-instanceID :: Lens' IdentityDocument Text
-instanceID = lens _instanceID (\s a -> s { _instanceID = a })
+instanceId :: Lens' IdentityDocument Text
+instanceId = lens _instanceId (\s a -> s { _instanceId = a })
 
 instanceType :: Lens' IdentityDocument Text
 instanceType = lens _instanceType (\s a -> s { _instanceType = a })
 
-accountID :: Lens' IdentityDocument Text
-accountID = lens _accountID (\s a -> s { _accountID = a })
+accountId :: Lens' IdentityDocument Text
+accountId = lens _accountId (\s a -> s { _accountId = a })
 
-imageID :: Lens' IdentityDocument Text
-imageID = lens _imageID (\s a -> s { _imageID = a })
+imageId :: Lens' IdentityDocument Text
+imageId = lens _imageId (\s a -> s { _imageId = a })
 
-kernelID :: Lens' IdentityDocument Text
-kernelID = lens _kernelID (\s a -> s { _kernelID = a })
+kernelId :: Lens' IdentityDocument Text
+kernelId = lens _kernelId (\s a -> s { _kernelId = a })
 
-ramdiskID :: Lens' IdentityDocument (Maybe Text)
-ramdiskID = lens _ramdiskID (\s a -> s { _ramdiskID = a })
+ramdiskId :: Lens' IdentityDocument (Maybe Text)
+ramdiskId = lens _ramdiskId (\s a -> s { _ramdiskId = a })
 
 architecture :: Lens' IdentityDocument Text
 architecture = lens _architecture (\s a -> s { _architecture = a })
 
 instance FromJSON IdentityDocument where
-    parseJSON = withObject "dynamic/instance-identity/document" $ \o ->
-        IdentityDocument
-            <$> o .:? "devpayProductCodes"
-            <*> o .:? "availabilityZone"
-            <*> o .:  "privateIp"
-            <*> o .:  "version"
-            <*> o .:  "region"
-            <*> o .:  "instanceId"
-            <*> o .:  "billingProducts"
-            <*> o .:  "instanceType"
-            <*> o .:  "accountId"
-            <*> o .:  "imageId"
-            <*> o .:  "kernelId"
-            <*> o .:? "ramdiskId"
-            <*> o .:  "architecture"
+    parseJSON = withObject "dynamic/instance-identity/document" $ \o -> do
+            _devpayProductCodes <- o .:? "devpayProductCodes"
+            _billingProducts    <- o .:?  "billingProducts"
+            _privateIp          <- o .:  "privateIp"
+            _version            <- o .:  "version"
+            _availabilityZone   <- o .: "availabilityZone"
+            _region             <- o .:  "region"
+            _instanceId         <- o .:  "instanceId"
+            _instanceType       <- o .:  "instanceType"
+            _accountId          <- o .:  "accountId"
+            _imageId            <- o .:  "imageId"
+            _kernelId           <- o .:  "kernelId"
+            _ramdiskId          <- o .:? "ramdiskId"
+            _architecture       <- o .:  "architecture"
+            pure IdentityDocument{..}
 
 instance ToJSON IdentityDocument where
     toJSON IdentityDocument{..} =
         object
             [ "devpayProductCodes" .= _devpayProductCodes
-            , "availabilityZone"   .= _availabilityZone
-            , "privateIp"          .= _privateIP
+            , "billingProducts"    .= _billingProducts
+            , "privateIp"          .= _privateIp
             , "version"            .= _version
+            , "availabilityZone"   .= _availabilityZone
             , "region"             .= _region
-            , "instanceId"         .= _instanceID
-            , "billingProducts"    .= _billingProducts
+            , "instanceId"         .= _instanceId
             , "instanceType"       .= _instanceType
-            , "accountId"          .= _accountID
-            , "imageId"            .= _imageID
-            , "kernelId"           .= _kernelID
-            , "ramdiskId"          .= _ramdiskID
+            , "accountId"          .= _accountId
+            , "imageId"            .= _imageId
+            , "kernelId"           .= _kernelId
+            , "ramdiskId"          .= _ramdiskId
             , "architecture"       .= _architecture
             ]
 
