JAWS-UGなど、2月に参加した勉強会の所感を書いていく

2月は勉強会のエントリーを一度も投稿していませんでした。
サボっていたわけではありません。もちろん勉強会には行きました。
ですが、個別にエントリーするほど大規模な勉強会は行かなかったので、
まとめて所感を書いていきたいと思います。

BigData-JAWS 勉強会#5

jawsug-bigdata.connpass.com
AWSのBigDataを扱う勉強会に参加しました。
場所はAmazonの日本オフィスでした。
今回はAthena押しで、Athenaは実質S3ビューアという話を
聞けただけでもよかったです。
S3は頻繁に活用するので、Athenaを使ってS3の内容を
クエリーで取得してみたいと思います。
これは業務でも役に立つでしょう。
また、3月1日にオンラインセミナーでAthenaを取り扱うので、
参加したいと思います。


以下はオンラインセミナーになります。
最近業務でAWSを扱う機会が多く、
個人的には大好きな領域ではあります。1日中AWSで遊んでいたい(ぉぃ)。
Black Beltのオンラインセミナーをいくつか受けました。

AWS Black Belt Online Seminar 2017 AWS Batch

www.slideshare.net
AWS Batchを使う機会が業務であるかというと、
まだかなり先の話と言わざるを得ません。
ひとまず、JP1のようなジョブ型の機能ではなく
キュー型ということが分かっただけでも
よしとしたいと思います。
柔軟にスケール可能なバッチ処理を行いたい場合は、
EMRなども候補に入るのではないでしょうか。

AWS Black Belt Online Seminar 2017 Docker on AWS

www.slideshare.net
まずは、Dockerに最適化するため12の要素を実践することが大切。
このことを知っただけでも、収穫がありました。
興味がある方は、日本語のページがあるので読んでみてください。
The Twelve-Factor App (日本語訳)
12の要素を踏まえて、AWSのEC2 Container Serviceを扱うことで、
AWSを扱うというよりPasSを扱うように使えるとのことですが、
実践するにはまだまだ学習が必要だと実感しました。

AWS Black Belt Online Seminar 2017 Amazon EC2 Systems Manager

www.slideshare.net
EC2 Systems Managerは、
EC2インスタンスを大量に抱える必要があるシステムで適用すべき
機能だと思いました。なぜなら、一つや二つのEC2インスタンスなら
手作業で構成を管理したほうが楽だと思えるからです。
例えば、100や200ものEC2インスタンスの構成管理を
行うなら、費用対効果があるでしょうね。と勝手に思いました。

AWS Black Belt Online Seminar 2017 AWS上でのIoTデザインパターン

https://publish.awswebcasts.com/content/connect/c1/7/en/events/event/shared/4312879/event_landing.html?connect-session=graysonbreez2g7oor4sb9ehz32b&sco-id=58647084&campaign-id=AWS_WWP&_charset_=utf-8
エントリーを書いている本日、受講しました。
私が注目したのはやはりAWS Greengrassでしょうか。
IoTは既に多くの製造業で適用されているので、
AWS Greengrassを用いたノウハウを
持っておけば、案件の拡大も見込めると思います。
勉強したいことは山積みですね。

以上、2月の勉強会の所感でした。
3月はAWS JAWSや、AWSome Dayに参加する予定です。
jawsdays2017.jaws-ug.jp
https://aws.amazon.com/jp/about-aws/events/2017/awsomeday/aws.amazon.com

2月もお疲れ様でした!

「Web API: The Good Parts」を読了しました。

2月は仕事が忙しくて21時過ぎまで残っている毎日でした。
3月も忙しい日々が続きそうです。

今月読んだ本の所感を書いていきます。今月は1冊のみでした。

Web API: The Good Parts

www.oreilly.co.jp
最近Web APIの開発を担当していることもあり、
Web API開発のノウハウを一から学びなおすため、読みました。

無料で読める有名な電子書籍に「Web API Design」があります。
apigee.com

Web API Designも参考になりますが、
Web API The Good Partsは
Facebook, Twitterなど有名どころのAPIの事例を交えて解説していることや、
OAuth2による認証の仕組みや、より堅牢なWeb APIを作るための
セキュリティのトピックなどがありました。

