AWS

Amazon Elasticsearch Service で利用可能になったElasticSearch5.1の良いところとは?


こんにちはリンクバルの井上です

今年の1月にAmazon Elasticsearch Service でElasticSearch5が利用可能になりました。

今回はElasticSearch5の個人的にいいな思うところ簡単に書いてみました

インデキシングパフォーマンス

5.0.0では数値データ構造の改善を始め様々な改善によりインデキシングのスループットが劇的に向上されケースによってはインデキシングのスループットは80%の向上を見込めるようです・・これだけでもすごい

続きを読む


LogStashでElasticSearchにlogを送る


リンクバルの井上です。
ElastcSearch, Kibana, Logstashの使用例の定番といえばアクセスログなどのログ収集と可視化かと思います。
今回はログ収集からKibanaでの可視化までの簡単なsampleをご紹介します。

 

Logstashのインストール

今回はbrewでinstallしてみたいと思います

brew install logstash

log収集のためのconfファイルの作成

今回は簡単な設定ファイルを作成します

この設定ファイルを使用してlogをelasticsearchへ送信します。

 

設定ファイルの解説

input

読み込むファイルを指定する今回は標準入力の設定です

input  {
  stdin { }
}

下記のように直接ファイルを指定することも可能

input  {
  file { path="/var/log/apache2/access.log" }
}

filter

logファイルから取得したログをelasticsearchように整形する

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
    locale => "en"
  }
  mutate {
    replace => { "type" => "apache_access" }
  }
}

output

ログの送信先を設定今回はローカルのElasticsearchを指定している

output {
  #stdout { codec => rubydebug }
  elasticsearch { hosts => '127.0.0.1:9200' }
}

logをElasticSearchへ送信

下記のようにファイルを指定してコマンドを実行してみます

/usr/local/bin/logstash -f logstash.conf < -f   logファイルのpath

kibanaでの確認

kibanaを開くと下記のように画面が表示されてますが緑色のCreateボタンを押下します

すると下記のような画面になるかと思いますので次にDiscoverを押下します

logstashから送信されたデータが確認できました。

 

いかがでしたでしょうか?意外と簡単にログ送信できるイメージできたでのではないでしょうか

リンクバルではエンジニアを積極募集中です。興味のある方は、こちらまでご応募ください。もちろん、社内の人間と面識があるのでしたら、直接にご連絡いただいてもかまいません。


Athenaを使ってS3のログファイルを検索してみる


AWSのサービスにS3のログ解析ツール「Athena」について書かせて頂きます。

Athenaとは?

https://aws.amazon.com/jp/athena/

Amazon Web ServiceのS3にある大量のログをSQLのクエリを書いて抽出できるサービスです。
大量のファイルが分割されていると解析するのが大変なのですが、

これらのファイルの入っているパケットを指定してAthenaの設定を完了すると、
以下のようにSQLクエリを実行するだけで検索できてしまいます。

SQLクエリは業務で良く書きますので、データベースを触っていたサーバーサイドエンジニアでも使いやすいのではと思いました。

Athenaの設定方法

1、データベースを作成する

2、データフォーマットを指定する


※CSVやJSONのデータフォーマットも指定できます。

3、カラムを指定する

4、パーティションを指定する


※CreateTableを押すとAthenaで利用するデータベースの完成です。

Athenaを使ってやってみたかったこと

json形式でファイル出力されたS3のログをキーベースで検索して、簡単にS3のファイルからデータを抽出したかったのですが、結果できませんでした。
なぜかというと、ファイル転送を挟んだログファイルだったためにファイル自体がtsv形式だったので、json形式のデータフォーマットに適用できなかったためです。
カラム型にjson型があると嬉しいなと思いました。

TSV形式での検索

LIKE検索ができますので、ログ自体の検索はできましたし、レスポンスも遅いわけでもなく使い勝手は良かったです。

下記、簡単なクエリ例です。SQLと変わらないですね。
SELECT * FROM table_name WHERE column_name LIKE '%xxxxx%' LIMIT 100;

まとめ

AWSを使ってS3に溜まっているログをAthenaを使うだけで抽出できるので、今後も使っていきたいと思います。
導入も簡単なので、まだ使ったことのない方は試してみるとどうでしょうか。

最後に

リンクバルではエンジニアの採用を募集しています。採用はこちら


ElasticSearchでログ収集する〜Logstashとは何だろう?


リンクバルの井上です。
今回はElasticSearchにデータを取り込むLogstashとは何かについて調べた内容をまとめてみました

Elasticsearchとは?

Elastic社提供のLuceneベースのマルチテナント・スキーマレスで
クラウドに最適化されたサーチエンジンサーバー

Logstashとは?

Elastic社が提供するオープンソースログ収集管理ツールです。
プラグイン形式で機能を拡張できるのが特徴でプラグインにより様々なファイルデータを収集できます。

プラグインの種類

(沢山ありすぎるので一部紹介します・・・)

logstash-input-jdbc

