2013年12月20日金曜日

#Kindle 写真集を出版しました

「出版」というと、なんだか大層な響きですが、撮影した写真をいくつか纏めてファイルにして、Kindleで公開(販売)することにチャレンジしてみました。

商品はこちらになります。




今回は、テイスト的にはアイドルの写真集のような「基本は写真+ほんの少しのポエム(?)」のスタイルで作ってみました。

はっきり言って「300円だから許してねw」というレベルの作りだと思います…。
が、写真は個人的にはすごくいいものが撮れてると思っています。

Kindle本自体の作り方は、詳しい方がブログの記事にしたりセミナーの教材にしたりしてるみたいなので、その辺を調べていきたいと思いますが、日本語版ではPDFがサポートされていないという点は注意事項です。
ePubを作るのが大変な場合、MS-Wordファイルが一番楽ちんな選択肢になるかと思います。
なぜかMS-Wordファイルはサポートされている…。

300円カンパしていただける方は是非、Kindleからダウンロードして、感想を教えて下さい。


2013年12月8日日曜日

架空の会社の情シスになってPowerShell #psjp

この記事は,PowerShell Advent Calendar 2013の8日目の記事です。

こんにちは、PowerShell初心者のTearTheSkyです。

無謀にも、PowerShell Advent Calendar 2013に申し込みました。
当初は、お友達にヘルプを求められてユーザ名からSID取ってくる処理が思いのほかかっこよかったので、そのへんを記事にしよう思っていたんですが、ドメインコントローラに接続できる環境ならクソ簡単なことに気づいて記事にならないとわかったのでやめました。

ということで、架空の出来事ですが、3年前の夏、御徒町のスタバでドヤ顔でDELLのノートブックをまさぐっていると、金髪短髪のノリのいい外人のおっさんが向かいの席に座って話かけてきたときの話を書きます。

「へいYou!君はギーク?」
「日本人にその手の質問すると大抵期待する結果が得られませんよ」
「ということは君 is Otaku?」
「まぁそうです」
「いきなりまじめな話になるんだけどさ、君SEでしょ?俺の会社で働いてくれない?今の給料+10%出すよ」
「は?オフィスはどこ?」
「え、御徒町駅から徒歩10分」

ということで、最近活況なエンジニアの転職市場を横目でうらやましそうに見つつ、重度の社畜的御奉仕を求められて辟易したり疲労困憊していた私は、現在の会社と同じ金をくれるという外人さんの会社に転籍することにしたのでした。ヘッドハンティングというやつですね。いいですね~。

で、初日。

「いいかい、君はこの"利益を生み出すオフィス" であるMy Profit Center 略してMPCでITインフラストラクチャのマネージャとして働いてもらう。我が社は優秀なチームメンバーのおかげでいい感じの利益を出せているが、ここで大きめなstandardizationを起こして、事業としてよりどでかく拡大できるように組織の構造を変えていきたい。わかるか?」
「ええ、なんとなくは…」
「具体的には、今の社員が高いスキルで多くのタスクをこなしているが、そのうちのいくつかを細かく砕いて、社員よりはスキルの低い、コストの安い派遣社員にやってもらうように変えたい。それから、逆にコストの高い一芸に秀た派遣社員も雇って社員のパートナーとしてガンガン稼いでもらう。君にはそういう世界がうまく回るようなITを実現してほしい。」
「なるほど、わかりました頑張ります。」
「とりあえず、君にはActive Directoryを構築してもらいたい。今我が社の社内システムは無法地帯でセントラル管理なんか出来ていない状態だ。幸いにも、プログラマでもないのに仕事でMacを使わせろというニュービーなマカーはいないから、社内のITはWindowsメインで行こうと思っている。」
(なるほど、それでリア充っぽくないけどなんか中途半端なオレに声をかけたわけか)

「じゃあADを構築します。今の組織を図示してもらえますか?」
「うーんと、簡単にいうとこんな感じ」



「我が社は食べ物、飲み物、そしてキッチンまわりに関する、ハイセンスで質の高い商品を探してきて世の中に提供する仕事をしている。ビバレッジ、フード、キッチンの3つの部署があり、その中にさらにいくつか分類がある。」
「なるほど、そういえば、会社の名前をまだ聞いてなかったんですが」
「TearTheSky.comでいこう」
「あ、はい」

ということでActive Directory環境実現のためにドメインコントローラを構築します。今回はちょっともう古くなってきましたが、Windows Server 2008 R2 で構築します。
サーバマネージャから「Active Directory ドメインサービス」の役割をインストールし、再起動した後に、再度サーバマネージャを確認するとdcpromo.exeを実行しろ画面が出てくるので、クリックして設定を行います。



色々頑張って設定すると、ドメインのアカウントで



ようこそ


さてこれで最低限のドメインコントローラは完成です。本当は2台の冗長構成にしたりするんですけど、ベンチャーだしまずは1台でいくという設定にします。

さて、次は社員のアカウントを登録しなければいけないですね。
「もう実は派遣社員の手配はできているんだ」
ということなので、こんな感じのCSVファイルを用意しました。

そしてこんなコードを用意して、

実行するだけでほら!


ちゃんとユーザが作れてるし、このユーザはちゃんと赤坂勤務になっています。


ちゃんとワイン部所属で、上司はちゃんとBoss00になっていますね。

上記のスクリプトは、「Import-Module ActiveDirectory」というコマンドを行い、ActiveDirectoryに関するPowerShellコマンドレットを使えるようにしています。
これは、ドメインコントローラに直接ログオンした状態か、もしくはドメインに参加したコンピュータである場合はすぐに利用できます。

