2017/01/24 (火)

AWS Elastic Beanstalk 初めての構築

こんにちは。

今回の使ってみましたは、AWSでWEBサーバーの構築です!

AWSのElastic Beanstalkというサービスを使ってみました。

既に色んなサイトで構築の仕方はアップされていますが、とりあえずAWSを使うのも初めての私が試行錯誤して構築した手順を載せます。

試行錯誤と書きましたが、Elastic Beanstalkは簡単に構築できます。

まずはAWSのサイトにログインし、AWSマネジメントコンソール画面からElastic Beanstalkを選択

20

選択したらElastic Beanstalkのアプリケーション画面となりますので、まずは新しいアプリケーションの作成をします。名前はプロジェクトの名前にしました。(イホウレンケイってなってますが気にしないで下さい・・・)

1

2

作成したアプリケーションに対して「新しい環境の作成」を選択し環境を作成します。

3

サーバーは「ウェブサーバーの作成」を選択します。

4

環境タイプでは、事前定義の設定にPHPを選択しバージョンは作っているアプリケーションに合わせました。環境タイプは負荷分散にしています。(まだ利用するユーザーは少ないですが、とりあえず。)

5

アプリケーションバージョンでは、「既存のアプリケーションバージョン」を選択し、サンプルアプリケーションを選択します。とりあえず、ちゃっちゃと構築したいのでサンプルを選択します。あとは変えずに次へ。

6

環境名を設定。開発環境で構築するので分かり易くプロジェクトにdevを付加した名前を設定。

7

RDS(データベース)もVPC環境の両方ともチェックを入れ、一緒に構築しちゃいます。

8

構成の詳細が出ますので、利用するアプリの容量などを計算して適宜変えて下さい。

EC2のキーペアに関してですが、キーペアはEC2にリモートログインするために必要となります。SSHなどで接続する場合などは設定しておきましょう。キーペアはEC2のコンソール画面のキーペア項目から新規に作成しておきます。

※キーペア作成時に自動でダウンロードされる.pemファイルは大事に保管して下さい。後でリモートログインする際に必要になります。

9

ヘルスレポートは変更せずにそのまま次へ。

10

環境タグも何もせずに次へ。

11

RDSにはmysqlを選択しました。バージョンやインスタンスクラスなど適宜変更して下さい。

12

VPCの設定では全てにチェックを入れて次へ。

13

アクセス権限はそのまま次へ。

14

確認画面が出ますので、問題なければ起動を押します。

15
16
17

起動ボタン押下後は環境を作成中の画面となります。この処理に数分掛かります。ちゃんと出来るかドキドキです。

18

数分後、できました!!

19

完了後は、実行するアプリケーションをアップロードします。「アップロードとデプロイ」ボタンを押します。

21

ファイルを選択でcakephpのフォルダを圧縮したzipファイルをアップロードします。バージョンラベルは分かり易いように日時等の値を付加して管理します。

22

デプロイに少々時間が掛かりますが、完了後に指定のURLをクリックすると、、、

23

アップロードしたアプリケーションが表示されました!

24

ここまで色々と書きましたが、慣れればアプリケーションを表示するまで30分も掛からずにWEBサーバーを構築できます。

Elastic Beanstalkではバージョン管理も自動で行ってくれるので非常に便利です。

Elastic Beanstalkを構築するだけでEC2やRDSが自動で構築されているので、細かい設定を必要としない場合はあっという間にクラウド環境が構築できます。

もちろんEC2やRDSの設定をいじることも可能ですので、自分のアプリケーションに合ったカスタマイズをすることができます。

なんとなくクラウド環境を構築しようと思っている方がいたら、とりあえず試してみると良いかもしれません。

以上です。

続きを読む

2016/12/17 (土)

ワイズ・リーディングでは人材を募集しています

WS000003

ワイズ・リーディングITソリューションチームでは人材を募集しています。

【雇用形態】  
 正社員

【募集人数】  
 複数名

【職務内容】  
 システム開発

【求められるスキル・経験】  
 Webアプリケーション、パッケージアプリケーションの開発・運用

【歓迎する能力・経験】  
 C#,C++によるWindowsデスクトップアプリケーションの開発経験
 CakePHPによるWebアプリケーションの開発経験
 Pythonによる機械学習を使ったアプリケーションの開発経験
 iOS, Android向けアプリケーションの開発経験(使用言語不問)
 MySQLによるデータベース設計と実装経験
 開発において要件定義、仕様設計、詳細設計の経験

