症状
こんなエラー。
読み込みは出来るが、書き込みやインデックス作成は全て失敗するようになる。
"error": {
"type": "cluster_block_exception",
"reason": "blocked by: [FORBIDDEN/8/index write (api)];"
}
"error": {
"type": "index_create_block_exception",
"reason": "blocked by: [FORBIDDEN/10/cluster create-index blocked (api)];"
}
原因と対策
原因は主に2つある模様。
ディスク容量不足
AmazonESのメトリックスでFreeStorageSpace
を見ると0になっているはず。
インスタンスタイプかEBSの容量を上げればいいはず。
Amazon ES ドメインの設定 - AmazonES 開発者ガイド
EBS ベースのストレージの設定 - AmazonES 開発者ガイド
メモリ容量不足
AmazonESのメトリックスでJVMMemoryPressure
が92%を超えているはず。
超えているというか92%をキープしている。
t2特有の現象というわけでなく他のインスタンスタイプでも同じことが起きたので、単純にスケールアップしてメモリ増やせということだと思う。
この状態でもClusterHealthは青いままなので要注意。
JVMMemoryPressure
は監視対象にしたほうがよさそう。
参考
AWS サービスエラー処理 - AmazonES 開発者ガイド
elasticsearchを利用するときは容量を管理しようという話 - Qiita