…ふぅ。まぁ、PowerShellを使えばこんなもんですよ。
そんな感じで、Windows Server管理者への道を歩み始めた架空の三年前の私でした。

(半年後)

冬になったある日、ボスにこんなことを頼まれました。
「ヘイYou!今わが社の全社員が何人居て、そのうち管理職が何人、主任が何人、一般社員が何人、派遣社員が何人かを教えてくれないか?」
「分かりましたボス、ちょっと待って…」


「ヘイBoss、このCSVをExcelで開いて、title列でフィルタして、役職ごとに表示させれば、出てきた行数が社員数だよ」
「OK~でもこれ面倒くさいな、明日までにもうちょっとマシな方法考えてくんね?」
「oh...yes」

ということで考えた結果


「ヘイBoss、こんなかんじでコマンド打って今度から教えますわ」
「いいじゃん、今度からそれ半期ごとにメールしてちょ」

ということで事なきを得たのでした。


…これで終わりです。内容薄くてすみません。

お伝えしたかったのは、PowerShellを利用すれば、これまでよりも簡単かつ柔軟にActive Directoryの管理を行うことができるということです。
もちろん、PowerShellの初期導入に関わるコスト(主に勉強時間が必要なこと)を受け入れる必要はあります。
それから、Active Directory操作用のスクリプトは、「その組織がどのようにActive Directoryを利用しているか」に依存しますので、設計書や設計思想などをできるだけ詳細に把握する必要があります。

全くなんにも新しい内容ではないんですが、これからPowerShellをやってみたいと思っているWindowsServer管理者の方の後押しになれば幸いです。

では、良い週末を。

2013年10月9日水曜日

呼び水シート

最近全然ブログを更新していなかったので、景気付けに簡単なお話を…。

実は今遅い夏休みをいただいて実家でのんびりしているのですが、
積んであったビジネス雑誌を読破する目標を立てて読んでみたりしています。
昨日は「週間 東洋経済 2012年3月31日号」を読んだんですが、
使ってみたいな、とおもった思考フレームワークがあったのでメモ代わりに。

「呼び水シート」と呼ばれる、想定問答集です。

 

一つのおおまかな質問にたいし、相手が回答しそうな答えを3パターン用意しておく。
そしてその回答の1つに対して、さらに深堀りするような質問を3つ考える。
これを3セットもやれば、事前に質問したいことが27個もできるということで、顧客と話をする際にそれらの質問に引っかかって話が広がる、つまりこれらが「呼び水」になるということなんですね。

雑誌では営業用のTipsとして紹介されていましたが、ITシステム開発の要求定義のヒアリング何かにも使えそうですね。

もちろん、顧客の背景をある程度理解して、その知識とセットにして対談に望む方が良いです。なので、そのような情報を社内、部署内、チーム内などで共有できていることも大事ですね。
その辺はナレッジマネジメントの領域ですね。知識の共有と整理…。
そういう知識も不足しているような気がするので、これから勉強していきたいですね。


話は変わりますが、最近アーモンドの栄養価のバランスの良さにびっくりして、おやつにし始めてみました。思ったより美味しいです。素焼きもいいですけど、塩味のやつもいいですね。折角ダイエット効果があるので、食べ過ぎには注意したいところです…w


素焼きアーモンド 260g

2013年8月18日日曜日

Cisco iOSのSNMPTrapの種類について

こんにちは。最近はなぜかネットワークのプロジェクトをやっているわたしです。
担当範囲が狭いとはいえ、経験ゼロからだと勉強しなきゃいけないことがいっぱいで大変!

仕事のなかでこんなページを参照する必要がありました。

SNMP-Server Enabled Traps を設定した場合に送信されるトラップ
http://www.cisco.com/cisco/web/support/JP/100/1007/1007841_SNMPTrapsInImages-j.html


SNMPTrapでこんな情報飛ばせまっせっていう情報なのは分かるんですが、
はっきり言ってAAAとかBGPとかって何!
っていう感じで、割とちんぷんかんぷんなところが多かったので、
休日の宿題としてこんな表を作ってみました。

https://docs.google.com/spreadsheet/ccc?key=0AqenEwC7S50CdEF6TXdQZzZNVTZmUXBiVVBOdEhuSXc#gid=0


お粗末なところもありますが、ご愛嬌ということで。


2013年6月8日土曜日

乗り遅れてるSIerとして感じた #awssummit

AWS全く使っていない、クラウドなにそれ美味しいの的なレベルの、危機感を感じているSIer(インフラ)の目線で書きます。

2013/06/06 (Wed)に、awssummitに参加して来ました。

■awssummitとは?
Amazon Web Service のカンファレンスです。
毎年やっているみたいですが、私は今回が初参加でした。
全2日間あるうちの2日目のみ参加。



■公式ページ
http://www.awssummittokyo.com/?id=awswebsite
こんなかんじで、なんというか、スタートアップ的感情をくすぐられるデザイン。
いいですね。
このサイトが、イベント決済のシステムと連動していて、まずそこのアカウントを作ってから、申し込む必要がありました。
しかし、知ったのが1週間前だったので、人気のセッションはほとんど売り切れ。
残ってるものの中から興味があるものをチョイスして登録。
そして基本的に企業名とか書かなきゃいけないので、会社に在籍してるって大事だよなぁと振り返るように思いました。



■入場
品川のグランドプリンスホテル新高輪というところでした。
入り口がオシャレに撮れました。



あったこれだ、と思って地下二階に行ったんですけど…、




ホテルの従業員さん「Amazonさんのイベントは一階のずーっと奥だよ!」
なんと、ここはAmazon Data Service Japanの社員の皆様のためのスペースでしたwww
なんとか受付をすませて会場入り…。



■キーノート




