ServiceCloudFormation2016年07月28日しんや(675)13この記事は公開されてから1年以上経過しています。GO』に於いてコイキングがエラい多い割合で捕獲出来ています。川沿いに場所を構えているという側面もあるかと思いますが、社内では専ら、生魚好きの某有力者の(魚類を)引き寄せる力によるものなのでは、と専らの噂になっています。Serviceについては弊社でも利用ケース・頻度が増えており度々ブログでも採り上げる機会が増えていますが、私もちょろっと触ってみようかなと思いました。CLIでの作成を試してみようと思いました。当エントリではその内容紹介となります。Serviceクラスタを管理コンソール経由で起動するまずは基本の形、管理コンソール経由でクラスタを立ち上げてみる事でElasticsearchクラスタを構成する為の要素の確認を行って見たいと思います。Started]を押下。Version)Elasticsearchクラスタのドメイン名を定めます。ドメイン名はエンドポイントの一部として利用されます。このエントリを書いている最中に下記リリースが為された模様で、APIバージョンの選択も行える様になりました。既存バージョンは1.5となりますので、とりあえずこの部分については1.5を選択します。Elasticsearchドメインにおけるクラスタの設定について見て行きたいと思います。count)Elasticsearchドメインを構成するクラスタのインスタンス数を整数値で設定します。master"の指摘事項に倣い、ここは3を設定してみたいと思います。type)Elasticsearchドメインを構成するクラスタのインスタンスタイプを所定の一覧から選択します。デフォルト値はm3.medium.elasticsearchですが、そこまで良い性能で無くても(動作確認用のため)構わないのでここは一番安いt2.micro.elasticsearchを選択しました。awareness』については以下の様な意味を持つものとなります。本番環境であれば共にチェックを入れておいた方が良さそうです。ESはクラスタ管理用に独立したmasterノードを構築します。masterノードはドキュメントデータを保持せず、クラスタの管理に専念します。クラスタのスタビリティを高めるため、最低3つのmasterノードを指定することを推奨しています。スプリットブレインのシナリオを避けるために、masterノード数には常に奇数の値を設定しましょう。ESは可用性の向上のため、リージョン内の複数のアベイラビリティゾーンにノードを分散します。APIでレプリカのセットアップをする必要があります。新しいインデックスを構築する際は同じAPIを用いることが可能です(詳細はこちら)。共にチェックを入れると以下の様に新たな選択項目が増えて来ます。条件を満たすように値を調整し、結果以下の様な設定となりました。インスタンス数は結果として増えてしまいましたが、ここではインスタンスタイプを最小性能のt2.micro.elasticsearchとしています。Configuration)次いでストレージタイプの設定です。選択肢としては『Instance』と『EBS』が選べる様ですが、上記選択内容だとEBS一択となるようです。併せてボリュームタイプ、サイズも設定を行います。Configuration)スナップショットは日に1回、システムの方で取得を行う形となります。クラスタの活動が忙しくない時に設定を行うのが良い、と記述されていますね。ここも任意の値を選択します。Options)詳細設定については以下ブログエントリ及びElasticの公式ヘルプをご参照ください。値はデフォルト設定のままとしました。次に、アクセスポリシーに関する設定を行います。ここは色々な制御が出来る形となりますが、ひとまずは下記エントリに倣い『所定IPからのアクセスのみ許可する』ポリシーをテンプレートから作成し、活用する形としました。Create]をクリック。作成には10分程時間が掛かるとの事なので軽く休憩。後、以下の様な形でElasticsearchクラスタが起動しました。CLI経由で起動するここからが当エントリの本題。CLIを使い、一発で構築するための手順を整えていきたいと思います。CLIを最新バージョンにアップデート。esというコマンドで各種操作を行う事が出来ます。ES()クラスタの作成はcreate-elasticsearch-domainというコマンドで実施する形となります。今回このコマンドで処理を行う為のパラメータファイル(json)を作り、そのパラメータファイルに値を設定、実行時にそのファイルを指定する...という形で行ってみます。雛形ファイルを--generate-cli-skeletonオプションを付けて生成します。}}設定内容を参照する為に、describe-elasticsearch-domainコマンドで上記手順にて作成したクラスタを参照してみます。}}概ね値はそのまま転記する形でベースは作成出来そうです。1点、AccessPoliciesについては設定が面倒臭そう。ここについては、管理コンソールでポリシーを確認しておき、その内容を一旦ファイルに保存。保存したファイルをjqコマンド等を用いて内容を加工し(下記23行目)、得られた値(下記24行目)をコピペしてJSONファイルの該当箇所に設定するのが一番楽そうです。//g'"{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-east-1:XXXXXXXXXXXX:domain/cm-ess/*\",\"Condition\":{\"IpAddress\":{\"aws:SourceIp\":\"YY.YYY.YY.YYY\"}}}]}"上記内容を踏まえて作成したパラメータjsonファイルが以下となります。AWSアカウントIDの部分は該当する情報を、またその後ろにあるドメイン名はDomainName属性の値が入る形となりますのでご注意ください。CLIコマンドによる作成処理実行。パラメータファイルは--cli-input-jsonオプションで指定します。}}そして暫く時間を置いた後、Elasticsearchクラスタが作成されている事を確認出来ました。CLIでもそんなに複雑な指定をする事無く作成出来ました。CLI同様にCloudFormationでも作成の為のテンプレートが用意されていますので、用途状況に応じて使い分けてみてはいかがでしょうか。こちらからは以上です。6,756,612まとめ職人→出張ブロガー(初代)→AWSエンジニア→ビッグデータ系エンジニアDevelopers.IO全投稿のうち1,000本を書いています。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。本が出ていたので読んでみたところよかったので紹介させていただきます。使いたいときの注意点を書きました。新井成一64最近Sphinxつかってドキュメントを書いてるのですがなかなかイケています。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。