Hatena::ブログ(Diary)

SE街道まっしぐら RSSフィード Twitter

2013-12-31

[][] 2013年振り返る

2013年全体のふりかえりを2013年冒頭で書いた内容を振り返ってみます。

2013年の目標 - SE街道まっしぐら


情報発信について

未達。

達成率約80%程度。

Naoki Sega (nsega)さんはTwitterを使っています

達成率約50%程度。月1ペースでの更新でも行えていなかった。

達成率10%程度。

この2つは着手できてなかった。時間の割り当て方に問題あり。


仕事関連

達成できたと思う。

ただ、どの観点からいっても、まだまだもっと良くできただろうと思うことが

多くあるので、ひたすら目標据えて、ひたすらそこに向けて近づく行動をとっていきたい。

2013年10月くらいからは、組織の成果を最大限にするには自分はどういった動き方や

働き方をすればいいのだろうと

いうことに強く意識を向けるようになったのは自分の中では変化があったとおもっている。

もっというと、特に人前で話したり伝えるスキルマネジメント経験(教育目標設定/評価・組織役割)は、

もっともっとやらないと自分なりの咀嚼したレベルにまではとうてい到達できない

と思っている。


勉強会カンファレンスコミュニティ活動

未達。達成率75%程度。LT立候補してない。人前で話すチャンスがあるのであれば、そこを積極的に生かして

いくためのアクションをとらなければと。

  • 海外
    • QConSF 2013(11/11-13)に参加した。(ここについては別エントリーで詳細書く)
    • WWDCチケットが買えず、断念。販売開始2分後には完売の事例を忘れずに覚えておく。

自分にとっては、SFCでのカンファレンスに直接参加でき発表を聞くことにはなったのは、

学びと気付きが多く、刺激になった。聞くよりも直接見て学ぶことの重要さを改めて実感した。

まとまった時間をとった開発合宿形式の場は個人的にとてもプラスに思えるので、形はどうあれ継続していきたい。


語学(英語)

未達。達成率80%程度。英会話,TOEIC自分が据えた目標レベルにまで到達できていない。

時間の割り当て方のアプローチを要検討。


健康

未達。達成率80%程度。筋トレが全然できていない。

ジョギングは、毎週11〜13kmを継続しておこなえた。

体重は前年かわらずキープ。


プライベート

達成。色々と家族と話す機会が多い1年になったと思った。引き続き継続したい。


まとめ

開発合宿や、カンファレンス、など、触れる機会はあるはず。

取りものごとを進めていけるレベルにまで引き上げたい。

につながる方法をすり合わせて、なるだけブレがないようにすすめる。

2013-09-28

[][] DevOpsDays Tokyo 2013に参加してきました

DevOpsDays Tokyo2013に参加してきました。その参加した内容をメモ。


目的

ここ最近、DevOps系のカンファレンス勉強会にことごとく参加を断念してきてたので、

1日まるっとカンファレンスに参加することで、現在の自分の知識を、最新にアップデートしたい。


概要

海外ゲストから学ぶ DevOps の最前線CI/CD の先にあるもの〜

国内外のリードエンジニアセッションやオープンスペースでの交流を通じ、

CI/CD の先にある DevOps の真髄を感じ、語り合い、学ぶイベント

当日のプログラムは、こちら


セッションの詳細

参加したセッションを列挙してみる。


(1) Making Operation Visible

Speaker: Nick Galbreath( @ ) さん.
発表資料

Continus Deliveryについて多く話してきたとのこと。

DevOps はコミュニケーション。目に見えないは、価値の無い。

ここでは、StatsD + Graphite によるデータ見える化について。

Graphite https://github.com/graphite-project

情報収集方法は、

StatsD(etsyで導入された) に入れる

ユーザの動きをグラフ化する。導入しない言い訳は通用しないよ。できない理由を挙げてるだけ。

グラフ見える化すると、コミュニケーションが促進される。

cf. fluentd + GrowthForecast


Memo
  • StatsD + Graphite でのInstallation 方法について調べる

(Sponsor Session)DELL

Dell Open Cloud ECO system/ Hadoop, OpenStack

Dell / Devops のアプローチは、コンポーネントスタック