こういうカンファレンスとかはたいていキーノートっていう開幕だけどまとめみたいなプレゼンがあるみたいです。
カンファレンスとか一回も行ったことなかったけどTwitterで学びました。
ネットって本当に凄いですよね。
メインスピーカーというか司会というかプレゼンターはアマゾン データ サービス ジャパンの社長の長崎さんという方。

1時間遅れで会場入りしたので、三井物産のプレゼンがちょうど終わるところからでした。
キーノートを聴いて感じたのは、やっぱり使ってもない立場でネットから流れてるおこぼれだけで情報を形成してると、明らかに情報が古くなるなぁと。
たとえばAWSはいわゆるパブリッククラウドですが、フツーに専用線とかVPNでセキュアネットワークを構築することが可能になっているとのこと。
そのため、「パブリッククラウドによるセキュリティの問題なんて殆ど無いんじゃないでしょうか」とか、「サーバをAWS上に移しただけでISMS取れたお客様もいます」なんていう発言を聞くことができ、すげぇと思いました、純粋に。

基本的に、「こんな事例がある、これからこうしたら?AWSで。AWSならヤバい感じでできるぜ?」というような意味の内容の説明の繰り返しだったんですが、プレゼンターの長崎さんがすごく上手い煽り方(聴衆の気持ちの乘せ方)で結構なんというか、胸熱というか、ヤバいというか、そういう感情を抱きながら壇上を見つめてた方も多かったのではないでしょうか。
SIerに勤務している私としてはやっぱり、「脅威の黒船が仕事をかっさらっていく!」みたいな語り口でAWSが話題にあがることが多いですから、再び危機感に煽られましたよねw
でもこういう感情はきっと大切なんですよね。
ビジネスは加速させてなんぼ、でしょうから。

それから個人的に強く印象にのこってるのは、「量の変化がしきい値を超えると質の変化になる。」という言葉と、「重力には逆らえないのではないか」 という言葉。
質的変化を起こすために我々エンジニア(もどき)は何回も勉強して、失敗して、トライ・アンド・エラーで進んでいくべきだし、今自分が一生懸命になっていることは後の質的変化につながるんだろうと思うと、なんというかグッと来ました。確か日立の社長さんが言ってたかな?
「重力には逆らえないのではないか」はAmazonの長崎さんがおっしゃってたのですが、これはもうほんとにその通りで、「クラウド化(インフラのAWS化)」は止められないでしょう。
少なくとも日本企業には。
そういう話は話題のここで散々語られているので、これくらいにしたいと思いますが…。
(ちなみにリンク先のブログとここは何の関係もなく、ただリンクを貼らせていただいているだけです…念のため。)

という感じの刺激的なキーノートでした。

キーノートが終わったら昼食で、周りの皆さんは会場で用意されているおいしそうな食べ物に群がっていたので、私はダイエットも兼ねて昼食はあきらめ、いくつか展示を回ってみることにしました。
展示は主に「自社プロダクトがAWSでこんなことできます・こんな連携します」というものと、「AWSのインテグレーション(構築・運用保守)承ります!」っていう自社の業務紹介系が多かったです。
Twitterで流れてた「RedHatの薄い本」ももらえたし、色々お話を聴いてインプットできて良かったです。


写真ほとんど撮ってないですね私wこういうイベントは行き慣れてないので、今後はもっと「写真とってもいいですか?」とかやって、なんか雰囲気が分かるような写真を撮りたいですね。

ということで、お昼が終わったら3つのセッションを聞きに行きました。



■デジタルマーケティングにおけるクラウド適用俯瞰図
http://www.awssummittokyo.com/session.html#DM-05
マーケティングに関する話題は、いま私が従事しているプロジェクトの事業ドメインから遠くて、深い話や専門用語はちょっと良くわからなかっったんですが、AWSのアーキテクチャのはなしをしてくださって、なるほどと思いました。
マーケティングのためにはまず大量にユーザ(Webサイト訪問者)からクッキーや訪問に関する様々な情報を取得し、保存し、解析する必要があるのですが、生データはS3などのストレージ系インスタンスに置いておき、そこからHadoop系のインスタンスとか、KVS系のインスタンスとかに渡してあげて、いじくって解析するっていうようなアーキテクチャになるみたいです。
静的コンテンツはS3とクラウドフロント、動的コンテンツはEC2とRDSと、コンテンツごとでインスタンスの種類を使い分けることで、いい感じにトラフィックをさばいて、遅すぎワロタみたいなことにならないようにしてるとのことです。
そしてやっぱり、クラウド(というかエラスティックな仮想環境)の何がいいかって「簡単にマシンを減らせること」ですね。
これは聴いたセッションの全てで言われていました。
そうなんですよ。プライベートクラウドでは、ホストマシン上のリソースの許す限りではいくらでも増やしたり減らしたりできるけど、ホストマシンが許すリソースを越えることはなかなかできない。プロビジョニングはできますけど、ぶっちゃけすぐに「あんたそれは期待しすぎや!」って感じで性能ダウンしちゃいますし。
それに逆に全然要らなくなった場合に、ホストマシンを半分にザクっと切って省力化できますか?っていうと、出来ないですよね…。
と、改めて「Elastic」のすばらしさを痛感。まだ使ったこと無いけど…w
あとスピーカーがおっしゃってたなかで、「システム設備投資に関する事業計画が実証ベースになるので、より正確になる。」っていうのがありました。
これは思わぬ良い副作用でしょうね。
最初だけちょっと誤差の大きい投資をして業務のAWS上での稼働実績をつくれば、今後はそれをベースに次の投資の程度が判断できますもんね。


