サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
CES 2025
tech-sketch.jp
軽めの話題を 毎回割と「濃い目」の記事が多いこのTech-Sketchですが、今回は軽めの内容として、nodejsとそのモジュールであるPassportを利用した他サービスとの認証連携を説明しようと思います。 PassportはConnectやExpressベースのWebアプリケーションに認証の仕組みを組み込むことができるモジュールです。単純なローカルでのユーザ名・パスワードによる認証から、OpenIDやOAuthを利用した認証もカバーしています。それぞれの認証の方式はstrategyとして選択することが可能で、簡単に認証に関する実装を追加することができます。OpenID/OAuthで認証を行う場合のstrategyは、メジャーなサービスに対してのものはnpmでインストールできる形ですでに多数用意されています。 具体的にどのようなstrategyが用意されているかは、以下のリンク先を参照し
昨今、システムは大規模化がさらに進み、ネットワークに複数のシステムが接続されている。基本的にそれぞれのシステム、特にバックエンド部分は独立したネットワークセグメントとなっていることが多い。複数のシステムを集中監視を行おうとすると、監視サーバは多くのネットワークに接続する必要が発生する。 2セグメント程度なら問題はないが、それを超えるとport vlan接続ではNIC(Network Interface Card)が不足となる状態が発生する。仮にVMware上の仮想マシンで構築したとしても1仮想マシンあたり10個までしか接続できない。 その問題を解消するかつ、ネットワークセグメントが追加されても物理的な結線の変更を不要にする方法としてTag VLANを利用する方法がある。Tag VLANとは、IEEE 802.1で規定されており、通常のEthernet frameにTag VLANの情報
GPUインスタンスは、HVM方式で仮想化されたものであれば、通常のCPUインスタンスと同じマシンイメージ(AMI)を選択して起動できます。 しかし、GPUの機能を利用するためには対応するNVIDIAのドライバをインストールするなど、自分で環境設定を行う必要があります。 そのため、後述のGPUインスタンス用AMIを利用することをおすすめします。 GPUインスタンスの仕様については、 公式ドキュメント に詳細が記述されているので確認してみてください。 GPUインスタンス用AMI GPUインスタンス用として、環境設定済みのAMIがNVIDIAから提供されています。 提供されているOSはAmazon LinuxとWindows Server 2012 R2です。 インスタンス作成時にAWS Marketplaceから検索して利用することができます。 またBitfusionからUbuntuの環境設定
このような対話を通じて、レストランの検索に必要な情報をユーザから取得し、レストラン検索を行います。 今回、レストラン検索には HotPepperグルメサーチAPI を利用させていただきました。ありがとうございます。 システムアーキテクチャ 対話システムは複数のモジュールから構成されています。今回は、各モジュールは独立に動作させず、前段階のモジュールの処理が終わった段階で駆動されるようにしています。 最終的なシステムアーキテクチャは以下の図のようになりました。 今回のアーキテクチャに沿って処理の流れを説明すると以下のようになります。 ユーザがテキストを入力すると、入力したテキストは言語理解部に入力されます。 言語理解部では入力されたテキストを解析して、対話行為と呼ばれる抽象的な意味表現に変換します。 言語理解部から出力された対話行為は、対話管理部に入力されます。対話管理部では入力された対
仮想化やクラウド化が進み、インフラ環境をプログラマブルに構築できるようになってきました。この流れにより、サーバ構築をプログラムにより自動化することも多くなってきています。自動化が進むと、本当に意図した通りに正しくサーバのインストールや設定が実施されているかの確認テストも自動化することが求められるようになってきています。 本記事では、このような場面で有用なサーバ状態のテスト自動化フレームワークであるserverspecを紹介します。 serverspecとはなにか? 既に多くの技術系記事にて、serverspecの紹介がされているためご存知の方も多いかと思いますが、本技術ブログでは初登場のテーマであるためserverspecとはなにか?から順を追って解説します。 serverspecは宮下剛輔氏によって開発されたサーバの状態をテストするためのフレームワークです (Serverspec公式
Ansibleに代表される自動化/構成管理をホンネで語る (クラウド時代のOSS活用最前線) 〜 オープンソースカンファレンス 2016 Nagoyaでの2団体ジョイント企画 実施レポート さる5月28日(土曜),オープンソースカンファレンス2016 Nagoya が開催されました。私たちが加盟する,OSSコンソーシアムと,オープンソースビジネス推進協議会(OBCI)は,2団体の合同企画としてセミナとパネルディスカッションを実施しました。テーマは「 Ansibleに代表される自動化/構成管理,ホンネで語る自動化/構成管理 」です。 オープンソースカンファレンス(OSC)の名古屋での会場は,今年は桜通線吹上駅近くの 名古屋中小企業振興会館 で開催されることになりました。名古屋駅からはちょっとだけ離れましたが地下鉄1本で行けますし,展示会場がとても広くなり,出展側は後ろのブースとぶつからず,見
先日公開した D3. jsをつかってData-Drivenにリッチなグラフやチャートを作成しよう の記事ではD3.jsをつかってグラフを作成しました。本記事ではD3.jsで作成したSVG形式のグラフをPNG形式の画像として保存する方法をご紹介します。 D3. jsにはCSVやJSONなど 様々なデータ形式を扱う為の便利なメソッド が用意されており、アプリケーションへの組み込みが容易です。しかしアプリケーションへの組み込みとなると、「X月X日の状態のグラフを保存しておきたい」、「グラフを資料に添付したい」といった要望も出てくるのではないでしょうか。 単純に画面のスクリーンショットを取得する以外では Phantom.js を利用してキャプチャを取得する方法や Apache Batik を利用してSVGを変換する方法などが考えられましたが、クライアントサイドだけで完結しない上、実装が少々手間です
Chef/Ansible/Puppet/Itamaeなどのサーバ構築自動化ツールや、ServerSpec/Infratasterなどのインフラテスト自動化ツールの使用することが多くなっている。 これらのツールを使用する為に管理サーバから各ノードに対して制御を行う際に、パスワード入力無しでのSSH接続を行う必要が発生する。さらにインストールやサーバ内の設定作業を実施する為、root権限でコマンドを実行するsudoコマンドやsuコマンドをパスワード認証無しで実行できる必要が発生する。 サーバ構築自動化、テスト自動化ツールを使う上での前提となる 「パスワード認証無しでSSH接続とsudoとsuを実行する方法」 について、以下にまとめてみた。 検証にはいつもの以下の環境を使用する。 今回は以下の機能を実現する。 1. 管理サーバ側からノード側へのSSH接続に鍵認証を使用することでパスワード入力を
この記事はeXcale Developer's Blogから移転されたものです。 eXcale開発チームの西谷です。 今回はJavaのフレームワークであるSpringMVCを利用する場合のTipsです。 SpringMVCのアノテーションに@ResponseBodyというものがあります。これはレスポンスの内容を簡単にモデルからJsonなどの形式に変換するというものですが、この@ResponseBodyを使っている場合はStringでreturnできません。つまり、メソッド内で例外が発生した際に遷移させるエラーページのパスを返すことができません。 そこで、今回はコントローラで発生した例外をコントローラ内でハンドリングする方法をご紹介します。さらにそのエラー自体もJson形式でレスポンスするようにしてみます。と言ってもすごく簡単で@ExceptionHandlerというアノテーションを付与した
OSS のログ収集管理ツールFluentdを用いてログを統合管理している場合の懸念点として、ログの収集漏れが考えられます。 Fluentdでは、バッファ機能を活用することでログを収集漏れすることなく確実に収集することができます。 このバッファ機能のメカニズムを理解すべく動作検証した結果を紹介します。対象とするFluentdのバージョンは0.10.30です。 Fluentdとは Ruby実装のOSSのログ収集管理ツールです。 Fluentdは、Input、Buffer、Outputの3つのコンポーネントで実現されています。 様々な場所からログを収集、JSON形式に変換し(Input)、蓄積(Buffer)、様々な出力先にデータ出力(Output)します。 例として、あるサーバ(server01)のApacheのアクセスログを別のサーバ(server02)内にファイルとして出力する場
GitHubがOpsツールの中心として活用しているHubotを使ってみる~インストール、スクリプトの作成、Herokuへのデプロイ~ Github社製のBotフレームワークであり、同社の運用の中心的なツールとして使われている「Hubot」をインストールし、独自のスクリプト作成、Herokuへのデプロイまでしてみます。 Hubotとは? GitHub社が作成したオープンソースのBotフレームワークで、Botとは、自動的に実行、応答するようなプログラムのことを指します。HubotはNode.js、CoffeeScriptで作成されており、 HerokuなどのPaaSへのデプロイも容易 となっています。 Botなので、定期的、または自動的にプログラムを実行したり、問い合わせに応えるような機能を提供します。Hubotに最初から組み込まれているスクリプトでは画像の投稿や、地図の表示、計算などが行える
Ansible playbookを作成する過程でプロビジョニングが正しく行われていることをテストすることがあります。その際に利用されるテストツールの一つとしてServerSpecというツールがあります。( TestKitchenとDocker・Serverspecで作るAnsibleTDD環境 )ServerSpecはサーバ間の通信が正しく行われていることやプロセスが正しく起動していることなどのテストが行えます。そのServerSpecを利用したAnsible専用のテストツールとして AnsibleSpec というツールが存在します。AnsibleSpecはSeverSpecと同じ構文で記述ができ、テストファイルをAnsibleのプロジェクト内に組み込めるという特徴があります。 今回はAnsible専用のテストツールとして公開されているAnsibleSpecの特徴および使い方を紹介します。
R は統計解析向けのプログラミング言語で、お手軽にデータ分析を行うことができます。そして、R での分析結果は、Shiny というR のパッケージを使うことで、簡単にWeb アプリ化することができます。今回はR プログラムを簡単にWeb アプリ化するShiny パッケージと、Web アプリとして公開することができるShiny Server について紹介します。 What's Shiny? Shiny とはR のIDE である RStudio の開発元のRStudio Inc. が開発しているプロダクトです。Shiny を使うとR のプログラムを簡単にWeb アプリにすることができます。 Shiny で作成したWeb アプリはブラウザからのユーザー入力などをトリガーに、インタラクティブにR のプログラムを即時実行し、その実行結果を動的に確認できます。見た目に関しては、Shiny が内部的に T
AWS CloudFormation, OpenStack Heat, Hashicorp社のTerraformなど、 システム構成全体をTemplateに記述し、クラウド等の環境に自動構築することは珍しくなくなりつつあります。 しかしこれらのTemplateはどちらかといえばIaaSや一部のPaaSに相当するインフラ構成の記述が中心であり、 個別のミドルウェアやアプリケーションレイヤの管理は別途行う必要があったり、別のクラウドへの移行時に再利用が難しいといった課題もありました。 今回はこうした課題の解決に役立つかもしれない、OASIS TOSCAの仕様に準拠したTemplateをもとに構築を行うCloudifyを実際に動かしてみました。 Cloudifyとは Cloudify は、 GigaSpaces Technologies社が開発しているオープンソースのクラウドオーケストレーション
この記事はeXcale Developer's Blogから移転されたものです。 eXcale開発チームの泉谷( @syguer )です。 今回は 前回 の続きとして、fluentdでログを他のサーバーに転送する方法について紹介します。 >>eXcaleは期間限定でサインアップキャンペーン実施中!気になる内容はこちら<< ログの転送について fluentdではアウトプットの手段として他のサーバーへの転送を選択することでログの集約を簡単に実現できます。 基本的な構成 設定と動作のイメージができるように、シンプルにあるサーバーからあるサーバーへ送信する例を見てみます。 以下がデータを送る側と送られる側の設定例です。 ※本記事ではバッファリングに対する設定はデフォルト値を使うため、以下のすべての例で設定はありません(設定しなければデフォルト値が使われます) バッファリングの設定については 前
ライトウェイトでフルスタックなWebフレームワークといえば Ruby on Rails が有名です。しかし統計処理や機械学習に関連するライブラリにはPython製が多いこともあり、これからは Django のようなPython上で動作するフルスタックWebフレームワークを利用する場面も増えていくことでしょう。 しかしDjangoには独自のルールがあり、 AWS ELB や AWS RDS と共に利用するためには、少し工夫が必要です。今回は ansible と packer 、及び AWS CloudFormation を用いて、AWS上に下図のような耐障害性の高いDjango環境を構築してみます。 ※私事ながら、筆者の松井はこの度 株式会社 Elvez のCTOに就任いたしました。 株式会社Elvezは、社会性を持つAIで世界を幸せにする会社です。今回紹介したAWSとDjangoも、El
Docker 1.9がリリースされた時点でのdocker networkの公式ガイドでは、 Kernel 3.16以上が必要 との記述があったのだが、CentOSのKernelは最新の機能がバックポートされており、docker networkも動作するとの情報を頂いた。 確かに、現在のdocker公式の overlay networkのガイド を参照すると、この記述が無くなっており、ディストリビュータ側の対応でKernelの制限が解除されたのでは?と考え検証してみることとした。 docker networkの概要については以下の記事も参考にして頂きたい。 Think IT/Docker1.9のマルチホストネットワーク 今回使用した環境は以下となる。 CentOS 7.2のサーバを3台準備し、それぞれにdockerの最新バージョンをインストールする。 docker swarmでクラスタ
2015年6月にDRBD9がリリースされました。 DRBD9の新機能として、多ノードレプリケーション、Primary roleへの自動昇格、DRBD clientなどが実装されています。 今回、この3つの新機能を試すために、DRBD9の環境構築を行い、実際に新機能を試しました。 DRBDの環境設定・管理は、DRBD9と同時に開発されているDRBD設定管理ツールである drbdmanage を使用しました。 この検証は、2015年10月14日に行いました。 はじめに DRBDとは DRBD(Distributed Replicated Block Device)を直訳すると分散複製されたブロックデバイスとなります。DRDBではなくDR"BD"です。DRBDの直訳から想像できる通り、DRBDは、ブロックデバイスの複製(レプリケート)をネットワークを介してリアルタイムに行うことが可能であるオ
eXcale 開発チームの泉谷( @syguer )です。 今回は インストール 、 監視対象の追加 に続き、Triggerを設定してActionを実行する方法について紹介します。 ここまででZabbixの基本的な機能についてひと通り扱えるようになります。 ※以下、本記事ではZabbixのバージョンは2.2、OSはCent OS 6.5を使用します。 また、Zabbix server及びZabbix agentについてはインストール済みを想定しています。Zabbix serverのインストールについては こちら 、Zabbix agentのインストールについては こちら をご覧ください。 TriggerとActionについて Zabbixでは下図のように監視している値にしきい値を設定して何かしらのアクションを実行することができます。 そのための設定がTriggerとActionで、し
ITmedia @IT でOSS運用監視製品の比較記事の執筆をさせて頂いた。 その際に fluentd + influxdb + Grafana を利用してsnmpwalkで取得したリソース使用量の測定値をグラフ化する検証を実施した。 その構築手順について以下にまとめる。 インストールの為に以下のサイトを参考とさせて頂いている。 iij/fluent-plugin-snmp tarom/fluent-plugin-typecast Dstat + Fluentd + Influxdb + Grafana(Qiita/akito1986氏) fluentd(td-agent)のインストールと設定 検証に使用した環境 検証に使用した環境は以下となる。 VMware ESXiに上にCentOS 7.2 (minimal install)とUbuntu Server 15.10LTS
eXcale 開発チームの泉谷( @syguer )です。 以前に 複数バージョンのRubyを管理する記事 を書きましたが、今回は複数バージョンのNode.jsを管理する方法を紹介します。 eXcaleでは新しいNode.jsのバージョンに移行する際に手間をかけないためという面と、サービスとして複数のバージョンを切り替える必要があるといった理由でnvmというツールを使って複数バージョンのNode.jsを管理しています。 本記事ではそのnvmの使い方について紹介します。 nvmとは nvm(Node Version Manager)は複数バージョンのNode.jsを管理するためのツールです。 Node.jsは、まだバージョン1.0がでていない成長中のプロダクトであるため開発が活発に行われており、マイナーバージョンのバージョンアップが頻繁に行われています。 また、開発版のみで使える
この記事はeXcale Developer's Blogから移転されたものです。 eXcale開発チームの泉谷(@syguer)です。 今回はNode.jsで使えるORMであるSequelizeを紹介します。 Sequelizeとは SequelizeはMySQL、SQLite、PostgreSQLに対応しているNode.jsのORMです。 Node.jsで使えるORMはnode-orm2や、Bookshelf.jsなど多数存在していますが、 Sequelizeはgithubリポジトリのstar数が最も多く(※)、人気のあるORMです。 Sequelize - 公式サイト Sequelize - Github ※2013年11月5日現在のstar数はnode-orm2が468、bookshelf.jsが563に対してSequelizeは1326! Sequelizeの使い方 Se
こんにちは、今回本ブログでご紹介するTipsは一言でいうと「Ansible で Microsoft Azure を操作してみる」です。クラウドサービスである Microsoft Azure を Ansible という自動構築・オーケストレーションが行えるオープンソース・ソフトウェア(以下:OSS)を使って操作してしまおうという、今回はその序章です。 ★ はじめに クラウドサービスを利用する場合、専用のUI、主にWebベースのポータルを利用する事があります。GUIポータルの利用は操作しやすくとてもわかりやすいですが、実際の運用上では柔軟に、簡便に、迅速に構築・運用管理することが求められ、その点では向かないケースがあります。一般に様々なクラウドサービスは、そのクラウドサービス用に用意されたAPIで外部のツールから操作を行うことができ、前述の観点においてクラウドを十分に活用できます。むしろそれ
ROSという言葉を聞いたことはありますか?ROSとは、ロボット用のアプリケーションを作成するためのシステム、豊富なライブラリ、可視化・ビルドツールなど、幅広い機能を提供している、ロボット開発者に大人気のオープンソースフレームワークです。 本連載では、ROSをより手軽に使うために、ROSが公式で配布しているDockerイメージを使ってロボットアプリケーションを作成する方法を紹介します。 今回は準備編として、ROSのDockerイメージを使って、ROSに標準で付属してるビューア(Rvizなど)やセンサ(XtionやUSBカメラ)をコンテナ内で使う方法を紹介します。その後、センサのキャプチャ処理と描画処理をコンテナ毎に分離することで、簡単な分散処理を行ってみたいと思います。 ROSとは ここではROSについて簡単に紹介します。ROSはRobot Operating Systemの略語ですが、実際
Chainerを用いて音声からの感情識別を実践 音声からの感情抽出 対話機能 我々は現在Pepperを用いた対話アプリケーションの開発を行っております。 対話において重要な要素は感情を理解することが挙げられます。感情を理解することでユーザーが怒っていれば余計なことを話さず、悲しんでいれば慰める。そんなアプリケーションの実現が可能となります。 しかし従来の対話アプリケーションにおいてユーザーの感情を理解する機能は実装されておらず、質問に答えるだけの単純な機能が主流でした。 感情理解 Pepperには標準機能で感情を理解する機能がありますが、中身がブラックボックス化されています。そのため我々は独自に感情を識別する機能の実装を行いました。 対話で得られる情報は表情、音声、言語情報などと多岐に渡ります。今回は音声に着目しました。理由として、海外の人より日本人は感情が分かりづらいと言われて
Zabbix3.0注目機能「通信暗号化」、「管理画面の改善」、「監視結果予測機能」紹介 ~Zabbix Conference 2015参加レポート~ OSSの統合監視ソフトウェア「Zabbix」の国際カンファレンス「Zabbix Conference 2015」が北欧の国ラトビアの首都リガで9/11,12の2日間開催されました。このカンファレンスに参加し、Zabbix3.0の最新情報など聞いてきたのでその模様をお届けします。TISからは、TIS独自のZabbixに対する取り組みである"HyClops"に関して発表してきたので、その内容についても紹介します。 Zabbix Conferenceとは? こちらの記事でも紹介されているように、Zabbixの開発元企業であるラトビアの首都リガにあるZabbix社主催で年次開催されている国際カンファレンスです。世界各国のZabbixユーザ、コミュニテ
最近、「機械学習」や「自然言語処理」、といったキーワードを聞くことが多くなってきていると思います。 反面、すごそうだけどなんだか難しいもの、というイメージもあるのではないかと思います。そこで、今回は「自然言語処理」の一種であるトピックモデルを取り上げ、その仕組みを紹介するとともに、その実装方法について解説していきたいと思います。 (「機械学習」の方については、以前開催した勉強会の資料がありますので、興味があればそちらもご参照ください。) トピックモデルとは トピックモデルは、確率モデルの一種になります。つまり、何かが「出現する確率」を推定しているわけです。 トピックモデルが推定しているのは、文章中の「単語が出現する確率」になります。これをうまく推定することができれば、似たような単語が出てくる文章(=似たようなモデルの文書)が把握でき、ニュース記事などのカテゴリ分類を行ったりすることができま
次のページ
このページを最初にブックマークしてみませんか?
『Home - Tech Sketch』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く