SIerなのにインターネットに接続できない!? | Your Days on Lifebook開発日記

オフショア開発のデメリットとして、即時対応が難しく、タイムラグが一日以上あることがあげられます。しかし、Your Days on Lifebookのインド人エンジニアチームのレスポンススピードは国内開発と同等、もしくはそれ以上のスピード感で開発をしています。通常、変更指示をすると2〜3分内に返信があり、その後、優先課題の場合は直ぐに修正作業に取りかかります。

どうしたことか、きょうは連絡をしても一切反応がありませんでした。夕方になっても返事がなかったので、心配になり、インドに関する記事を読み漁りましたが、大きな災害は発生していないようでした。

その後、何事もなかったように、「地域一帯で日中にネットワークトラブルが発生して連絡取れんかった、ごめんね〜。」と軽いタッチで連絡がありました。何事もなくて良かったです。

 

Amazon EC2環境構築〜PHP+mysqlインストールまで

By 2013/04/16 No tags Permalink

Amazon Web Services

本日は、Amazonが提供するクラウドコンピューティング•サービス「Amazon Web Services」のAmazon EC2を用いて、クラウド•サーバーを構築します。AWSは「初期投資を抑え低コストでサービスを開始できる」、「トラフィックに対応して柔軟にスケーラビリティが可能」、「99.95%の可用性、堅牢なセキュリティー」、などAWSメリットは上げれば切りがありません。

しかし、AWSは多種多様なサービスを展開しており、そのためAWSは一見複雑そうであり、なかなか実際に使ってみようと一歩を踏み出せない事実もあります。

そこで、今回は10分でAmazon EC2環境構築からPHP+mysqlインストール、動作確認をすることを目標に、説明事項を絞って解説します。

 

Amazon EC2環境構築

 

AWSサービス一覧

Services内容一覧、サービス項目は多いですが今回使用するのはEC2のみです。

①EC2を選択します。

 

 

EC2ダッシュボード

左のサイドバー、Actionsはサーバー構築後に使用します。

①EC2サーバーの所在地域を設定できます。自サイトへのトラフィック数が多い地域を選択します。日本でサービスを展開する場合は、通常Tokyoを選択します。

②Launch Instanceをクリックするとサーバー構築が開始できます。

 

 

新しいインスタントをつくる

EC2サーバーの構築方法を選べます。初めての方はClassic Wizardがオススメです。

①今回は、Classicを選択します。

 

 

OSを選ぶ

Amazon Linux、Red Hat Enterprise Linux、UbuntuなどのLinux各種、Windows Server、あらかじめ多様なOSがEC2には準備されています。用途に応じて、選んでください。

①AWS Marketplace対応済みであり、OS使用料が無料のAmazon LInux AMIがオススメです。用途に合わせてOSを選びSelectをクリックしてください。

 

 

スペックを決める

①構築するサーバーのスペックを選べます。自サイトのトラフィックに合わせて選んでください。サーバー構築後でも、簡単に処理能力のスペックアップ、分散処理によるスケールアウトができるため、とりあえず最もコストが低いT1 Microを選ぶと良いでしょう。

②サーバーの所在場所に応じて、Availability Zoneを設定できます。Tokyoの場合はap-northeast-1a、ap-northeast-2a、ap-northeast-3aが選べます。今回はap-northeast-1aを選びます。

③1,2を設定後、continueをクリックして次に進んでください。

 

 

オプションの設定

①EC2サーバー監視ツールのCloudWatch使用の有無を選択できます。CloudWatchをonにするとCPU消費量、通信量を簡単に確認できるようになるため、使用することをオススメします。

②EC2サーバーは簡単にterminate(削除)することができます。そのため、クリックする場所を間違えただけでEC2サーバーがterminateされてしまします。プロテクションにチェックを入れとけば、terminate実行プロセスを複雑化することができ、凡ミスによるEC2サーバーのterminateを防止することができます。

③EC2サーバーをシャットダウンした際の処理をStopまたはterminateのどちらのにするか設定可能です。Stopに設定するのが無難です。