■グローバル展開も視野に入れた、協和発酵キリンのクラウド活用事例
http://www.awssummittokyo.com/session.html#EP-07

ユーザ起業からみたシステム開発・運用に関する視点を多く確認できてよかったです。
仮想化技術を使ってプライベートクラウドを構築しても、ハイパーバイザやハードウェアのリプレイスは避けられないですよね。
SIerとしてはそれは仕事の機会と捉えちゃう、つまり良い事ですが、ユーザ企業からすると金と労力のムダでしかない。
「『サーバ飼い』なんて言葉もありましたが、私達はシステムを別に維持したいわけではなくて、『業務をより良く』したいんです。」というプレゼンターの方の発言が印象的でした。
ある程度力のあるIT組織を持つユーザ企業は思っているはずですよね。「辛いばっかりのリプレイスとかいった「オンプレのしがらみ」から脱却できないのだろうか」と。
ただ、AWSは従量課金制なので、利用料の制御がきちんとできていないと思わぬ痛みを伴うことがあるようですね。
社内にAWS上でのシステムを構築する歳は、コスト抑止策や課金について考慮する必要があります。
運用面については、「データセンタの運営」と同じ扱いで運用を行なっている」とのこと。AWSの利用は申請によって許可されます。
「マルチクラウドサービスの運用統治」が必要とおっしゃっていました。
「クラウドはサービスレベルが一方的だったり、選択制だったりする。しかしそういうものをうまく使いこなさないといけない」といったことが苦しんだようです。
そのへんはITILの出番ですね。ただ、社内手続きでクラウドの即効性を相殺するようにはしたくないですね。
サービスストラテジのレベルからITILをベースに、クラウドのスピードを殺さない業務の回し方を考えてみたいものです。


■コンテンツの変化はインフラの変化 ソーシャルゲーム vs. バンダイナムコゲームスの適応力
http://www.awssummittokyo.com/session.html#CS-07

バンダイナムコゲームスのソーシャルゲームのインフラについてでした。
オンプレの仮想化基盤資産があるので、原則オンプレだが適材適所で利用しているとのこと。
会社的には、「原則はオンプレ仮想基盤、適宜AWS」という方針だそうな。
アーキテクチャとしては、やはりWebサーバなどのトラフィック処理はEC2インスタンスを増やしたりして対応する。
Queのインスタンスやメモリキャッシュのインスタンスなども使っており、PaaSインスタンスは色々使ってみようというスタンスのようでした。
安定しないとき(忙しい時)はとりあえずスケールアウトする。それで凌いでから、チューニングし、そのあとスケールイン(サーバを減らす)していくというやり方でやってますということでしたが、おそらくどんな企業も高負荷時の対応はそのようになりそうですね。
それから、構成管理の効率化しないと辛いですよという言葉にはうなずきました。一括変更出来る仕組みあればとっさのチューニングにも対応できますが、そうでなければ数十のインスタンスに一つ一つ入っていったり…ってなっちゃいますもんね。
chefやPuppetでインスタンスの構成管理を…その辺もいじったことないなぁ。勉強しないと。
それから、バッドノウハウを簡単に紹介されていて、凄くためになりそうでしたが、残念ながら記録できておらず。
たとえばAmazonRDSっていうデータベースのインスタンスが凄く遅くなった場合には、更新頻度が多いテーブルのIndex処理が終わってないから、Indexを貼り直しましたとか、DBレプリケーションが終わらないなーと思って確認したら、スレーブスペックがマスターより低すぎて、マスターが新規に生み出すレプリケーション対象データを追いかけきれないとか。
あとでスライドは公開される?(どのセッションも見れるのかな??)ようなので、もう一回確認したいと思います。


■画像保存・共有サービス「NIKON IMAGE SPACE」における海外展開へのクラウド活用
http://www.awssummittokyo.com/session.html#CS-08

NIKONはカメラを買ってくれたお客様に、タダで20GBのストレージ+リッチGUIでの写真管理スイートを提供しているらしいです。
初耳でした。しかも製品を買わなくても2GBまでのアカウントなら無料で作れるんだとか。へー。
今回のセッションはその写真管理スイートをリニューアルして海外展開するにあたり、海外顧客からの性能に関するクレーム(遅い)にどう対応するかみたいな話でした。
性能を改善するにあたって、問題が遠隔地からのアクセスなのでスループットが出ないといった場合は、プログラム側で対策することはできますが、サーバ自体を海外に置くほうが効果は高いですよね。
そこでAWS、みたいな流れでした。
 ・複数リージョンがあるから、アメリカ置いて、ヨーロッパに置いて、アジアに置いて、みたいなことができる
 ・少しだけ置いて試せる
 ・契約が簡単だし、すごく早い(一般的なエンタープライズ契約の速度だと数週間簡単に消費しますもんね)
Webサービスなので当たり前ですが、TCP/IPの知識とWebの知識を使って、速度検証を行い、想定しているいくつかのアーキテクチャ案をAWSで実際に構築して試して、使い方の選定を行ったというところは大事だと思いました。
これまた当たり前ですが、事前検証はしっかり行うべきですね。なかなかできないからみんな苦しんでたりするんでしょうけど。
今回はサービスリプレースなので移行に関する仕事が沢山あり、大変だったようです。自分がもしシステムアーキテクトとして構築に携わるときは、移行はものすごく大掛かりな作業なんだよ?ということを上層部が理解する、もしくは上層部に訴えかけるといったことを気をつけようと思いました。
固有のアーキテクチャの話としては、システムに必要なキャッシュ処理・ログイン処理をAWS上で構築するよう再考することによって海外の顧客に提供できる速度を改善したということでした。このへんはWebアプリシステム開発をやってない私はよくわかりませんでした。XMLの読み込みがどうのとか。
あと、国際回線の品質はばらつきがあり、アメリカでも一般家庭の回線は日本の10年前の速度以下とかだったりザラにあるようです。海外展開のときはその辺も気をつけておきたいですね。