設計変更しやすいAPIの項についても参考にはなりましたが、
クラス構成まで踏まえた設計変更についてまでは記述されていなかったように
見受けられ、結局その辺りはそれっぽいクラス構成になりましたが、
保守性の高いクラス構成については開発を進めながら引き続き
検討していく必要があります。

そして、自分が違うプロジェクトで作ったWeb APIが、
まだまだ考慮不足の点が多すぎたことがよく分かりました。
その反省点も活かしながら、今のプロジェクトでよりよいWeb APIを開発していきたいと思います。

今回は、オライリーの書籍を初めて電子書籍で購入しましたが、
DRMフリーとはいいものですね。iPhoneでも、iPadでも、PCでも見れます。
見たいときに見れるのは素晴らしい。

来月はWEB DB PRESSともう1冊くらい読みたいと思っています。
gihyo.jp

忙しい時こそ、帰る努力を。そして自分磨きの努力を。

ZenFone3を購入しました!

Androidの端末が数年前のXperia rayしか持っていなかったので、
開発にも使う端末として、ZenFone3を購入しました。

MotorolaのMoto G4 Plusと比較して
どちらを購入するか心底迷いましたが、
ZenFone3を購入することに決めました。
決め手は・・

  • Moto G4 Plusは電子コンパスがない。
  • ZenFone3が台湾版なら3万3千円くらいで買える。

に尽きます。

外箱。少し高級感がある。

f:id:yasay:20170129235753j:plain

初期セットアップ完了

f:id:yasay:20170130000017j:plain
Xperia rayしか持ってなかった当方にとっては
ヌルサクに動作する本機が十分な性能を持っているように
見えます。

iPhone 5sとの大きさ比較

f:id:yasay:20170130000530j:plain
iPhone 5sよりは大きく、iPhone6 Plusよりは小さい感じでした。

欠点は指紋がつきやすいことか。

鏡面仕上げなので、指紋跡がめちゃくちゃ残ります。
このままでは使えないと思い、下記のアクセサリを購入。
f:id:yasay:20170130001054p:plain

そして、今はこんな感じで使ってます。
f:id:yasay:20170130000644j:plain
f:id:yasay:20170130001307j:plain

実はまだSIMを刺していないので、DSDSを試せていない。

ZenFone3はとても良い機種だと思うのですが、
普段持ち歩く端末はカメラ性能の高いものになってしまいがち。
なので、2台持ちながらDSDSの性能を試せていないです。
(LINEの機種変とかめんどうだし!)

Pure Android信仰は消え失せました。

個人的にはPixelやNexusシリーズなど、
Pure Androidに対する憧れがとても強かったです。
なので、Moto G4 Plusに魅力を持っていました。
が、その信仰心は消え失せましたw
Zenfone3に標準で入っているアプリや機能はとても使いやすいです。
特に片手モードが素晴らしい。

のんびり使いこなしていきたいと思います!

「【eLV勉強会】 Dockerを触ってみよう ~初心者向けDockerハンズオン~」に参加しました!

Dockerを触ってみよう ~初心者向けDockerハンズオン~」に参加してきました。
learningvesper.doorkeeper.jp
最近では当たり前のように使われているような印象を受けるDocker。
しかしながら、業務ではなかなか触る機会がないということもあると思います。

そんな方におすすめな勉強会だと思いました。
ハンズオンは実際に手を動かしながら学べるので楽しいですね!

「BUILD, SHIP, RUN」の考え方を理解した気がした。

コンテナを構築、そして出荷、起動する。
気楽にコンテナイメージをダウンロードして、試す。
コンテナなので、環境を汚すこともないし、
コンテナ上でWebアプリケーションを起動し、管理することも可能。
うん、楽しいですね。Lightsailで開発環境構築に使いたいかなー。

ハンズオンやっていく

さくらのクラウドを使ってハンズオンを行いました。

f:id:yasay:20170129230326p:plain
画像はインスタンス作成中の画面。
今回、講師の方が「さくらのクラウド」のエヴァンジェリストでしたので、
ハンズオンはさくらのクラウド上で行いました。
正直、機能面的にはAWSでよくねと思うこともありましたが、
VPCなどネットワーク周りを意識せずにすぐに始められるのは
初心者の方には優しいのかなと思いました