JDBCプラグインを使用してデータをDBにからデータを取得します。

logstash-input-file

任意のファイルの内容を永続的に読み取ります。ファイル読み取り開始位置や読み取る間隔も調整することができます。

logstash-filter-csv

カンマ区切りの入力をフィールド単位に分割します。separatorも指定することが可能です

logstash-filter-date

日付フォーマットを変換します。

logstash-output-jdbc

JDBCプラグインを使用してデータをDBにアウトプットします。

これらのプラグインを使い下記のような流れでデータを収集します。
1.Input ログを記録するイベントを監視
2.Codec Inputから受け取ったデータを指定した形式に整形
3.Filter Codecから受け取ったデータをフィルタ処理(解析)
4.Output Filterから受け取ったデータを出力対象に出力

基本的なLogstashの内容は以上です。
pluginをより活用すれば大抵のデータは取り込めるのであらゆるデータ収集ができそうですね!

リンクバルではエンジニアを積極募集中です。興味のある方は、こちらまでご応募ください。もちろん、社内の人間と面識があるのでしたら、直接にご連絡いただいてもかまいません。


アプリ開発者必見!「Amazon Rekognition」 で素早く画像分析


リンクバル技術部の中村です。
「re:Invent 2016 Amazon」で発表された、AWSの新機能「Amazon Rekognition」をつかってみました。
Amazon Rekognition は、画像の分析をアプリケーションに簡単に追加できるようにするサービスです。
画像分析のハードルが一気にさがり、アプリケーションがより便利になると感じました。

AWS マネジメントコンソールから写真をアップロードして試す。

AWSの管理画面から、簡単に動作を試すことができます。

女性の写真

aws_rekoginition_woman

人であること、女性であることなどを判定しています。

海の写真

aws_rekoginition_sea

海の写真であることなどを判定しています。

料金

使った枚数だけ、課金されます。
オレゴンリージョンの例を挙げると、
処理画像 1,000 枚あたりの料金
1 か月あたり画像処理* 100 万枚まで 1.00 USD
執筆時点のレートで、一枚あたり約0.12円です。

料金表(オレゴン)

amazon_rekognition_%e6%96%99%e9%87%91_-_%e3%82%a2%e3%83%9e%e3%82%bd%e3%82%99%e3%83%b3_%e3%82%a6%e3%82%a7%e3%83%95%e3%82%99_%e3%82%b5%e3%83%bc%e3%83%92%e3%82%99%e3%82%b9

無料枠

無料枠が設定されています。
気軽に技術検証ができますね。

最初の 12 か月の間、

  • 1ヶ月あたり 5,000 枚の画像分析
  • 毎月1,000 件の顔メタデータを保存

おわりに

AWSの画像解析API Amazon Rekognitionを試しました。
高機能の画像解析が安価に使えるので、開発者は画像解析の技術向上はAWSに任せて、どのように使えば、ユーザーの満足度を上げられるかに注力できそうだと感じました。
SDKを使う事でプログラム中からも使う事ができます。

リンクバルでは、Ruby on Railsで開発された自社サービスを一緒に開発するエンジニアを募集しておりますので、興味を持っていただきましたら、ぜひお問い合わせください!


Elasticsearchで簡単な検索をしてみる


リンクバルの井上です。
システムのデータの規模が大きくなるにつれて必ず問題になるのが検索パフォーマンスかと思います。
今回はその改善で利用されるLuceneベースの全文検索・解析ができるElasticsearchで簡単なユーザ検索をしてみます

ElasticSearchとは?

Elastic社提供のLuceneベースのマルチテナント・スキーマレスで
クラウドに最適化されたサーチエンジンサーバー

ElasticSearchの導入メリット

・全文検索が高速
・導入しやすい
・プラグインが豊富
・RESTfulAPI
・データの可視化が簡単(Kibanaの導入)

ElasticSearchを入れる

Javaのinstall

brew install java

ElasticsSearchのinstall

今回は最新の5.0ではなく2系を使います
brew install homebrew/versions/elasticsearch24

kibanaのinstall

ElasticSearchにversionを合わせないとエラー起こるのversion指定してinstall

brew install homebrew/versions/kibana44

kibanaのplugin Senseをinstall

/usr/local/opt/kibana44/bin/kibana plugin --install elastic/sense

Elasticsearchの起動

/usr/local/bin/elasticsearch

port 9200で起動されるので下記でアクセスできます
http://localhost:9200

kibanaの起動

/usr/local/bin/kibana

こちらはport5602で起動します
http://localhost:5601

検索機能を使う

indexの作成

kibanaのSenseでsample_indexという名のindexを作成します。
““POST sample_index
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-29-12-06-07

mappingの作成

PUT http://localhost:9200/sample_index/_mapping/user
 {
    "user" : {
        "properties" : {
           "name" : {"type" : "string" },
            "message" : {"type" : "string"}
        }
    }
}

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-25-15-43-54

データの登録