■SIerはAWSという「重大事象」をどう受け止めるべきか
AWSは事業のスピードを明らかに加速させ、エンタープライズではなかなかやらせてもらえない、
トライ&エラーでのエコシステム実現に挑戦できる、とても良いプラットフォームなので、
使わない手はないですよね。ユーザ企業としては。

仕事を奪われる側のSIerは今後どうしていけばいいんでしょうか…。

まず、大きい話を考えるのが好きな私は、こんな図を作ってみました。



SIerの事業領域的にどうするかっていう視点です。
どこも大変そうなので、やっぱりこういうエコシステムを作って日本企業からお金を巻き上げまくっているAmazonはすごいと思います。

次に個人としてはどう受け止めればよいのか、自分の考えをまとめると以下の2点に集約されました。

(1)コア技術は変わらないので泣かなくてもいい
もう何回も耳にしていると思いますが、「クラウド」は全く新しい未知の技術、ではなく、既存の技術のオーサライズ、総集編、技術の集約と応用です。
つまり、「非クラウド」な技術しか今の仕事の周りに無くて、「クラウド」にあやかれない、クラウドを学びたくても学べない、置いてかれる……と、悲観することは無いと思います。
既存の技術、今自分が目の前で仕事としてやっている技術、それらをできるだけ広く吸収することで、「クラウド」を学習する上でのしっかりとした土台ができあがります。
クラウドを学ぶ際の学習スピードがどんどん早くなるということです。
AWSに限って言えば、AWSSummitを聞いていると、「『ものすごく高等なITインフラ知識のパズル』をやっているような感じだなぁ」という印象を受けました。
あらかじめパズルのはめ込み方、ピースの作り方を学んでおけば、いざ1000ピースの本番パズルを渡されても、すぐにこなせるようになるのではないでしょうか。

勉強の方針としては、まずはオンプレでいいので、会社ではできるだけ新しめ、そして大きめの案件に関われるように仕事を頑張ります。
そしてその傍らで、AWSはありがたいことに事例サイトなど積極的に情報共有をしてくださっているので、そのへんに目を通して、「自分がAWSを使ってシステムを作るなら」みたいな妄想をします。
会社では要素技術に注目しながら働けるといいですね。使った技術はタスクが消化できたら終わり~ではなく、できるだけ自分のものにしていきたいですね。


(2)サラリーマン経験として、クラウドを使ったシステムのDevOpsに携われるか
ただ、(1)のように頑張って勉強しても、日本社会は「経験」がめちゃくちゃ重要視されますから、「お前色々知ってるけどクラウドやったことねーじゃn」と今後理不尽?不都合な評価を受けることになるかもしれません。
そうならないために、会社でクラウドシステムの経験ができるとたぶん凄くいいですよね。
社内にすでにそういう部署やプロジェクトがあれば、参画を希望してみたり、ベンチャー的部署に配属されればそのうち「クラウドやろうぜ」となる可能性もあるでしょうね。
私はオンプレですが仮想化基盤のプロジェクトに参加させていただいているので、ここからどうやってパブリッククラウドやハイブリットクラウドへシフトしていけるのかということを考えないといけないのかもしれませんね。



以上、長ったらしいAWS Summitのまとめでした。

2013年5月27日月曜日

システムの「正常」とは何か

最近はITインフラに関するお仕事をやっています。

おもに設計に関するお仕事ですが、
この前先輩より面白い質問を受けました。

「『正常』って端的に表すとなんだろね?」

ドキュメントに残す、簡潔な表現で『正常』を表す…
簡単なようでとても難しいですよね。

「『異常』ってなんだ?」という問いに対しては、

「『正常』じゃないこと」と言い切れますが、

じゃあ「『正常』ってなに?」と。

もちろん、インフラ上に構築するシステムによりけりな部分は
多々あると思うんですが、

できるだけ抽象化してまとめるとこんな感じじゃないでしょうか


・定義したシステムの機能がすべて稼働していること

・定義した測定項目がすべて閾値の範囲内であること

・定義したエラーが出力されていないこと

・ユーザからの不具合申告等がないこと

・その他動作感が想定通りもしくは想定に近いこと


という、自分なりの答えが出たのでメモとして
このエントリを書こうと思いました。

どこかにこういうの書いてあったりするんですかね?
IPAのサイトとか。

もっといい表現がありましたら教えていただけると嬉しいです。



2013年5月7日火曜日

2013年 1日目 SDKがアップデートできない

Androidのお勉強を再開したく、
殆ど使ったこともないEclipseを開いて
「へいYou,ADTが古臭ぇぜ?アップデートしていくか?」
みたいに聞かれたのでアップデートしました。

しかし失敗。

キャプチャとかメッセージのコピーとか
保存するの忘れちゃったので無いんですが、
なんか、ファイルを置き換えようとしている時に
eclipseがロックしてるから出来ませんって感じの
エラーでした。

おい、eclipseってあなたでは…?
Android SDKアップデートマネージャーみたいなのを
Eclipseから呼び出してアップデートしますよね?
そして処理の途中で「eclipse.exeがロックしてるから処理出来ません!」
って、おかしくね?

ググってみたらこんなページ

Windowsではファイルシステムの都合により、更新対象のファイルが開かれてたままだと上書きできないことが発生します。その際にはEclipseを終了させ、adb.exeが動作していない状態で、SDK Manager.exeをコピーの上実行するか、それでもうまくいかない際にはSDKをインストールした"android"をフォルダを"android_old"の様にリネームの上、再度新規インストールを試みてください。