ハンズオンのコマンド文はQiitaに公開されています。

もくもくやっていくことで、一通りのDockerコマンドの実行を学びました。
ハンズオンの内容は大ボリュームなので、Qiitaの記事を参考してください。
qiita.com

Docker Hubへのアップロードも行いました。

f:id:yasay:20170129233007p:plain
Docker Hubワクワクするね。

Arukasも使いました。

f:id:yasay:20170129233226p:plain
Arukasはさくらインターネットβテストを実施中のDockerホスティングです。
Docker Hubのパブリックコンテナに対応しており、
Arukasを使うだけで簡単にWebアプリケーションが運用できます。

さくらのクラウドの2万円クーポンを頂きました!

f:id:yasay:20170130185915j:plain
ハンズオン参加者全員もらっていました。
まさかもらえるとは思っていなかったので嬉しかったです。
一番小さなインスタンスなら10ヶ月は無料で使えるとのことです!

今後やってみたいこと。気になること。

  • プライベートコンテナの管理
  • Ghostのバックグラウンド起動。
  • 複数のWebアプリケーションのコンテナを、Portを分けて運用してみたい。

スライドが公開されています。

https://speakerdeck.com/masatoshi/dockernihong-tutemiyou

今回は、とても濃い内容のハンズオンで、
Dockerの基本コマンドを一通り学べたと思います。
学んだ量が多すぎて、一つ一つをBlogに書き記すの大変なのでやめておきますw

「80’s Café, Akihabara」の「Tuesday English Conversation Meetup」に行ってみた!

昨年9月にTOEICテストを受験しました。
英語の学習はこれからも続けていきたいと思っています。

www.80scafe.com
そのためにも、今回は80's cafeという場所に行ってきました。

感想を書いていきます。

ゲームによる英会話

有名な映画のカードをめくって、メンバーに説明するゲームがありました。
メンバーは英語で説明している人の話を聞いて、映画のタイトルを当てます。
これは英語学習した成果を試す絶好の機会だと思いました。

ただ、私の番で「ショーシャンクの空に」を説明するのは難しかったw
冤罪の囚人の話なんてどう表現したらいいんだw

トピックを使った英会話

「死ぬまでにしたいこと」や「手に入れることができないもの」などのテーマで
メンバーに話します。これもとてもいい英語学習の教材だと思います。

デメリットがあるとすれば、メンバーに恵まれないことがある可能性くらい。

英語が全く話せない人と同じ組になった場合、
こっちが英語でがんばって喋っても会話が成立しないことがあります。
できればその場だけでも英語を喋る努力をしてもらいたいところ。

英語を話せる友達ができるかも。

英会話教室との大きな違いは、参加した延長線上で友達になれる可能性があるということ。
英語を学習する志を持っている人たちと友達になれるのなら、それは素晴らしいことです。

値段がリーズナブル

DMM英会話などで自宅で英会話するのも良いのですが、
80's cafeは1回800円でその気になれば3時間くらい英会話できると思います。
普段は語彙を増やすために学習しておいて、隔週で80's cafeに参加し
会話力を磨くという使い方ができると思います。

以上、80's cafeの感想でした。
2017年1月31日まで、DMM英会話が初月2,980円のキャンペーンをしていますので、
DMM英会話も併用したいと思います。

結論:英語を喋れる友達を作ったり、英語学習の気分転換にいいと思います。

Play Framework始めました。環境構築編 with Java

*ActivatorはEOLになりましたので、本エントリーの情報は古いです。

Play Framework使い始めました。

今回のエントリーは環境構築編となります。
本エントリーは下記の環境情報で構築しています。

Play Framework 2.5.10
Typesafe Activator 1.3.12
Mac OS X El Captain 10.11.6

では、もくもくやっていきます。

Typesafe Activatorのインストール

Typesafe ActivatorはSpring Initializerのように
アプリケーションのテンプレートを生成できるツールであると私は理解しています。
もちろん、それだけではなく、自分のActivatorテンプレートを作成することもできるし、
Activator UIを使って生成したテンプレートのソースコードを参照することも可能です。

下記のコマンドを実行してパッケージを検索してみます。

brew search activator

