[JAWS-UG CLI] Elasticsearch Service:#3 ドメインの削除

AWS CLIを利用して、Elasticsearch Serviceドメインを削除してみます。


前提条件
========


Elasticsearch Serviceへの権限
-----------------------------

Elasticsearch Serviceに対してフル権限があること。


AWS CLIのバージョン
-------------------

以下のバージョンで動作確認済

* AWS CLI 1.10.17

```bash:コマンド:
      aws --version
```

結果(例):

      aws-cli/1.10.19 Python/2.7.10 Darwin/15.4.0 botocore/1.4.10


0. 準備
=======


0.1. リージョンの決定
---------------------

利用するリージョンを決めます。 (カレントユーザが利用するカレントリージョンも切り変わります。)

```bash:変数の設定(東京リージョンの場合):
export AWS_DEFAULT_REGION='ap-northeast-1'
```


0.2. プロファイルの確認
-----------------------

プロファイルが想定のものになっていることを確認します。

```bash:コマンド:
aws configure list
```

結果(例)

            Name                    Value             Type    Location
            ----                    -----             ----    --------
         profile         es-prjz-mbp13        env    AWS_DEFAULT_PROFILE
      access_key     ****************XXXX shared-credentials-file
      secret_key     ****************XXXX shared-credentials-file
          region                         ap-northeast-1  env    AWS_DEFAULT_REGION

AssumeRoleを利用している場合はprofileが '<not set>'と表示されます。 それ以外のときにprofileが '<not set>' と表示される場合は、以下を実行してください。

```bash:変数の設定:
export AWS_DEFAULT_PROFILE=<IAMユーザ名>
```


0.3. ドメイン名の決定
---------------------

対象となるドメインの名前を指定します。

```bash:変数の設定:
ES_DOMAIN_NAME="handson-esdomain-$(date +%Y%m%d)" \
  && echo ${ES_DOMAIN_NAME}
```

結果(例):

      handson-esdomain-20160411


1. 事前作業
===========


変数の確認
----------

```bash:変数の確認:
cat << ETX

  ES_DOMAIN_NAME: ${ES_DOMAIN_NAME}

ETX
```

```bash:コマンド:
aws es describe-elasticsearch-domain \
  --domain-name ${ES_DOMAIN_NAME}
```

結果(例):

      {
        "DomainStatus": {
          "ElasticsearchClusterConfig": {
              "DedicatedMasterEnabled": false,
              "InstanceCount": 1,
              "ZoneAwarenessEnabled": false,
              "InstanceType": "t2.micro.elasticsearch"
          },
          "DomainId": "XXXXXXXXXXXX/handson-esdomain-20160411",
          "Created": true,
          "Deleted": false,
          "EBSOptions": {
              "Iops": 0,
              "VolumeSize": 10,
              "VolumeType": "gp2",
              "EBSEnabled": true
          },
          "Processing": true,
          "DomainName": "handson-esdomain-20160411",
          "SnapshotOptions": {
              "AutomatedSnapshotStartHour": 0
          },
          "AccessPolicies": "",
          "AdvancedOptions": {
              "rest.action.multi.allow_explicit_index": "true"
          },
          "ARN": "arn:aws:es:ap-northeast-1:XXXXXXXXXXXX:domain/handson-esdomain-20160411"
        }
      }


2. ドメインの削除
=================

```bash:コマンド:
aws es delete-elasticsearch-domain \
  --domain-name ${ES_DOMAIN_NAME}
```

結果(例):

      {
        "DomainStatus": {
          "ElasticsearchClusterConfig": {
              "DedicatedMasterEnabled": false,
              "InstanceCount": 1,
              "ZoneAwarenessEnabled": false,
              "InstanceType": "t2.micro.elasticsearch"
          },
          "Endpoint": "search-handson-esdomain-20160411-ucrrm4oydimwbl2vr47anvr7dm.ap-northeast-1.es.amazonaws.com",
          "Created": true,
          "Deleted": true,
          "DomainName": "handson-esdomain-20160411",
          "EBSOptions": {
              "Iops": 0,
              "VolumeSize": 10,
              "VolumeType": "gp2",
              "EBSEnabled": true
          },
          "SnapshotOptions": {
              "AutomatedSnapshotStartHour": 0
          },
          "DomainId": "XXXXXXXXXXXX/handson-esdomain-20160411",
          "AccessPolicies": "{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":"*","Action":"es:*","Resource":"arn:aws:es:ap-northeast-1:XXXXXXXXXXXX:domain/handson-esdomain-20160411/*"}]}",
          "Processing": true,
          "AdvancedOptions": {
              "rest.action.multi.allow_explicit_index": "true"
          },
          "ARN": "arn:aws:es:ap-northeast-1:XXXXXXXXXXXX:domain/handson-esdomain-20160411"
        }
      }


3. 事後作業
===========

```bash:コマンド:
aws es describe-elasticsearch-domain-config \
  --domain-name ${ES_DOMAIN_NAME}
```

結果(例):

  A client error (ResourceNotFoundException) occurred when calling the DescribeElasticsearchDomainConfig operation: Domain not found: handson-esdomain-20160411


完了
====

以上で、Elasticsearch Serviceドメインの削除が完了しました。