あっ?と思い、エクスプローラで移動


ここにあるSDK Manager.exeを直接起動してみました。

そしたら普通にEclipseから起動した画面が出て来ましたね。
そして同じようにアップデートを実行。
今度はEclipse.exeにロックされているから云々のエラーメッセージは出ませんね。
これでいいのかー。たぶん。





アップデート出来ましたと言っていますね。良かった良かった。
この後「not installed」なプログラムは「installed」に変わって、
ひとまずはこれで良さそうです。


今日はここまで。

2013年4月7日日曜日

隅々まで理解するとういこと


■隅々まで理解するということ
会社では、テクニカルサポートみたいな仕事もやってます。
先日、ストレージのアレイコントローラーの機能を使ったスナップショットボリュームについてのお問い合わせがあり、うまく答えることができませんでした。

スナップショット機能は、仕様は違えどおそらくどのストレージベンダーの製品にもある機能だと思います。
しかし私は、共通的というか汎用的な概念、数学でいうと公式のような部分をしっかり理解していなかったため、サポートのリクエスト者に適切な回答を提供することができませんでした。


日々の仕事のなかでは、「必要な部分は理解できたから」という大義名分のもと、曖昧な理解度のままに仕事を進めることがあります。
たとえば今回のような場合は、「スナップショットというのがあるからどうやら過去の状態に戻れるらしい」という程度の、非常に概念的な話を関係者とやり取りするような。

プロっぽくないですよね。
いつどこでどんな質問がされるか分からないんだから、隅々まで理解しておいたほうが良いのではと最近よく感じます。
実際のインフラ機器がある現場へ赴く業務をやっている人、私もたまにありますが、そんな仕事をやっている間は、本当に重箱の隅をつつく感じで徹底的に調べあげるような気概で取り組みたいです。

理解している範囲が広がると、「想定外の質問を想定外に変える」ことができます。
そして想定内の質問や仕事が増え、想定外のものが減るにつれ、
無駄に長い残業が減り、帰る時間が早くなるのではないかなと思います。

「隅々まで理解する」を頭のなかにいつも置いておきたいと思います。


ディスクが一個でも故障してると、ホットスペアを用いたリビルドが完了していたとしても、ストレージによるリモートレプリケーションに失敗するなんて、思いもしませんでした…。
今回対応した機種独特の仕様だと思いますが、
要は「故障Aの影響で、思わぬ障害Bが発生する」ってことですよね。

つまり、「思わぬ」と思っている自分の頭の想定範囲が狭すぎるということですね。
これを「思ってた」に変えれるように、日々勉強していきたいです。

2013年4月3日水曜日

インフラメンテナンス計画 と Vimがんばります

■ITインフラのメンテナンスについて 
最近の仕事の一つにITインフラのメンテナンス計画の策定みたいなことがあります。
いろんな事を考えてあげなくちゃいけないから大変です。
まぁ大変じゃない仕事なんてないでしょうけれども。

0から考える際の切り口としては…
 ・いつ
 ・何を 
 ・誰が  
 ・どんな多重度で
 ・どんなマイナス影響があって
 ・どんな試験で確認して
 ・どんな環境で
 ・どんな期間で

などを考慮しながら計画をドンドンBreakdownしていきます。

ITインフラについて、どこまでだれが面倒を見るのかという考えについては、
できるだけ早く明確にしておいた方が良いのではないでしょうか。
「責任分界点」という言葉が使えると思うんですが、
どうも正直に言葉を習ったときの使い方のまま、

「障害発生時の責任追及試験紙」

のようにしか使われていない気がします。それって勿体無いような気がします。
予防保守においても、予防保守実施の責任分界点をきっちり決めて、
ここはアウトソース先にメンテナンスさせるのか、
それとも自社のエンジニアがやるのか、とか、
この機器はどれくらいの頻度でメンテナンスしてパッチを適用するのか、
一年に一回でいいのか、
それとも毎日丁寧に見て挙げなくちゃいけない箱入り娘なのか、
それとも障害がおこるまでほっとけばいい手間のかからない子なのか、
とか、
そういうところの議論は少し時間を取って行っても損にはならないのでないでしょうか。

当たり前といえば当たり前ですが、
運用保守の各業務の責任分界点を決めたいですね。
要は仕事を事前にきちんと細部まで考慮して
担当者をアサインしてましょうということですね。
基本こそきっちり忠実にこなす、私は苦手です…。


■Vimがんばります
会社でVimを使うようにしたいと思い、Vimを触り始めました。
iで挿入モードになったら普通のエディタとおんなじことできるとか、
その程度の知識しかない。なので勉強していかないと…。
教えてもらったのはざっとこんな感じ。

Ctrl + W + ?で画面(ウインドウ) をいろいろいじれる
・画面の分割
・画面を分割して空のファイルを開く

:edit ファイル名 でVim上からファイルを開く
:set number で行番号を表示
 →行番号は設定ファイルに書き込んでおいてあげて、
  いつでも表示されるようにしよう。 

PowerShellのカラーハイライトの設定をVimに入れてあげて、
LinuxマシンのVimでPowerShellが触れるようになってなんか便利なんですが、
そのあたりの復習メモはまた後日ということで…。

2013年3月31日日曜日

[Powershell] 日付計算とか日付に関するあれこれ

いきなり仕事でPowerShellいじってと言われてちょっと困惑、
プログラム触れてちょっと嬉しいTearTheSkyです。

久しぶり過ぎて忘れまくっているんですが…
どのプログラムでも必要になる、日付計算