f:id:yasay:20170109183137p:plain
brewでパッケージを検索してもlightbend-activatorはいないようです。
社名が変ってもtypesafe-activatorである様子。

下記コマンドを実行して、typesafe-activatorのバージョンを確認してみます。

brew info typesafe-activator

f:id:yasay:20170109183242p:plain
公式サイトから取得できる最新バージョンと同じのようです。

下記コマンドを実行してインストールする。

brew install typesafe-activator

f:id:yasay:20170109183958p:plain
無事にインストール完了。

下記ヘルプコマンドを実行してみて、パスが通っているか確認します。

activator -help

f:id:yasay:20170109184215p:plain
使えそうです。

アプリケーションを生成する

activatorコマンドを使ってアプリケーションを生成してみます。

下記コマンドを入力してテンプレートアプリケーションの生成ウィザードを実行する。

activator new アプリケーション名

f:id:yasay:20170109213044p:plain
途中でどのテンプレートを使うか聞かれるので、「5:play-java」を選択する。
f:id:yasay:20170109213156p:plain
起動方法やテスト方法などが親切に表示されつつも、アプリケーションの作成が完了する。

Play Frameworkのディレクトリ構成

下記のサイトを参考にされたし。
https://www.playframework.com/documentation/ja/2.4.x/Anatomy
f:id:yasay:20170109213704p:plain
自動生成されたディレクトリ構成は上記のような感じ。

アプリケーションを起動する

下記コマンドを実行して、アプリケーションを起動する。
※作成したアプリケーションディレクトリの配下で実行する。

activator run

f:id:yasay:20170110074331p:plain
Nettyサーバは9000ポートで開始したようなので、
http://localhost:9000にアクセスしてみる。
f:id:yasay:20170110074430p:plain
動いた!


Play Frameworkは、変更を瞬時に反映するアプリケーションサーバ
起動しているので開発スピードに期待できるフレームワークだと思います。
次は、下記のようなことを試してみたいと思います。

  • Activator UIを使ってみる。
  • AWS Lightsailにデプロイする。

(AWS Lightsail)Static IPの設定とnginxのインストール

前回のエントリーでAWS Lightsailを始めました。
xblood.hatenablog.com

今回のエントリーはStatic IPの生成と、nginxのインストールについて書きます。

Static IPの生成

EC2のインスタンスにも同じことが言えますが、
再起動するとパブリックIPが変わってしまうので、不便です。
なので、Lightsailで利用できるStatic IPを設定します。

Lightsailのトップで「Select other resources」から「Static IP」を選択する。

f:id:yasay:20170109101651p:plain

Static IPを生成するインスタンスの指定とStatic IPの名前を指定する

f:id:yasay:20170109102036p:plain

Createボタンを押せば作成完了

f:id:yasay:20170109102207p:plain
簡単ですね!

nginxのインストール

Webサーバーであるnginxをインストールしていきます。

yumリポジトリからインストールする。

生成したStatic IPにsshで接続し、nginxのインストールをしていきます。
今回はAmazon Linuxなので、
Amazonが提供するnginxパッケージをインストールしていきます。
下記のコマンドを入力して進めます。

sudo yum install -y nginx

インストール状況の確認

インストールはすぐに終わりますが、
出力されるログの情報を見ていきます。
f:id:yasay:20170109103128p:plain
バージョンの最後にamzn1と表記されており、
リポジトリがamzn-mainを参照しているのが分かります。

f:id:yasay:20170109103501p:plain
nginxパッケージと、互換性パッケージのインストールに成功し、
インストールが完了したことを確認できました。

nginxを起動する

下記のコマンドを実行して起動します。

sudo /etc/init.d/nginx start


下記のコマンドを実行してnginxの自動起動を設定します。

sudo chkconfig nginx on


f:id:yasay:20170109134941p:plain
nginxのステータスがOKになったことを確認!

ブラウザからアクセスして確認する

80番のポートは初期状態で許可されているので、アクセスするだけです。
※EC2の場合セキュリティグループで80番を許可しなければいけないので、この辺りはお手軽ですね♬
f:id:yasay:20170109135204p:plain
無事に起動したことを確認!

以上です!今後はApplicationサーバとの連携を試してみたいと思います!