““POST http://localhost:9200/sample_index/user
{
“name”: “user”,
“message”: “user_message”

}
““
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-25-15-43-54

検索してみる

GET http://localhost:9200/sample_index/_search?pretty=true
{
  "query" : {
    "simple_query_string": {
       "fields": ["name"],
       "query": "test1"
    }
  }
}

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-25-15-57-16

ユーザの検索ができました!
次回はkuromojiを使った日本語全文検索をやりたいと思います
リンクバルではエンジニアを積極募集中です。興味のある方は、こちらまでご応募ください。もちろん、社内の人間と面識があるのでしたら、直接にご連絡いただいてもかまいません。


AWS Lambdaを使ってEC2インスタンスを起動・停止する


リンクバルの川畑です。AWSのEC2インスタンス上にある開発環境など、営業時間外は誰も使用しないので停止して少しでも費用を抑えたいところです。この課題を解決するために、AWS Lambdaのスケジュール機能を利用してEC2インスタンスの起動・停止する検証をしました。

AWS Lambdaのスケジュール機能の良いところ

個人的にAWS Lambdaを使いたいから。。。というのもあるのですが、実際にAWS Lambdaのスケジュール機能を利用するメリットとしては次のポイントが挙げられます。

続きを読む


元オンプレ系インフラエンジニアから見たAWSについて


みなさん初めまして!リンクバルでエンジニアをしている高島です。

私は過去オンプレミスシステム(以降オンプレ)のインフラ部分の設計・構築・運用に携わってきましたが、リンクバルではパブリッククラウドの最大手Amazon Web Serviceを利用して各種サービスを運用しています。
オンプレとクラウドのメリ・デメ比較については多くの技術サイトで語りつくされていると思いますのでそちらにお任せし、ここでは元オンプレ系インフラエンジニアの目線から衝撃を受けた点を挙げていきたいと思います。

(1)サーバ立ち上げまでのセットアップ時間が10分以内!!

AWSのコンソールからEC2の立ち上げを行うのに必要な時間は10分以内(!!)です。
これはずっとメディアからOSをインストールする環境で仕事をしてきた者としては驚異的でした。
オンプレでもVMWare、Hyper-Vなどの仮想化技術を利用し一度作成したイメージから2台目以降を複成することは可能ですがAWSでは用意されたAmazonマシンイメージ(以降AMI)を利用することで1台目から素早く立ち上げることが可能です。
また、このAMIはAmazon以外にも各社・各団体も提供しており無数に存在します。
これらを柔軟に利用することで非常にすばやくシステムの立ち上げが可能です。

(2)HWをまったく意識せず構成が可能

AWSに限らず、クラウドコンピューティングでは物理的なHWが隠蔽され、利用者側は全く意識することなく必要なリソースを必要なだけ借りられるというメリットがあります。
オンプレでも複数のサーバHWを共有ストレージに繋ぎこみ、仮想化技術を持ちいてHW間のノード移動させることは可能ですが、オンプレはあくまで手元にあるHWの制約を受けるためクラウドに対し柔軟性が劣ります。
また、AWSでは作成したAMIやスナップショットを同一AZ内において自由に扱うことが可能です。
これはテープ装置やストレージ間レプリケーションを用いてバックアップ・復旧の運用設計をしてきた者としては非常に素晴らしい仕組みと感じました。

(3)IOPSに対しての課金

AWSではストレージ、NW、ロードバランサなどで発生するIOPSに対して課金が発生します。
また、デフォルトの帯域に不満があればコストを掛けることで増強することが可能です。
オンプレでDBサーバやバッチサーバのIOPS周りの速度に頭を悩まされてきた者としてはこの仕組みは衝撃的でした。
コストを掛けただけ性能が上げられる仕組みのため、柔軟性が非常に高いと思います。
ただし、オンプレのように手元にある機器を好きなだけ使えるわけではなく、使った分がコストになるため思考の転換が必要となります。

まだまた語りつくせないところではありますが、今回はここまでとさせていただきます。
ここまで読んでいただきありがとうございました!

リンクバルではクラウドの経験が浅い人でもさまざまな経験を経ることでスキル習得が可能です。
オンプレミス環境が恋しい気持ちもありつつ(笑)も、クラウドコンピューティングの成長性はとてもよい技術的刺激になると考えています。
AWSの経験を積みたい方、是非ともリンクバルへよろしくお願いします!!


AWSの運用自動化サービス Cloud Automator で”攻め”のシステム運用 AMIMOTO スタック編 レポート


リンクバルの川畑です。先日サーバワークス様・デジタルキューブ様主催の「AWSの運用自動化サービス Cloud Automator で”攻め”のシステム運用 AMIMOTO スタック編」に参加しましたのでその内容をまとめました。

AWSの運用自動化サービス Cloud Automator で”攻め”のシステム運用 AMIMOTO スタック編

デジタルキューブ 小賀 浩通 / 堀家 隆弘 / 岡本秀高(40分+質疑応答)

はじめに

続きを読む