まずPowerShellで日付を取得するのはget-dateコマンドです。
PS C:\Users\TearTheSky> Get-Date

2013年3月31日 11:41:11

こちらのサイトを参考にさせていただいたんですが、
PowerShell/Get-Dateで前日、翌日、前月、翌月などの日付を取得する方法

PowerShelだと日付型のオブジェクトに対して、
addDays
addMonths
addYears
といったプロパティが利用できるようです。

以下のようにすると、面倒くさい日付計算なしに、
1ヶ月前の日付を取得することが可能です。

PS C:\Users\TearTheSky> (Get-Date).addMonths(-1)

2013年2月28日 12:10:32


これはすごく便利ですね。

で、問題はここからで、


こーいう風に変数に入れたくなるじゃないですか。

PS C:\Users\TearTheSky> $lastmonth = (Get-Date).addMonths(-1)


そしたらこういう風に表示されますよね。

PS C:\Users\TearTheSky> $lastmonth



2013年2月28日 21:05:21


で、今のままだと$lastmonthはdate型だから、文字列型…stringにしたいと思うじゃないですか。
それでこうしてみたんです。


PS C:\Users\TearTheSky> [string]$lastmonth = (Get-Date).addMonths(-1)

PS C:\Users\TearTheSky> $lastmonth

02/28/2013 21:05:46

PS C:\Users\TearTheSky>


!?

いや、アメリカ式表記にしなくていいから!

そこで思い返りました。
俺が欲しいのって、yyyymmdd形式の8桁の情報だよな…と言うことは
こうすれば…


PS C:\Users\TearTheSky> $lastmonth = (Get-Date -format "yyyyMMdd").addMonths(-1)

[System.String] に 'addMonths' という名前のメソッドが含まれないため、メソッドの呼び出しに失敗しました。

発生場所 行:1 文字:53

+ $lastmonth = (Get-Date -format "yyyyMMdd").addMonths <<<< (-1)

    + CategoryInfo          : InvalidOperation: (addMonths:String) []、RuntimeException

    + FullyQualifiedErrorId : MethodNotFound


!?

まじかよ…

PS C:\Users\TearTheSky> (Get-Date -format "yyyyMMdd").gettype().fullname

System.String

-format スイッチを使うと、戻り値は文字列型になっちゃいます!