プロダクト: Crowbar( https://github.com/crowbar/crowbar )

=> このプロダクトの Mission: A Zero Touch Cloud Installer

OSCA の設立 ( Open Standard Could Association) (http://dell-osca.jp/ ) 技術資料も順次公開

Dell デックセンター( http://en.community.dell.com/techcenter/default.aspx )


(2) Sensu to Introduction

Speaker : Sean Porter( @ )インフラ自動化を支援。

発表資料 : http://slides.sensuapp.org/#1 (9/29追記)

Sensu :http://sensuapp.org/

SensuのGithubhttps://github.com/sensu/sensu

ボストンSonian社 で作られたプロダクト

Nagiosで問題が出てきてたから作った。

Sensu のInspiration

  • Unix phillosophy.
  • Japanese culture. => 竹(しなやかで、かつ、弾力性があり強い)

システム構成は、API / redis / Rabbit MQ

Sandbox での Sensuを使ったDemo。

なんでrubyを使ったか?puppet,chefrubyで作らていること。自分rubyが好きなこと。多くの人に簡単に使ってもらえるように ruby を選択した。

sensuのデモで使ってたPagerDutyは、日本だと Twilio でできるらしい。

Memo

Lunch Time

復興支援弁当いただきました。

f:id:n-sega:20130928121546j:image


(Sponsor Session) MS/ cookpad/ VOYAGE GROUP / VMware

昼食後で頭がはたらいていませんでしたorz

Memo
  • AWS/ auto scaling 方法を詳しく知らなかったので調べる。ハンズオンあったら参加したいなー。

(3) Taking Devops to the Next Level / Puppet eco system

Speaker :Max Martin (@ ) puppet labs
発表資料 :後で書く
内容:Puppet 3.0 の紹介.

https://github.com/puppetlabs/puppet

PuppetDBは、信頼性を持たせたかったためPostgreSQLベースとしている

PuppetDB自体のソースは、Clojureで書かれているため、JVMで動く。

これがかなり功を奏しているらしい。

Mcollective

Puppet Labs Documentation

puppet forge でpuppet用のmoduleを公開可能。

Demoには、前のセッションであったgraphite を使い易くしたのを試すために

forge.puppet を経由してdownlodしてみる。

http://forge.puppetlabs.com/

http://forge.puppetlabs.com/garethr/graphite


(4) OPS FOR EVERYONE

Speaker : John Britton( @ ) at GitHub
発表資料

内容:

Githubのprincipale

  • collaboration
  • automation(何が何でも同じ仕事を2度やってはいけない。)

GitHub社で使っている2つのツールの紹介

開発者環境自動で構築するためのConfigurationツール。入社したらすぐに、1日目から環境構築できる。

簡単にいえば、mac版に特化したpuppet

Macにまずは、XCoedのcommand line ツールをインストールする。

※参考:boxen/our-boxen ? GitHub の手順参照

オペレーションに利用できるchat bot。社内では、chatops といってる。チャットが共有されているターミナルという考え方ができる。

hubot ルームチャットに入れる.deplyだけできるように権限設定するとか。

※参考: github/hubot ? GitHub


ちなみに、SpeakerのTeriminal のUIは、

robbyrussell/oh-my-zsh ? GitHub

graph me コマンドバックグラウンドでは、graphiteが動いている。昔はStatsDだった。


Memo:
  • BOXEN, HUBOT 触る

(5) DevOps時代インフラ構築と開発プロセス

Speaker :AWS 吉羽龍太郎(@) さん
発表資料 :後で書く
内容:

一発一中ではなく、フィードバックループを加速させること

DevOpsは、ビジネスの成果につながるように、現場に対していかに活かしていくか。

DevOps=自動化ではないよ。


大事なこと

AWSについて

インフラコード化する。

Deployを怖くなくするための仕組みをインフラ側に加える。

自動化によって、本質的なことにリソースを注ぎ込めるようになっていく。


Memo

(6) 迷ったら健全な方

Speaker : Cookpad 成田 一生(@) さん
発表資料 : (9/29追記)

内容:

Ops権威的にならないこと。

承認フロー確立すると政治的要素が少なくともでてくる。

仕事がたのしくなくなる。

コミュニケーションで解決できる部分をできる限り多く。

プロダクトのリリースを、Opsは止めないこと。

DevとかOpsとかをいってるのではなく、いかにユーザ価値を届けることができるかが大事

Opsに求められるものは、サーバで動いているものをソースコードレベルで理解できること。

Devに求められるものは、サーバサイドへの興味を。インフラへの影響を意識して。

完璧さを求め続けるのではなく、健全な方を求め続けること。

トレードオフにぶつかったら、ユーザにとって、組織にとって、健全な方を選ぶ。

(9/29追記)

成田さんご本人がtogetterをまとめてくれていました

「迷ったら健全な方」セッションの感想 #devopsdays - Togetterまとめ



(7) Effectie Monitoring with StatsD

Speaker : Alexis Lê-Quôc (@)
発表資料


内容:

Obseve => Orien => Decide => Act => (OODA Loop)

  • statsD
  • client libraries
  • graphite
  • datadog.

Memo
  • statsD + graphite 触る

まとめ


おまけ

せっかく海外から招待している人が多かったのだが、英語でのコミュニケーション力不足が否めなかった... =>なんとかする。


参考URL

DevOpsDay Tokyo 2013 - connpass

DevOpsDays Tokyo 2013 企画主旨

2013-09-26

[][] Macの標準搭載のVPN(IPSec)での接続時間の延ばし方


目的

Mac内蔵のIPSecVPNの設定すると、1時間位するとID/PasswordのConfirmがでて放置すると

VPNがきれて、sshターミナルがハングしちゃったり、最近ストレスフルに感じるのでなんとかしたい。

切実に。。


やったこと

なにをやったかというと、VPNの接続が自動で切られてしまう時間を、

1時間から24時間に変更する設定変更を行った。詳細の手順は次の通り。


VPNの詳細設定したときに作成される設定ファイルコピー

% sudo cp /var/run/racoon/***.***.***.***.conf /etc/racoon

racoon.confの設定ファイルを修正

% sudo vi /etc/racoon/racoon.conf

デフォルトで記載されている/var/run/racoon/配下 の設定ファイルを読み込まないように記述コメントアウトする。

#include "/var/run/racoon/*.conf" ;

上記でコピーした設定ファイルの方を読み込むように末尾に記述を追記する。

include "/etc/racoon/***.***.***.***.conf" ;

個別の設定ファイルの設定情報を修正。

% sudo vi /etc/racoon/***.***.***.***.conf

dead peer detectionを0に設定する

dpd_delay 0;

proposal_chekのパラメータを、obeyからclaim に変更.

proposal_check claim;

lifetime について記載されている全ての箇所に対してパラメータを36000 seconds から24 hoursに。

lifetime time 24 hours;

設定完了後、もう1度、VPNをつなぎ直すと、45minで途切れることはなくなりました!

これでサーバVPN経由でつないでてもconfirmの表示からは解放されてストレス軽減。

セキュリティポリシーとしてそこまで延ばしてもいいかどうかは要検討かも。


他のパラメータもろもろ意味を知らないものが多かったので、違う機会に

がっつりまとめて整理しておきたい。


参考URL

Native Cisco VPN on Mac OS X - With Group Password Decoder!

Built-in IPsec VPN randomly drops to Cisco VPN ... | Apple Support Communities

Dead Peer Detection | VPN | Cisco Support Community | 6001 | 32546

How to build a remote user access VPN with Racoon

racoon(8) - NetBSD Manual Pages

2013-09-15

[][] curlはすてられなかったのでhttpieも使うことにした

概要

Python - curlを捨ててhttpieを使おう - Qiita

このエントリをみて、curlを捨てるほど非情になれなかったのだけど、

curlではなくて、httpieも両方使いこなせるようになりたい!

という衝動をおさえられなかったので、httpieをインストール・設定してみた。


詳細

pipを使ってhttpieをインストールするために、そもそもpython環境をちゃんと整えていなかったので、

まずは環境を整える下準備からスタート。


pythonインストール

pyenvで各バージョンが共存できるようにすることから始める。pyenvは、homebrew経由ですぐにインストールできる。

% brew update
% brew install pyenv

今回は、pyenv経由で、v2.7.5と、v3.2.5 をそれぞれインストール

% pyenv install 2.7.5
% pyenv install 3.2.5

pyenv をローカルで、v2.7.5を指定して動くように指定。

% sudo pyenv local 2.7.5

pip のセットアップ

’pip installation’を見ながら、setup用のスクリプトダウンロードする.

% curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py > ./ez_setup.py
% sudo python ./ez_setup.py
Extracting in /tmp/tmphLrHWj
Now working in /tmp/tmphLrHWj/setuptools-1.1.5
Installing Setuptools
running install
Checking .pth file support in /Library/Python/2.7/site-packages/
/usr/bin/python -E -c pass
TEST PASSED: /Library/Python/2.7/site-packages/ appears to support .pth files
 :
Processing setuptools-1.1.5-py2.7.egg
Copying setuptools-1.1.5-py2.7.egg to /Library/Python/2.7/site-packages
Adding setuptools 1.1.5 to easy-install.pth file
Installing easy_install script to /usr/local/bin
Installing easy_install-2.7 script to /usr/local/bin

Installed /Library/Python/2.7/site-packages/setuptools-1.1.5-py2.7.egg
Processing dependencies for setuptools==1.1.5
Finished processing dependencies for setuptools==1.1.5

pipでhttpieをインストールする

easy_installを使って pipをインストール

% sudo easy_install pip

Searching for pip
Reading https://pypi.python.org/simple/pip/
Best match: pip 1.4.1
Downloading https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#md5=6afbb46aeb48abac658d4df742bff714
Processing pip-1.4.1.tar.gz
Writing /tmp/easy_install-KSVjSK/pip-1.4.1/setup.cfg
Running pip-1.4.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-KSVjSK/pip-1.4.1/egg-dist-tmp-sD2YRZ
warning: no files found matching '*.html' under directory 'docs'
warning: no previously-included files matching '*.rst' found under directory 'docs/_build'
no previously-included directories found matching 'docs/_build/_sources'
Adding pip 1.4.1 to easy-install.pth file
Installing pip script to /usr/local/bin
Installing pip-2.7 script to /usr/local/bin

Installed /Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip

pip がインストールされていることを確認。

f:id:n-sega:20130915183224p:image


pipを使って、目的のhttpieをインストールする。

% sudo pip install --upgrade httpie
Downloading/unpacking httpie
  Downloading httpie-0.6.0.tar.gz (63kB): 63kB downloaded
  Running setup.py egg_info for package httpie

Downloading/unpacking requests>=1.2.3 (from httpie)
  Downloading requests-1.2.3.tar.gz (348kB): 348kB downloaded
  Running setup.py egg_info for package requests

Downloading/unpacking Pygments>=1.5 (from httpie)
  Downloading Pygments-1.6.tar.gz (1.4MB): 1.4MB downloaded
  Running setup.py egg_info for package Pygments

Installing collected packages: httpie, requests, Pygments
  Running setup.py install for httpie

    Installing http script to /usr/local/bin
  Running setup.py install for requests

  Running setup.py install for Pygments

    Installing pygmentize script to /usr/local/bin
Successfully installed httpie requests Pygments
Cleaning up…

httpieを使ってみる

httpieで、httpie.orgをにリクエストを送ってみるとこんな感じ。

色ついてて、response結果がわかりやすい!!ちょっと感動した。

f:id:n-sega:20130915183222p:image


ちなみにcurl比較すると、curlはこんな感じ。

f:id:n-sega:20130915183223p:image


まとめ

httpieは、httpリクエスト結果確認するのにはかなり快適にしてくるツールなんじゃないかなって(完全に私見)。

curlcurlで使えるので、捨てません!


参考URL

Python - curlを捨ててhttpieを使おう - Qiita

httpie

Welcome to Python.org

yyuu/pyenv ? GitHub

Installation — pip 1.5.6 documentation

2013-07-07 herokuでNode.jsの動く環境構築してみた!

[][] herokuNode.jsの動く環境構築してみた!


外部に公開できる環境を、さくらVPS以外にも別なものを触っておきたいなっということと、

ちょうど、heroku を使ってみたいと前々から思っていた

こともあり、早速、herokuNode.jsを動かせる環境を設定してみた。

そのときのセットアップで行った作業を覚え書きとして書いておくφ(..)メモメモ


herokuでセットアップ方法について

heroku内で提供されている Getting Started with Heroku | Heroku Dev Center を参照しながら

スタート。やることは、おおまかに次の4step.

  1. サインアップ
  2. heroku toolbelt のインストール
  3. herokuログイン
  4. アプリケーションデプロイ(今回は、ここはNode.jsでやった)

1.サインアップ

(herokuアカウントは既にもっていたので割愛)


2.heroku toolbelt のインストール

3.herokuログイン

heroku toolbelt 経由で、heroku login コマンドログインする。

% heroku login
Enter your Heroku credentials.
Email: (Eメールアドレス入力)
Password (typing will be hidden):
Authentication successful.

4.アプリケーションデプロイ(今回は、ここをNode.jsを選択)

アプリケーションとして対応している言語もしくはフレームワークは、次の通り。

Getting Started with Heroku | Heroku Dev Center


herokuNode.jsのセットアップ

これらの中から今回はNode.jsを選択。

heroku内で提供されている ドキュメントGetting Started with Node.js on Heroku を見ながら、次の流れでセットアップ作業を開始。

  1. 前提:ローカル環境Node.jsのセットアップ
  2. heroku 内にアプリを登録
  3. Node.jsアプリケーションを作成
  4. ProcFileでプロセスタイプを宣言
  5. gitの設定
  6. herokuデプロイしたアプリを確認する

1.前提:ローカル環境Node.jsのセットアップ

ロ−カル環境Node.jsを入れておく必要があるので、nodebrewを使って、stable版のバージョンであるv.10.12をインストール・設定.

% curl -L git.io/nodebrew | perl - setup
% export PATH=$HOME/.nodebrew/current/bin:$PATH >> ~/.zshrc
% source ~/.zshrc
% nodebrew install stable # stable version
...
% nodebrew ls
v0.10.12
% nodebrew use v0.10.12
use v0.10.12

2.heroku 内にアプリを登録

Heroku | Login 内で、下部にあるCreate a new appを選択し、今回のアプリケーションを作成する。今回は適当に次のアプリ名で作成。


次に、git cloneでアプリ自分ローカル環境にもってくる。

% mkdir ~/Sandbox
% cd ~/Sandbox
% git clone git@heroku.com:sandbox-nsega.git -o heroku
...
% ls
sandbox-nsega
% cd ~/Sandobox/sandbox-nsega ※ ここを今回の作業ディレクトリとする。

3.Node.jsアプリケーションを作成

作業ディレクトリで、web.js という名前で、Hello World!だけのサンプルアプリを書く。

var express = require("express");
var app = express();
app.use(express.logger());

app.get('/', function(request, response) {
  response.send('Hello World!');
});

var port = process.env.PORT || 5000;
app.listen(port, function() {
  console.log("Listening on " + port);
});

次に、herokuNode.jsアプリとして認識されるように、npmとの依存関係を、package.jsonに宣言しておく。

package.json
{
  "name": "node-example",
  "version": "0.0.1",
  "dependencies": {
    "express": "3.1.x"
  },
  "engines": {
    "node": "0.10.x",
    "npm": "1.2.x"
  }
}

npmで必要となるパッケージをインストールする。

% npm install
...

4.ProcFileでプロセスタイプを宣言

作業ディレクトリに、ProcFileというファイル名で、プロセスタイプを宣言する。

ProcFile
web: node web.js

heroku toolbeltでインストールされたforemanを使って、ローカルからアプリを動かしてみる。

% foreman start 
01:47:11 web.1  | started with pid 55648
01:47:11 web.1  | Listening on 5000

5.gitの設定

作業ディレクトリ内で、作ったweb.js、package.json、ProcFileをgit更新するために、gitの設定をゴニョゴニョと行う。

% git init
% git add .
% git commit -m "init"

6.herokuアプリデプロイ

herokuアプリデプロイする。作業したときの印象は、簡単。

git pushしたときに、npm周りでWARNが大量に出ているが今はスルーしておくorz

% heroku create
Creating fierce-oasis-1314... done, stack is cedar
http://fierce-oasis-1314.herokuapp.com/ | git@heroku.com:fierce-oasis-1314.git

% git push heroku master
Counting objects: 375, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (336/336), done.
Writing objects: 100% (375/375), 344.35 KiB | 190 KiB/s, done.
Total 375 (delta 23), reused 0 (delta 0)

-----> Node.js app detected
-----> Resolving engine versions
       Using Node.js version: 0.10.12
       Using npm version: 1.2.30
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
       npm WARN package.json node-example@0.0.1 No repository field.
       npm WARN package.json node-example@0.0.1 No readme data.
       npm WARN package.json cookie-signature@1.0.0 No repository field.
       npm WARN package.json fresh@0.1.0 No repository field.
       npm WARN package.json methods@0.0.1 No repository field.
       npm WARN package.json range-parser@0.0.4 No repository field.
       npm WARN package.json send@0.1.0 No repository field.
       npm WARN package.json bytes@0.2.0 No repository field.
       npm WARN package.json formidable@1.0.11 No repository field.
       npm WARN package.json pause@0.0.1 No repository field.
       npm WARN package.json node-example@0.0.1 No repository field.
       npm WARN package.json node-example@0.0.1 No readme data.
       npm WARN package.json cookie-signature@1.0.0 No repository field.
       npm WARN package.json fresh@0.1.0 No repository field.
       npm WARN package.json methods@0.0.1 No repository field.
       npm WARN package.json range-parser@0.0.4 No repository field.
       npm WARN package.json send@0.1.0 No repository field.
       npm WARN package.json bytes@0.2.0 No repository field.
       npm WARN package.json formidable@1.0.11 No repository field.
       npm WARN package.json pause@0.0.1 No repository field.
       express@3.1.2 /tmp/build_145kywajhj0hr/node_modules/express
       connect@2.7.5 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/connect
       qs@0.5.1 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/connect/node_modules/qs
       formidable@1.0.11 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/connect/node_modules/formidable
       cookie-signature@1.0.0 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/cookie-signature
       buffer-crc32@0.1.1 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/connect/node_modules/buffer-crc32
       cookie@0.0.5 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/cookie
       send@0.1.0 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/send
       debug@0.7.2 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/debug
       mime@1.2.6 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/send/node_modules/mime
       fresh@0.1.0 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/fresh
       range-parser@0.0.4 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/range-parser
       bytes@0.2.0 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/connect/node_modules/bytes
       pause@0.0.1 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/connect/node_modules/pause
       commander@0.6.1 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/commander
       mkdirp@0.3.5 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/mkdirp
       buffer-crc32@0.2.1 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/buffer-crc32
       methods@0.0.1 /tmp/build_145kywajhj0hr/node_modules/express/node_modules/methods
       Dependencies installed
-----> Building runtime environment
-----> Discovering process types
       Procfile declares types -> web

-----> Compiled slug size: 4.1MB
-----> Launching... done, v4
       http://sandbox-nsega.herokuapp.com deployed to Heroku

To git@heroku.com:sandbox-nsega.git
 * [new branch]      master -> master

7.herokuデプロイしたアプリを確認する

heorkuにデプロイしたアプリがどう表示されるか気になるので、確認する。

% heroku ps:scale web=1
Scaling web dynos... done, now running 1

% heroku ps
=== web (1X): `node web.js`
web.1: up 2013/07/07 01:50:09 (~ 1m ago)

% heroku open
Opening sandbox-nsega... done

% heroku logs
013-07-06T16:56:01.016353+00:00 heroku[router]: at=info method=GET path=/ host=sandbox-nsega.herokuapp.com fwd="106.189.50.35" dyno=web.1 connect=1ms service=4ms status=200 bytes=12
2013-07-06T16:56:29.940367+00:00 heroku[api]: Scale to web=1 by XXXXXXXXX@gmail.com
2013-07-06T16:54:54.901066+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=sandbox-nsega.herokuapp.com fwd="106.189.50.35" dyno=web.1 connect=0ms service=2ms status=404 bytes=34
2013-07-06T16:57:38.423061+00:00 app[web.1]: - - - [Sat, 06 Jul 2013 16:57:38 GMT] "GET / HTTP/1.1" 200 12 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36"

heroku psコマンドで、アプリプロセスを確認できる。

heroku openコマンドで、ブラウザデプロイしたアプリが表示される。

heroku logsコマンドアプリのログを確認できる。今回はタイムスタンプGMTのままでてる。(グリニッジ標準から、東京は+9時間)

今回のアプリURL名:http://sandbox-nsega.herokuapp.com/

ここまでで、Hello World! の表示が確認できた!!


まとめ

herokuのaddonを見ると、PostgreSQL, MongoDB, Redisデータストアのミドルウェアも簡単にセットアップして利用できるので、今度はMongoDB周りと併せて使ってみようかと思う。これからもherokuなにか動作するモノ作ってみたいってときは、どんどん利用していきたいところ。


参考URL

heroku 本家 が提供しているドキュメント
Node.js 関連
Node.jsエディタEmacsを使ったのでその時に利用したアドオン(今回は説明省略)