④1,2,3の設定を確認した後、Continueをクリックして次に進みます。

 

 

秘密鍵の作成

①Create a new Key Pairを選択して新しい秘密鍵を作成します。

②任意のKey pairの名前を付けます。

③名前を付けたKey pairをCreate & Downloadをクッリクすることで、作成、ダウンロードすることができます。

④Key pairを作成、ダウンロード後、Continueをクリックして次に進みます。

セキュリティーグループの作成

①Create a new Security Groupを選択して新しいセキュリティーグループを作成します。

②任意のセキュリティーグループ名を付けます。日本語は使えません。

③任意のセキュリティーグループ説明文を付けます。日本語は使えません。

④SSH、HTTP各選択後、Add Ruleをクリックして、TCP Port-22(SSH)と80(HTTP)を開きます。

⑤1~4を設定後、Continueをクリックして次に進んでください。

 

 

クラウドサーバー構築

  解説したページ以外にも何ページか表示されることがありますが、Continueをクリックして次に進めば問題ありません。

①表示された内容で問題なければ、Launchをクリックすれば、自分だけのクラウドサーバーを構築できます。

 

ターミナルからクラウドサーバーを設定~PHP/mysqlインストールまで



EC2ダッシュボードのActions

EC2サーバーは構築できましたが、このままでは使い物になりません。そのため、自サーバーの設定する必要があります。先ほど、作ったKey Pairを使って自分のパソコンのコマンドラインから直接自サーバーの設定することができます。(Macのターミナルを使用)

①構築した自サーバーを選択します。

②その後、Actionsボタンをクリックします。

③Connectを選択します。

 

 

SSH接続

①二つの接続方法がありますが、今回は上のConnect with a standalone SSH Clientを選びます。セキュリティーグループ設定時、TCP Port-22(SSH)を開けとけばSSH接続が可能になります。

②ssh -iから始まるラインをコピーして、保存します。

 

 

ターミナルとUnixコマンド

先ほどダウンロードした秘密鍵を/Users下部にあるスペースに移動させ、パーミションをchmod 600 + 名前.pemで変更します。デフォルト設定では、pemキーはDownloadsフォルダにダウンロードされていると思います。ターミナルではUnixコマンドを使用します。

Unixコマンド

tabキー:入力補完と入力候補表示。

pwd:現在位置を出力。

ls:ファイル一覧を表示。

lsの後ろに -a,-lなどを付けるとファイル一覧表示にオプションをつけれます。

cd:ディレクトリの移動 mv:ファイル、ディレクトリの移動

chmod:ファイルのパーミションを変更

秘密鍵をUsers下部に移動させ、自身の居場所もUsers下部に移動させます。その後、先ほどコピーしたssh -iから始めるラインをそのままターミナルにペイストします。そうすると、(yes/no)と聞かれるので、yesと答えてください。

PHPとmysqlのインストール

この画像が表示されれば見事にAmazon EC2の自サーバへの接続は成功です。

PHP/mysqlをインストール PHP/mysqlのインストールは接続したターミナルに数行打ち込めば完了です。その前に、ターミナルのユーザー名がec2-user@….に変わっているか確認してください。

$ sudo yum -y install httpd php mysql と打ち込みます。インストールに少し時間が掛かります。

$ sudo service httpd start ここまで作業が済んだら、phpとmysqlがインストールされているか確認します。 $ php -v $ mysql –version と打ち込み、各バージョンが表示されたら大丈夫です。

 

 

動作確認

$ sudo vim /var/www/html/index.html を入力してファイルを作成します。ファイル内にHello Worldと打ち込み保存します。その後、アマゾンから振り分けられるIPアドレスで接続してみてください。クラウドサーバー上にWebページが作成されているはずです。

なにか質問がありましたらコメント欄にご記入ください。

1/fの揺らぎを感じる作業用BGM配信サービス4つ(すべて無料)

こんにちは。今日は久しぶりに雨が降っています。雨の日はなんか落ち着きます。実際、雨の音や電車の揺れ、川のせせらぎなどは人をリラックスさせる働きがあるそう。