【給与】  
 経験・能力に応じて、当社規程により決定いたします

【給与調整】  
 年1回(4月) ※実績・実力に応じて給与の調整を行います

【賞与】  
 年2回

【勤務場所】  
 飛田オフィス  
 熊本遠隔画像診断センター(くまもと大学連携インキュベータ内)
 ※事業拡張により東京都内の勤務になる可能性があります。

【勤務時間】  
 9:00~18:00
 
【休日】
 週休2日
 ※祝日のある週の土曜日は出勤する場合があります。

【応募要領】  
 まずはこちらから気軽にお問合せください。

【窓口】  
 〒861-5514  熊本県熊本市北区飛田3-6-35 中村ビル2F  
 株式会社 ワイズ・リーディング  
 TEL:096-342-7878  
 担当:相馬  e-mail: a-souma@ysreading.co.jp

続きを読む

2016/10/22 (土)

3行でインストール!機械学習フレームワーク「Darknet」を試す

こんにちは。そうまです。

このブログでもご紹介したとおり、TensorFlowやってみたり、Caffeやってみたりしてきました。
こちらのブログで、もっと簡単に導入できるフレームワークがあると知りましたので、今回はそれを試してみます。

その名も、「Darknet」!!

darknet__open_source_neural_networks_in_c
ウェブサイトもダークな感じです。魔法陣が黒魔術っぽい。

イメージはあれですが、導入は簡単です。
なんと、以下の3行を実行するだけでインストール完了です。

$ git clone https://github.com/pjreddie/darknet.git
$ cd darknet
$ make

インストールしただけでは寂しいので、試してみます。
Darknetは学習済みモデルとアルゴリズムの配布もしています。
これをダウンロードしてくれば、簡単に動かすことができます。

今回は「YOLO」という、物体認識を試してみます。
こちらもコマンドはダウンロードして実行という2行だけです。

$ wget http://pjreddie.com/media/files/yolo.weights
$ ./darknet yolo test cfg/yolo.cfg yolo.weights data/dog.jpg

モデルと一緒に配布されるサンプルですが、ちゃんと物体認識されています。
dog-predictions

他の画像でも試してみます。
7cats

Intel Core i7(3.1Ghz×4)、メモリ8GB、OS:Ubuntu 14.04のマシンで約8秒かかりました。
今回はCPU Onlyで試したのですが、GPUもサポートしていて、Makefileを1行書き換えるだけで使えるそうです。
screenshot

結果はこうなりました。
7cats-predictions
下段真ん中のネコの模様もネコとして認識されちゃってますが、ある意味正解ですね。

Darknetは手軽にインストール、実行まで出来て驚きました。
今後も手軽に使えるフレームワークがどんどん出てきそうですね!

みなさんもお試しあれ!

続きを読む

2016/10/11 (火)

Prottを使ってみた

今回は便利ツールのご紹介です。

現在開発を進めているプロジェクトで、画面設計を行った際にProttというプロトタイプを作成できるツールを使ってみました。

https://prottapp.com/ja/

インターネット上で利用できるツールで、手書きで書いたものやExcelで描画したものを画像として取り込み、ボタンを押した際などの画面遷移を作成します。

簡単に手書きしたものを元に例を示します。
まず手書きしたものがこちらです。

img_17811

ログインして一覧を表示し、新規追加をする流れです。

この4つの画面を1画面ずつ写真に撮り、prottに画像として追加します。

prott1

追加した画像にそれぞれアクションを設定します。

ログインボタン付近をマウスで選択して、ボタンを押した際の遷移先を指定します。

prott2

すごく簡単に遷移の設定ができます。

また、遷移する際の効果を選択できたり、オーバーレイ表示も可能です。

prott3

全ての画面に設定をし、プレビューをしてみます。

prott8 prott9

何もないところをクリックするとアクションを設定した部分が青く光ります。

なのでどこを押すといいかが一目で分かります。

prott10

こんな感じで画面の流れを簡単に確認することが出来ました。

お客様への確認は、このprottで作成したものを見せることで、出来上がりのイメージが明確になると思います。

イメージが明確になることで要望も明らかになり、より完成度の高いものを作ることが出来ます。

社内の開発においても、各メンバー間の意識の擦り合わせに利用できますし、このプロトタイプをそのまま詳細設計の仕様書として利用することも出来そうです。

世の中便利なツールがありますので、開発の負担軽減のためにも色々と使ってみてご紹介していきたいと思います。

