AWS CLIを利用して、Elasticsearch Serviceドメインを削除してみます。
前提条件
Elasticsearch Serviceへの権限
Elasticsearch Serviceに対してフル権限があること。
AWS CLIのバージョン
以下のバージョンで動作確認済
- AWS CLI 1.10.17
コマンド
aws --version
結果(例):
aws-cli/1.10.19 Python/2.7.10 Darwin/15.4.0 botocore/1.4.10
- 準備
=======
0.1. リージョンの決定
利用するリージョンを決めます。 (カレントユーザが利用するカレントリージョンも切り変わります。)
変数の設定(東京リージョンの場合)
export AWS_DEFAULT_REGION='ap-northeast-1'
0.2. プロファイルの確認
プロファイルが想定のものになっていることを確認します。
コマンド
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が ''と表示されます。 それ以外のときにprofileが '' と表示される場合は、以下を実行してください。
変数の設定
export AWS_DEFAULT_PROFILE=<IAMユーザ名>
0.3. ドメイン名の決定
対象となるドメインの名前を指定します。
変数の設定
ES_DOMAIN_NAME="handson-esdomain-$(date +%Y%m%d)" \
&& echo ${ES_DOMAIN_NAME}
結果(例):
handson-esdomain-20160411
- 事前作業
===========
変数の確認
変数の確認
cat << ETX
ES_DOMAIN_NAME: ${ES_DOMAIN_NAME}
ETX
コマンド
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"
}
}
- ドメインの削除
=================
コマンド
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"
}
}
- 事後作業
===========
コマンド
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ドメインの削除が完了しました。