これらすべてに共通して含まれているものがあり、それは1/fのゆらぎと呼ばれるものだそうです。なんか厨二的な響きです。 聞いたことはあったんですが、詳しく知らないのでWikiで調べてみると、
[quote align=”center” color=”#999999″]1/fゆらぎ (エフぶんのいちゆらぎ) とは、パワー(スペクトル密度)が周波数fに反比例するゆらぎのこと。ただしfは0よりおおきい、有限な範囲をとるものとする。(wikipediaより)[/quote]

意味がわかりません。

とにかく規則正しい音とランダムな音の中間の音が人を落ち着かせる効果があるそうです。また音ではなくて、ろうそくの火の揺れだとか、木漏れ日などの視覚的なものにも1/fゆらぎは存在しているようで、 確かに見ていると落ち着く気がします。ただ1/fのゆらぎはちゃんとした科学的根拠はまだないそうです。

今回はこのような1/fのゆらぎを感じることができる、BGM配信サービスをご紹介します。

RANYMOOD.com

ひたすらエンドレスに雨音を流すサイト。ただそれだけの、とてもシンプルなサイトです。時々、雷の音や小鳥のさえずり、車が通る音が聞こえて楽しいです。

JAZZ and RAIN

こちらは雨音と共にジャズやクラシックをエンドレスに流してくれるサイト。ジャズだけでなくクラシック、ラウンジなども選べるので気分に合わせて変更できます。プレイリストも作成できるそうです。

nature sounds for. me

このサイトでは自分で環境音を組み合わせて再生出来ます。自然の音や動物・昆虫の鳴き声、キッチンや花火の音など本当にいろいろな音が50種類くらいあるので、自分好みの音を組み合わせてみてはどうでしょうか。 また他の人が組み合わせた音が公開されていたり、作った音をエクスポートすることが出来るなど、機能が豊富です。

coffitivity

このサイトは上記のサイトたちとは趣が違ってカフェの音をエンドレスに流してくれるサイト。Webサイトのデザインがオシャレです。カフェでよく作業する人は自宅でも疑似体験できるので使ってみていかがでしょうか。静寂の中で作業するよりも少し音があったほうが生産性があがるそうです。

いかがでしたか。個人的にはJAZZ and RAINがシンプルなのでよく使っています。リラックスしたいときにはもちろん、集中したいときなどにもどうぞ。

伽藍か?バザールか?

ソフトウェア開発永遠のテーマ

ただいまアジャイルがダメか、良いかで(ごく一部の限られた社会で)大変な盛り上がりを見せているようです。僕も職種こそプログラマからコンサルタント、マーケティング、営業へと変化していったものの、サラリーマン時代は一貫してソフトウェア業界に生息してました。今にして思えば、僕がソフトウェア業界でキャリアを積んだ時期とアジャイルが世に広まった時期はほぼ同じだったようです。マイクロソフトの Visual Studio に Team Systemが登場した2005年に、日本中を飛び回って Visual Studioを使ってイテレーション開発をやりましょうなんて説いて回ってましたしね。そんな僕ですから、もちろんアジャイル側の人ってことになるでしょう。

 

「アジャイルがダメだと思う7つの理由」から始まったアジャイル論争の現時点のまとめ

 

議論の内容自体は、上記サイトを参考にしてもらうとして、色々と考えさせられました。そして、あらためて思いました。アジャイルかウォーターフォールかの議論は10年以上経ってもあんまり変わってないんだな、と。

 

開発方法論に良し悪しはない

たとえば、実体経済よりも一歩先行する金融経済の世界では、超巨大で、超複雑で、しかも極めて高いセキュリティが要求される超高度なシステムが日々運用されています。現代の金融機関にとってはまさにシステムこそが命ですね。そのような巨大なシステムをアジャイル手法で開発するというのはやはり想像できません。東京スカイツリーやエンパイヤステートビルを事前の構造計算や設計、人員計画、必要な部材の調達計画なしで建造することは不可能だと誰にでもわかるでしょう。

一方で今、ビジネスの世界でのキーワードはコンシューマライゼーション(消費者個人)です。昨今のテクノロジの進歩によって、毎日のようにどこかで斬新なサービスやソフトウェアが生み出され、それがSNSを始めとするインターネットを介した新しいコミュニケーションツールによって世界中に広まっていく、このような現象はほんの数年前まではなかったことです。そうなると必然的にトレンドが移り変わる速度も加速することになります。

同じ金融機関であっても、今度は基幹系とは異なる情報系システム、たとえば「新婚カップル向け新築ローンアプリ(アベノミクス対応)」などの場合、あれこれソフトウェア開発の計画を立てて、社内稟議を回して、ダウンロード数の予測を立てて、なんてやるのは馬鹿な話です。こちらは、それこそ開発計画や詳細設計などを作る暇があるなら、さっさとアジャイル手法で動くものを作ってしまい、実際にユーザーのレビューや反応を見ながらアップデートを繰り返し、機能を拡充していくのが正しい戦略となります。3週間で開発して、運用しながらアップデートをして、半年後には運用終了なんてことが実現できるわけですからね。

 

伽藍かバザールか?

エリック・レイモンドさんは「伽藍とバザール」の中で小さなカーネルから始まった Linux を称賛しました。現にそれが今や社会を支える基盤といえるほどまで成長し、またオープンソースという思想をも広める重要な役割を果たしました。そして Linux がこれほど成功した裏側には、90年代のコンピュータの世界に、それ以前から脈々と育っていたハッカー文化があったおかげであることは間違いありません。そんなハッカー文化と非常に強い親和性を持つアジャイル開発と、日本の行政機関や金融機関、あるいは巨大製造企業の電算部門から発展したウォーターフォール型の日本のIT企業は残念ながら簡単にはわかり合えないというのも仕方ないのかもしれません。

ご存知の通りインターネットの登場によって主に金融や情報が国境を自由に越えて行き来するようになりました。しかし、今世界経済のトレンドは、グローバルな自由化です。今後は金や情報だけでなく、ヒトやモノがもっともっと激しく流通するようになるでしょう。日本にいると全然気づきませんが、本当に今世界は凄まじいスピードで変わりはじめています。

「バザール方式」よりも「伽藍方式」を得意としてきた日本のIT企業は、バザール方式のダメな所を探すよりも、むしろうまく取り込む必要があるのではないかと思います。僕らピアズ・マネジメントでは、これを「城下町方式」と呼んでいます。日本の城下町は、中心に立派な天守閣があり、その周辺に自由闊達なる商工業の町が形成されていました。どちらが良いという二者択一ではなく、両方です。この両方をバランス良く成長させることで、経済的にも、軍事的にも強い国(藩)となったのではないでしょうか。重要なのは「伽藍もバザールも」ってことです。

 

最後はやっぱり人

日本のソフトウェア開発者に求められるのは、どちらの開発手法が良いのかを議論することよりも、両方に精通し、それぞれの良いところを柔軟に取り入れながら、社会や消費者が求めているシステムを素早く提供していくことではないかなと思います。なぜならば、ソフトウェア開発方法論の議論は、最後は必ずそれを実行する開発者の能力にかかっているという結論に行き着きますからね。

 

強いけど忘れないパスワードの作り方

インターネット時代のセキュリティリスク

今月1日(2013年2月1日)ツイッターがサイバー攻撃を受けたそうです。原因は定かではありませんが、先日脆弱性が問題化したJavaの可能性もあるようです。サービス提供サイドとしてはセキュリティをこれまで以上に強化して欲しいところではありますが、僕たちユーザーも気をつけなくてはいけませんね。

では僕らが気をつけるセキュリティとは何でしょうか?最も身近で最も重要なのはパスワードです。サービスサイドがどれだけセキュリティを強化してもパスワードが簡単すぎ、短すぎだと、それだけパスワードは破られやすくなります。「誰が私のツイッターユーザーをわざわざ乗っ取るの?」なんて思っちゃいけません。サイバー悪党はたかがツイッターのアカウントから様々な悪さを働きます。

特に危険なのは次の2点。

なりすまし

たかがツイッター。しかし、不正にアカウントを乗っ取られ、勝手にパスワードを変えられ、自分はログインができない間に、好き放題されたらどうなるでしょうか。

他サービスへの不正侵入

メールアドレスとパスワードがひとつバレると、その他様々なサービスでも同じようにアタックされます。つまり複数のサービスに不正侵入されちまう確率が極めて高くなります。これだけ多様なサービスがあると、サービスごとにメールアドレスを変えたり、パスワードを変えたりしている人はほとんどいないと思います。メールアドレスやパスワードが増え過ぎても逆に管理できないのでセキュリティリスクとのトレードオフになっていることを忘れちゃいけません。

忘れない、でも強力なパスワードの作り方

今日飛行機に乗るちょいと前に空港で日テレのZIPをたまたま見たのですが、簡単に覚えられてかつ強力なパスワードを作るテクニックが紹介されていましたので、それと僕が大学時代に先生から教わったパスワードの作り方を合体させてメモしておきたいと思います。

基本は大文字・小文字・数字・特殊文字・12文字以上

例えば、小文字だけで、しかも実在する地名や名前、辞書に載っている単語だと、プログラムによる総当り(Dictionary Attack)でパスワードは解析されてしまいます。しかし、大文字・小文字・数字・特殊文字で12文字以上あると、その組み合わせは膨大になります。1人を解析するだけで何時間もかかるようでは、何十万人も解析することは実質不可能となるでしょう。だから、みんなが強力なパスワードにすることは、とても大切なことなのです。つまりこんな感じです。

ibO=qm9$t2N3

かなり強力なパスワードです。が、ちょっと覚えられっこありません。そこで実際に使うのは、このような乱数的なパスワードではなく、パスフレーズというテクニックです。

金沢

これをローマ字にします。ここでは金沢としましたが、自分のフルネームや、区市町村名とか、自分の好きな芸能人とかキャラとか、絶対に忘れないものであればなんでも良いです。

kanazawa

単語の最初と最後を大文字にします。これはルールです。ルールだと忘れないもんです。

KanazawA

最初のaを@に変えます。変換するのは最初の1個だけか、全部か、どちらかです。中途半端にすると混乱します。こちらも自分の中で「最初のaだけ@にする」とか「aはすべて@にする」というルールにしておきましょう。

K@nazawA

ハイフンと誕生日をくっつけます。誕生日じゃなくても車のナンバーとか電話番号の下4桁とか絶対に忘れないものならOKです。これも統一するようにしましょう。パスワードによって車のナンバーだったり、誕生日だったりでバラバラにすると必ず混乱するものです。

K@nazawA-1031

そしてサービス名やカテゴリ特有の文字をくっつけます。これによって強力なパスワードでありつつも、複数のサービスで管理できるうまい方法ですね。

<SNS用のパスワード>

K@nazawA-1031-SnS

<ツイッター専用のパスワード>

K@nazawA-1031-TwitteR

<その他サービス用のパスワード>

K@nazawA-1031-[Another service namE]

僕の場合は、さらにこの後に一番最後は!とか$で終わるというルールにしています。<例:K@nazawA-1031-SnS!>とりあえずパスワードはまずはルールを決めてから作るというのが鉄則です。適当に作ったパスワードは必ず忘れます。忘れるから簡単なパスワードにしたり、メモ帳に書いたりしちゃうんですね。忘れないけど、強力なパスワードを作ることは可能です。特にクレジットカードや住所・電話番号などの個人情報を登録しているサイトは、必ず強力なパスワードにすることと、他のサイトで使っているパスワードを再利用しないことは徹底するようにしましょう。

インターネット上での自分の身は自分で守るしか無い

インターネットは便利である反面、悪用するにもとても便利なツールです。繰り返しますが、僕らユーザーが自分の身を守る最も重要で、そして簡単な方法はパスワードを強力にすること、そしておかしなWebサイトやメールは開かない、リンクはクリックしないことです。ぜひ、このエントリーを見て、ご自身のパスワードを思い返してみてください。ヤワなパスワードだと思ったら、今すぐに変更しましょう。