今回はプロトタイプを作成するprottを紹介しました。

ちなみに料金は無料(プロジェクト1つのみ)からありますし、30日間のトライアルもありますので、とりあえず使ってみる価値ありです。

続きを読む

2016/09/07 (水)

【AI】Kerasで「吾輩は猫である」調の文章を自動生成してみる

こんにちは。やのです。

最近はGoogleのライブラリTensorflowでディープラーニングの検討を行っています。
Tensorflowの上位ラッパーライブラリとしてKerasというものがあり、 そのKerasのサンプルコードが豊富なので1つご紹介します。

Keras Documentation

今回テストしたサンプルは、文章の自動生成を行うものです。
利用したコードはこちらです。

このサンプルは、まずあらかじめ何らかの文章(10万文字~100万文字程度の文章が好ましい)の文字の並びをディープニューラルネットワークで学習しておきます。そして、学習したディープニューラルネットワークに十数文字の文字列を与え、その文字列に続く文字を1文字ずつ逐次的に生成していき、自動で長い文章を生成してみる、というものです。

このサンプルは、もともとはニーチェの文章が付属されており、英語なのですが、今回は日本語の文章を学習させてみました。

日本語を利用する注意点としては2点
(1)日本語のテキストファイルのエンコーディング設定はutf-8としておく
(2)python上で日本語が利用できるように1行目に # -*- coding: utf-8 -*- を追記しておく
以上のようにすると日本語でも問題なく学習できました。

今回は「吾輩は猫である」の全文を学習データとして与え(32万文字程度)、全文を学習後、ディープニューラルネットワークに「吾輩は猫である。名前は」という文字列を与えた後にそれに続く800文字を自動生成してみる、ということを試しました。

それでは、実験結果です。

まず、繰り返し学習1回目のディープニューラルネットワークで文章を自動生成したものです。
 吾輩は猫である。名前はないがであな遝をているにでしていかの刿にしてしたいまないったすいしたいしたも君の逍にするのしてしたかでもって吠ににめたったしていいいすないいいいあいかないっていていていているないえ、こであるないしてあるないいであからこんにに囮鉍でそないにだるないしたないいして蹚ったいまいたあっていかあって形っていたってあって出に君がいしていていていていていかであるないいかを慥ていたこでそうであかかすってかかいはするしど壝の吋札に君していたのそのはそと一人だの事は循って遣たしていかこで徳ったたあかね、吾ななとうったもだいましていたがますいしとはた
まだ学習がすすんでおらず、ランダムな文字の並びという印象を受けます。

次に、繰り返し学習50回目の結果です。学習するのに数時間かかりました。
 吾輩は猫である。名前はこれでは大変形姻の時に妙な人には見ている。この癖にビールを平生の名前である。それだから、そうして来たなと思う。この光当体誔を知らないのから仕方がない。そうしているのではない、悪るいものだが、そうなる。いかに這入ってると云って、この時つではないのである。 「ただてい事は今日はこの後のごとく、そうでございます。この度の方が十入の方ですね」「そうですね。その通りと先へ取りている。その大譂のは本任者はとこの眼もない。その冗談だと云う大従の邒を挨ひ見ているのだから飛んだのだから、実読だのかく大変だ。これも主人は起かい物の上にいいな、あの全
大分日本語のような文字の並びになってきましたが、やはり中身が変です。

最後に、繰り返し学習185回目の結果です。学習するのに丸一日かかりました。
 吾輩は猫である。名前はこれですか。それでは細君である。それでおったので、その寝えばならない。聞いてやめはあると云うのさ。君も、どうしてはないと思って買っていると同じくらしい出来ないもので、そんな事をするやしない。少しはないか」 「バルですよ」と先生とはあまり今していたのである。それである。そんなものでもいい。またはどうだ。そいこの御寄を、主人のようにその希鼩の困りにいるのが、これは黙ましたから、その時じゃさぐ行って見える。この女は返事を取られて、主人をひると、天下の意を調みない。だっては大地能を知れて、その嫌さんの具倅の大具聞があると、僕のところへ引
まだ変ですが、どうでしょう、繰り返し50回よりもなんとなく日本語に近くなっている気がしませんか?文の間の意味的なつながりは自動生成できていませんが、日本語の文章の文字の並びという意味では大分学習できていると思います。さらに、生成される日本語は、吾輩は猫である調の特徴を含んでいるといえます。何かに応用できれば面白いですよね。

続きを読む