真司(205)35この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにボルダリングやりたい藤本です。Elasticsearch(Elasticsearchに限らずデータストア)を運用するにあたり可用性確保、バックアップ/リストア、リソース管理、保守体制など設計することが多くあります。今回はElasticsearchの運用を簡易化してくれるCuratorというツールをご紹介します。Elastic社の@johtaniさんが公式ブログの翻訳記事をエントリしていますので合わせてご参照ください。時系列インデックスの管理(日本語訳)CuratorCuratorはElastic社が提供するPython実装の運用支援ツールです。0.9/1.x系用に実装されています。2.0以降をサポートしているようです。3.5系は以下のような機能があります。v1.4)CLIが用意されているため、Cronなどで定期実行することでメンテンスを自動化することができます。やってみたインストールpipでも、apt/yumなどパッケージリポジトリでもインストールが可能です。Windows用にもmsi形式で配布されています。今回はpipでインストールしました。urllib3-1.15.1指定期間を過ぎたインデックスをClose、削除するCuratorを利用する上で一番多くあるユースケースだと思います。ログ収集や行動分析などでElasticsearchに時系列データをストアするケースは多くあります。時系列データを延々とためるのもいいですが、ユースケースによっては参照することがないインデックスもあります。データが肥大化することはパフォーマンス低下、リソース逼迫に繋がります。利用しないインデックスへのアプローチとしてElasticsearchでは2段階のリソース開放方法があります。一つはインデックスのCloseです。インデックスをクローズすることでメモリを開放することができ、メモリリソースの逼迫を改善します。CloseしたインデックスはOpenすることで再度利用可能です。一つはインデックスの削除です。インデックスを削除することでディスクリソースの逼迫も改善します。クローズと違ってバックアップからリストアなどしないと再度データにアクセスすることができません。それではCuratorを利用して、指定した日付より古いインデックスをClose、削除します。直近のデータセットがなかったので2015年9月20日〜2015年10月20日のhttpdのアクセスログを保管したインデックスを用意しました。今日は2015年10月20日だと思ってご覧ください。2.3mbまずはClose。10日以上経過したインデックスをクローズします。successfully.コマンドを簡単に解説します。close:サブコマンド:クローズ操作を行います。indices:サブコマンド:インデックスに対してクローズ操作を行います。:APIを発行する対象のElasticsearchホストを指定します。デフォルトはlocalhostで動作します。:Closeするインデックスの期間を数値で指定します。--time-unitと併用します。:Closeするインデックスの期間を単位で指定します。monthsから指定可能です。--older-thanオプションや--newer-thanオプションと併用します。:指定した期間を判断するインデックス名のdateフォーマット。今回は「2015.09.24」といった形式なので、「%Y.%m.%d」を指定します。それではインデックスがどうなったか確認します。403}10月10日以前のインデックスがクローズステータスとなっています。APIをコールしてもクローズしているので参照できません。20日以上経過したインデックスを削除します。successfully.コマンドの解説はcloseがdeleteに変わっただけですので割愛します。それではインデックスがどうなったか確認します。2.3mb9月30日以前のインデックスが削除できました。このようにCuratorを利用することで柔軟なインデックスのローテーションを簡単に行うことが出来ます。Snapshot取得ElasticsearchはSnapshotによりインデックスをバックアップすることができます。S3、Azuleといったクラウドなど様々なデータストアを指定することができます。それではCuratorを利用してSnapshotを取得します。successfully.コマンドを簡単に解説します。snapshot:スナップショットを実行します。:Snapshotリポジトリ名を指定します。今回はreposというSnapshotリポジトリを用意しています。indices:インデックスを対象とします。--all-indices:全てのインデックスを対象とします。それではスナップショットが作成されたのか確認します。標準出力されたスナップショット名を指定して情報を取得します。次に作成したSnapshotを削除します。successfully.timestringオプションで命名規則を合わせる必要があるのでSnapshotをローテーションする場合はCuratorでSnapshotを取得、削除した方が命名を意識せずに済むのでオススメです。Signature)対応GithubのソースコードやIssueを確認したところ、バージョン4.0系からオプションにaws_key、aws_secret_key、aws_regionの指定が可能となっていました。ESはサポート対象外のような。indexの削除、CloseといったAPIは変わっていないから使えるのでしょうが。3.5をForkして、IAM認証に対応したものもあります。1.x系サポート)、かつIAM認証が可能になります。こちらもやってみたインストールpipやパッケージリポジトリで配布されていないのでソースコードからインストールします。ESのドメインからインデックス一覧を取得します。indices:.kibana-4cloudfront-logs-2016.04.19cloudfront-logs-2016.04.20cloudfront-logs-2016.04.21:cwl-2016.05.21cwl-2016.05.22cwl-2016.05.23インデックスを取得することができました。まとめいかがでしたでしょうか?このようにCuratorを利用すれば、柔軟なメンテナンスを独自実装する必要がなく、Cronやタスクスケジューラなどで定期的にコマンドを実行するだけで簡単に行えました。Serviceへの対応もされています。2,051,439Feedly、Pocketの記事に追われる毎日です。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。本が出ていたので読んでみたところよかったので紹介させていただきます。使いたいときの注意点を書きました。新井成一64最近Sphinxつかってドキュメントを書いてるのですがなかなかイケています。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。