DockerとECSでInfrastructure as codeを体感する

f:id:watass:20151223222329p:plain

Infrastructure as codeの思想に感動し、AWSを使い始めて早1年になりますが、なんだかんだで最近はコードを書いてばかりでAWSを触っていませんでした。貴重な無料期間も終了し、非常にもったいないことをしたなと反省中です。

さて気を取り直して、ついに先日 EC2 Container Registry (ECR)がアナウンスされましたね!

まだUSリージョンのみの公開で、相変わらず東京リージョンはもう少しかかりそうですが、これでDockerイメージの管理までAWS上で行えるようになるわけです。

ところで、インフラ構築の自動化といえば、Elastic BeanstalkやOpsWorks、CloudFormationなどなどAWS上でもサービスが乱立しており、少し外に目を向ければ、Chef、Puppet、Ansible、Terraformなどなど、もう困っちゃうぐらい選択肢にあふれている昨今です。
ただ、どうにもこれらの選択肢はアプリケーションのデプロイに難があったり、やたらと複雑だったりでイマイチピンと来ない部分があって、インフラのコード化という視点から見るとDockerが一番しっくり来る感じでしたので、今回はECRの東京リージョン公開を期待しつつ、ECSでInfrastructure as code的なものをやってみたいと思います。

続きを読む

FuelPHPのデフォルトバリデーションルールの仕様について調べた話

f:id:watass:20141214211533p:plain

最近仕事でFuelPHPを使う機会を得たのですが、FuelPHPのデフォルトで用意されているバリデーションルールで少しハマった部分があったため、戒めのためにまとめておきます。

意外とググッても情報が出てこない部分があって、公式ドキュメントはそれなりに充実しているものの、細かな仕様までは書かれていません。最終的にはコアのコードを読むのが一番だと気づいてようやくバリデーションルールの仕様がわかってきたのですが、やっぱり困ったらコアのコードを読む気持ちを持とうよという話です。

続きを読む

Railsで好き嫌い管理アプリ作った

https://kobayasitabel.herokuapp.com/

タイトルの通りです。
知人の好き嫌いが激しすぎて何ならば食べられて何ならば食べられないのか判別が難しかったので勢いで作りました。
中身は大したことのない簡単なものですが、Railsの開発の速さと生産性の高さを感じることができたのはいい経験でしたね。

続きを読む

ローカルで開発したRailsアプリをCapistrano3でEC2にデプロイする

f:id:watass:20150826201128p:plain

最近RailsのScaffoldから色々開発するのにハマっていて、WEBRickで動作確認しながら、ちょこちょこ開発していました。
そろそろ公開環境へのデプロイ自動化を考えないとなーとなって、せっかくなので今までやっていた単純なAnsibleを使用した形ではなく、デプロイ支援ツールであるCapistranoを使ってローカルマシンからデプロイする手順を自動化してみました。
ちなみに、今までまとめてきたAnsibleを使った形式は以下の記事にあります。

続きを読む

RailsのScaffoldでネストしたResourceを作る

先週、Rails寺子屋に参加させていただきまして、いまさらながらRailsデビューを果たしました。もともとバックエンドにはFuelPHPを使っていたので、未だにRuby独自の記法に四苦八苦しながらも、Scaffoldの強力さに感動を覚えている次第です。お恥ずかしながら、FuelPHP使っていたときにはmigrationとか使うことはありませんでした・・・

Railsを触り始めて「とりあえず頭の中にある作りたいものを、最小構成で作ってみよう」と思いたち、複数のグループがあって、そのグループに属するユーザが複数いて・・・みたいなのを作り始めました。しかし、Resourceをネストさせる辺りで詰まったのでメモ。

続きを読む

AngularJSでクリックする度に一定時間だけ表示される要素を作る

f:id:watass:20150722224307p:plain

最近、AngularJSが楽しすぎてフロントエンドばかり触っています。Yeoman便利すぎgrunt最強すぎ。ストレスフリーに色々試せるので、つい遊びすぎてます。
今回は小ネタですが、意外と情報がなくて困惑したのでメモとして残しておきます。
JavaScript初学者なので、他にこんな方法あるよ!とかこれは間違ってるよ!というのがあれば教えて下さい。お願いします。

続きを読む

Yeomanを使ってAngularJSによるAPIリクエストと非同期の画面更新を高速実装する

f:id:watass:20150620165606p:plain

過去の記事からもわかっていただけるかと思うのですが、AWSやらFuelPHPやら、どちらかというとバックエンドの仕組みやインフラの仕組み作りを楽しいんですよね。
そんな感じで色々自分なりにやりつつも「あー、やっぱり自作アプリぐらい作っておきたいなぁ」と思い、FuelPHPでちまちま書いていたのですが、全然続かないわけですよ。
なぜか。それは成果物の見た目がかっこよくないからです。いくら頑張ってきれいなコードを書いたところで、できたアプリがダサいようでは、機能拡張もやる気になりませんよね。

というわけで、フロントエンド初心者丸出しの私がちょいとググって良さそうだったYeomanを使って、AngularJSを使ってAPIレスポンスのJSONを取得、非同期に画面を更新するというバックエンドとの連携部分をサクッと実装してみましたので備忘録として残しておきます。

続きを読む