めんどくせえ…('A`)

ということで、結局こうしました。

PS C:\Users\TearTheSky> $lastmonth = (Get-Date).addMonths(-1)
PS C:\Users\TearTheSky> [string]$lastmonth = (Get-Date).addMonths(-1)
PS C:\Users\TearTheSky> $lastmonth = $lastmonth.substring(6,4) + $lastmonth.substring(0,2) + $lastmonth.substring(3,2)
PS C:\Users\TearTheSky> $lastmonth
20130228

やったね☆(ゝω・)v

2013年3月10日日曜日

[#CentOS][#Apache]Apacheにアクセスできない


Apacheが起動するようになったんだけど、なぜかクライアントからアクセスできない…。

ポートが開いているか確認

# netstat -ln | grep 80
tcp        0      0 :::80                       :::*                        LISTEN
unix  2      [ ACC ]     STREAM     LISTENING     8801   private/smtp
unix  2      [ ACC ]     STREAM     LISTENING     8805   private/relay
unix  2      [ ACC ]     STREAM     LISTENING     8809   public/showq

LISTENしてる。
状態確認してみても



$ /etc/init.d/httpd status
httpd は停止していますがサブシステムがロックされています


ん??
なにこれ。
ググってみると、80番が競合とかしてるんじゃないの?とのこと。

# /etc/init.d/httpd status
httpd (pid  1863) を実行中...

rootだと実行中になってるよね。


$ sudo /etc/init.d/httpd status
httpd (pid  3128) を実行中...

これは権限上そうなるというだけで、問題ないみたいだ…。


ググってみたところ、ロックファイルのせいかもしれないということで、ロックファイルを削除…


# rm /var/lock/subsys/httpd

結局原因はiptablesの設定不足でした。

iptablesについてはまた纏めて別記事にしよう。

[#CentOS][#Apache] CentOS6 でApacheが起動できない



CentOS 6 で httpd を起動させようとした時のこと

$ sudo /etc/init.d/httpd start
httpd を起動中: httpd: bad user name apache   [失敗]

なんじゃこりゃ。


■問題
Apacheが起動できない。問題はapacheユーザ


■原因
httpd.confには ユーザ:apache グループ:apache でhttpdを起動するようになっている。
ユーザとグループを確認してみよう…


$ cat /etc/passwd | grep apache
$


ユーザが居ない…


$ cat /etc/group | grep apache
apache:x:48:

グループはある。なんでこうなってんだ?


■対処
ユーザ「apache」を作ってグループ「apache」に入れてあげよう。


# useradd -g apache apache
useradd: /etc/passwd をロックできません。後でもう一度試してください。


は?(#゚Д゚)


# ll /etc/*.lock
-rw-------. 1 root root 5  2月 12 07:29 2013 /etc/passwd.lock
-rw-------. 1 root root 5  2月 12 07:29 2013 /etc/shadow.lock

これを消すか

# rm /etc/passwd.lock
rm: remove 通常ファイル `/etc/passwd.lock'? y
# rm /etc/shadow.lock
rm: remove 通常ファイル `/etc/shadow.lock'? y


これでもう一度apacheをuseraddして…あれ、もしかしてロックファイルがApahceをインストール剃る前からあって、もしかしてyumのインストールシーケンスの中でユーザ作成だけ失敗してたりしてるのかな?

ということでApacheをインストールし直す方向で。

# yum remove httpd
$ sudo yum install httpd httpd-devel mod_wsgi

Pythonの勉強したいからmod_wsgiも入れてます。
で、yum入りました。


Transaction Summary
================================================================================
Install       3 Package(s)

Total download size: 1.0 M
Installed size: 3.6 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): httpd-2.2.15-26.el6.centos.x86_64.rpm             | 821 kB     00:00
(2/3): httpd-devel-2.2.15-26.el6.centos.x86_64.rpm       | 150 kB     00:00
(3/3): mod_wsgi-3.2-3.el6.x86_64.rpm                     |  66 kB     00:00
--------------------------------------------------------------------------------
Total                                           2.2 MB/s | 1.0 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : httpd-2.2.15-26.el6.centos.x86_64                            1/3
  Installing : mod_wsgi-3.2-3.el6.x86_64                                    2/3
  Installing : httpd-devel-2.2.15-26.el6.centos.x86_64                      3/3

Installed:
  httpd.x86_64 0:2.2.15-26.el6.centos httpd-devel.x86_64 0:2.2.15-26.el6.centos
  mod_wsgi.x86_64 0:3.2-3.el6

Complete!


よし、もっかい行ってみよう。


$ sudo /etc/init.d/httpd start
httpd を起動中: httpd: apr_sockaddr_info_get() failed for db-cent6-1
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]

キタ!(゚∀゚) 条件付きだけどとりあえず起動するようになった。


WSGIの実行テストはまだできない…

2013年3月2日土曜日

情報処理技術者試験 データベーススペシャリスト 松岡修造で分かる2相コミット

こんにちは。データベーススペシャリスト試験に向けて
勉強を少しずつ開始しています。

仕事忙しくて今回も勉強時間確保できなくて落ちそう…
とか言ってるから落ちるんだよな。
頑張らないと。


さて、過去の自分のつぶやきをたどっていたら
データベースのコミット処理方式の2相コミットについて
こんなつぶやきをしていました。

どうやら2相コミットとは





ということらしい。
つまり、


全体一致でCommitしない限りロールバックっていうことですかねー。



データベースはに限らないですけど、試験に出るIT要素は、ちゃんと環境を用意して触ってみないと何かよくわからないままフワフワした感覚で覚えちゃいますよね。で、すぐ忘れる。
こうやってつぶやいたらまとめる勉強法は有りかもしれませんね。
そして自分のつぶやきを残しておくことはとてもいい事だなと思いました。



2013年2月17日日曜日

CentOSにVMware Toolsをインストール


備忘録として。

現在はWindowsメインのお仕事環境かつ、知識レベルや知識範囲の偏差が
割りと大きい環境だったりするので、自分よりよくわかってないメンバーに教える
ことも想定して今後はメモして行きたい。


■ 前提
    ・ESXにCentOSの仮想マシンを作成済み
    ・vSphere ClientでそのCentOSにアクセスできる
    ・Tera TermとかのSSHクライアントで操作できるほうが便利

 
■やりかた
1. vShere Client でVMware Toolsをインストールしたい仮想マシンを選んだ状態で、
    [インベントリ]-[仮想マシン]-[ゲスト]-[VmwareToolsのインストール/アップグレード]
    をクリックし、Linux仮想マシン(今回はCentOS6でした)にマウントさせる。
 
2.  /mnt/cdrom が無ければ mkdir /mnt/cdrom してディレクトリを作成する。
 
3.  mount /dev/cdrom /mnt/cdrom を実行して自分で作ったディレクトリに
    /dev/cdromをマウントする。
 
4.  /mnt/cdromを見てみると
    「vmwawVMwareTools-9.0.0-782409.tar.gz」みたいなインストーラファイル
    があるのでテキトーな個人領域へコピーする。今回は/usr/local/srcにした。
    コマンド的には
    -----
    cd /mnt/cdrom
    cp VMwareTools-9.0.0-782409.tar.gz /usr/local/src
    cd /usr/local/src
    -----
 
5.  解凍。自分の解凍オプションは並びが変なのを自覚してるけど気にしないことにする。
    tar xvzf VMwareTools-9.0.0-782409.tar.gz
 
6.  解凍したインストーラのディレクトリに入ってインストール開始
    cd vmware-tools-distrib/
    perl vmware-install.pl
    Enter連打して「デフォルト設定で入れました」と報告。ログさえとっときゃたぶん問題ない。

7.  終わったらゴミ掃除してインストールファイルを消します。
    cd ..
    rm -rf vmware-tools-distrib/
    rm -rf VMwareTools-9.0.0-782409.tar.gz
 
8.  マウントしているVmware Tools をアンマウント
    umount /mnt/cdrom


 
以下、新人レベルのチームメンバーを想定した説明
 
◆   1. を実行した段階で、CentOS内の /dev/cdrom にVMware Toolsがマウント
    される。パソコンのCDトレイにVMware ToolsのインストールCDを入れたイメージ。
 
◆   2.でディレクトリ作って3.でマウントしてるけど、自分で作ったディレクトリなら別に
    /mnt/cdromじゃなくてもいい。お作法的には、
    「/mnt/cdrom」か「/media/VMware Tool」らしい。

◆  WindowsだとインストールCDをいれるとあとはCDドライブのアイコンをダブルクリックする
    だけでインストーラファイルが見れるけど、Linuxでは特定のディレクトリに
    /dev/cdromをくっつけてあげないといけない。それがマウント。
    ここ読ませたほうが早そう
    Linuxの操作/CDROM - Vine Linuxワークステーション
    http://tksh.s2.xrea.com/index.php?Linux%A4%CE%C1%E0%BA%EE%2FCDROM
 
 
(参考)  
http://www.vmware.com/files/jp/pdf/vmware-tools-installation-configuration_JA.pdf