2015年8月22日土曜日

顧客はコンピュータが欲しいわけではない ~SoftLayerの設計演習裏話~

9月2日にSoftLayer Bluemix Summit 2015が開催されます。それに関連して「SoftLayer Meetup夏のブログコンテスト」が開催されています。本ブログもエントリしてみました。会社でやっているブログに参加資格があるのかどうか確認していないので失格かもしれませんけど。

SoftLayerはIBMが提供するIaaS、Bluemixは同じくPaaSです。

IaaSは、既存のOS環境を提供するため、既存のシステムからの移行が容易な反面、新規にシステムを構築する場合のメリットはそれほどありません。もちろん、自動的なスケールアウトや、「使った分だけ払う」というメリットは大きいのですが、それ以上の価値がありません。

一方PaaSは、新規にアプリケーションを作るときにOSの階層を考えなくていいので、管理コストを大きく削減できます。これが「気持ち悪い」という気持ちは分かりますが、自動化というのはそういうものです。

さて、グローバルナレッジでは今年2015年春からSoftLayerの研修を開始しています。

実際に開催されたのは残念ながら「SoftLayer Solutions Design」だけです。

今日は、この「SoftLayer Solutions Design」のオチをお話ししたいと思います。

このコースで取り上げるケーススタディは以下の3つです。

  1. eコマース...インディーズ系ミュージシャンのチケット販売サイト
  2. ソーシャルネットワーク...IBMのエンタープライズソーシャル製品「IBM Connections」をサービスとして提供するサイト
  3. ビッグデータ分析

eコマースについては比較的丁寧に講師が説明します。ここでは典型的な三層クライアントサーバーモデルの考え方を説明し、Webサーバーのスケールアウトや、RDBのスケールアップ、SoftLayerならではのベアメタルサーバーの利用について扱います。受講者の皆さんも、ベアメタルサーバーを積極的に使う方が多いようです。

ところで、テキストではインディーズ系ミュージシャンのチケット販売を扱うのですが、「数百席の小規模なライブハウス」という記述に戸惑います。日本のライブハウスの多くは100席未満です。1000人定員だと大きな部類でしょう。

正確にはこういう記述です。

同社の事業は、座席数 500~3,500 の小規模な場所でコンサートを開催し、インディーズ系音楽をメインスト リームのリスナーに売り込むことでした。

SoftLayer Solutions Design Version 1.0 Facilitator Guide.
Global Knowledge/Gilmore. VitalBook file.

ちなみにグローバルナレッジの東京教育センター近くの「アイランドタワー」にもReNYというライブハウスが入っていて、キャパ800人だそうです。この800という数字がいかに大変なものか。テレビ朝日「アイドルお宝くじ」11週連続勝ち抜き実績を持つアイドルユニットまなみのりさですら「800人キャパという箱はチャレンジなんだ」と強調していました。

力が入ってしまってすみません、どうでもいいですね。

一方、ソーシャルメディアについては多くの作業を受講者に考えてもらいます。こちらは社内のディレクトリサービスを、SoftLayer上のサーバーといかに連携させるかが問題になります。

また、ビッグデータ分析は、講師が概要紹介だけを行い、あとは自分で考えてもらいます。そもそもビッグデータに関しては、SoftLayerのようなIaaSで対応するより、何らかのPaaSを使う方が現実的ですので、IaaSの限界を示すことにもなっています。

以上が、本来の流れなんですが、eコマースについてはオチがあります。

IT業界の方は、新入社員のときに「顧客はコンピュータが欲しいわけではない」と習ったのではないかと思います。顧客はビジネスツールが欲しいのであって、それがコンピュータかどうかは関係ありません。

同様に、顧客はクラウドが欲しいわけではありません。他に方法があればそれでいいわけです。

SoftLayerはIaaSなので、そこにECサイト構築キットをインストールすることができます。一から作るよりは圧倒的に簡単でしょう(その代わり好きなように設計できない部分があります)。

さらに簡単なのがチケットサービスを利用する方法で、たとえばある会社の最も安いプランなら初期契約料ゼロ、1公演5000円プラス販売手数料8%。手売り用の紙チケットの用紙代が1枚10円、代行印刷を依頼したら1枚30円です。

100人に売るとしたら、1人あたり1公演の負担は8%+50円、3000円のチケットだったら3300円くらいです。これでシステムを自前で作る意味は何でしょう。どんな付加価値があればいいでしょう。

物販も同じです。アイドルユニットまなみのりさの公式サイトからSHOPリンクを選ぶと「まなみのりさ」のオンラインショップにジャンプします。

SHOPリンクは、実際には、所属事務所のオンラインショップのカテゴリ指定をしたURLです。そして、ショップ自体はstores.jpという、「最短2分でできる」が売り物のオンラインストア構築サービスを利用しています。

もちろん、自前でシステムを持つメリットはあります。しかし、それが本当に投資に見合うかどうかは経営上の判断を行う必要があります。

もちろん経営上の判断ですから、誰にでも成り立つ正解はありません。しかし、クラウドコンピューティングの研修というのはそこまで考えるべきだと思っています。

SoftLayer Bluemix summit2015

2015年7月31日金曜日

今年もやりますG-Tech ~役に立つ楽しいイベントを目指します~

グローバルナレッジのイベントG-Techが「G-Tech 2015」として今年も開催されます。テーマは「攻めのIT、それを実現する人材」です。各種アプリケーションサービスや、クラウドサービスの普及により、簡単なITシステムは誰でも作れるようになりました。企業の競争力を高めるためには、単にITを活用するだけでは駄目で、より高度なシステムが求められます。だからこそ、IT技術者はさらに高い技術を習得し、さらに上を目指す必要があります。

無料イベントですので、IT技術者の方やIT人材育成の興味をお持ちの方は、ぜひご検討ください。

特別セミナー G-Tech 2015 ~攻めのIT、それを実現する人材~

このG-Tech、元々は、私を含め、マイクロソフト系のトレーニングを担当している部署が独自に企画したものでした。当初は「Microsoft TechEdみたいな、お祭り風の技術セッションがしたい」ということで企画されました。

お手本となったMicrosoft TechEdは、他のイベントと統合され、重要性はさらに高まっていますが、お祭り色はかなり薄くなっています。

G-Techは、部門イベントとはいっても、実際には多くの方に協力していただきました。「TechEdと言えばおやつだろう」ということで、当時行列が絶えなかったクリスピー・クリーム・ドーナツを数十個確保するためにに早朝から並んだ人もいました(TechEdに限らず、米国のイベントは会場に常におやつが用意されています)。

G-Tech 2014のセッションドーナツは開場直後に提供し、1人1個を想定していたんですが、2個食べた人がいて社内でちょっとした事件になりました。ちなみに2個食べたのは少なくとも2人いて、いずれもマイクロソフトMVPの方です。いえ、別に責めていません。「1人1個」とはどこにも書いていませんでしたし、「ドーナツあります」という告知もしていません。会場の雰囲気を楽しんでいただければ、それでいいんです。でも、あの甘いドーナツを2個食べる人がいるとは思いませんでした。いえ、別に責めていません。

こうして開催されたG-Techの評判が良かったため、その後は全社イベントになりましたが、試行錯誤は続いています。

開催年によって、営業色が強くなったり弱くなったり、外部講師を招いたり、基調講演を追加したり、さまざまな変化をしながら現在に至っています。全社規模になったG-Techを最初の姿に戻そうと、マイクロソフト技術だけのミニG-Techを開いたこともあります。 来年はまた変わるかもしれません。

G-Tech 2014懇親会現在のG-Techは、規模が大きくなり、関係部署も増え、運営はスムーズになりました。懇親会も盛況です(写真は昨年の懇親会)。でも、一番楽しかったのは手探りで開催した第1回かもしれません。

G-Techの目的は新規顧客の獲得だったり、既存顧客との関係強化だったり、認知度を上げることだったりさまざまです。

ただ「グローバルナレッジのファンを増やす」ということに限れば、高度な技術を紹介したり知名度の高い人を連れてきたりするより、セッション担当者がどれだけ楽しく実施しているかが大きいように思います。もちろん、受講する価値のある内容があることが前提ではありますが。

そんなことを思っていたら、こんな記事を見つけました

広島が生んだ至宝のアイドル・まなみのりさが東京で学んだ「ライブで大切なこと」

昨年4月から本当にたくさんのライブをやってきたんですけど、最初の頃は他の人よりも歌って踊って、とスキルを見せることを中心に考えていて、それが良いと思い込んでいたんです。

でも途中から、もしかして間違っているんじゃないかと。スキルを見せるというよりは、会場の皆が楽しんで貰えるのが一番なんだって気付いた時から、ライブに対する考え方や選曲も変化して。

見てくれた方も、今までは「まなみのりさってすごいよね」だけだったのが、「まなみのりさのライブ良かった。また行きたい」って思ってもらえるようになったと感じています。

広島ではそこそこ売れていたアイドル「まなみのりさ(ブログ「たちまち! 来てみんちゃい!」)」が東京に出てきたときの話です。ちなみに「まなみのりさ」は、メンバーの「まなみ」「みのり」「りさ」の名前をつなげたものだそうです。

もちろん、高い技術があることは前提として(これが一番大事です)、その上でどれだけ楽しい雰囲気を作れるのかを考えたいものです。

今年は、グローバルナレッジネットワーク創業20年でもあります。次のステージに向けて、サービスの種類と質、営業力に加えて、会社のカラーとか雰囲気で「ファン」を増やすことを考えていきたいと思っています。

【おまけ】

2015年7月23日木曜日

SoftLayerのファイルストレージ

SoftLayer Solutions Designコースを実施中にファイルストレージの質問がありました。本題とは外れるので回答を保留していたのですが、やっと時間が取れたので報告しておきます。お待たせしてしまって申し訳ありません。

SoftLayerのファイルストレージは以下の3種類があります。

  • Endurance
  • Performance
  • NAS / FTP

このうち、EnduranceとPerformanceの機能は基本的に同じで、NFSのファイルサーバー機能を提供します。実際に作成したところ、同じホスト名の異なるボリュームが割り当てられました。ホスト名が同じだから、同じ機能とは限りませんが、同じである可能性は高いでしょう。

いずれもホストベースのアクセス制御を行い、アクセス用のアカウント情報は必要としません。

一方、NAS/FTPは古くかあるサービスで、FTPおよびSMBサーバーとして動作します。

ご質問は、プロトコルの話だったのですがEnduranceとNASの話を混同してしまい、ややこしくしてしまいました。

 

NFS

SMB

FTP

Endurance

×

×

Performance

×

×

NAS/FTP

×

NAS/FTPは、NFSではなくSMB(Windowsの標準共有プロトコル)を使います。そのため、Linuxからマウントする場合はパラメータが変わります。

NFSマウントの例
mount -t nfs4 nfstokxxd.service.softlayer.com:/IBM01SEVnnnn_1 /mnt

SMBマウントの例
mount -t cifs -o user=vol,password=pwd //nastokxx.service.softlayer.com/vol /mnt

NFSマウントの場合、接続先は「ホスト名:/ボリューム名」の形式を使用します。

SMBマウントおよびFTP接続の場合は以下の通り指定します。

  • ホスト名…ホスト名
  • 共有名…ボリューム名(FTP接続では不要)
  • ユーザー名…ボリューム名と同じ
  • パスワード…管理ポータルから入手

Linuxからの接続

Linuxの場合は、全てのストレージに問題なくつながりました。LinuxにはFTPやSMBクライアントの機能が標準で入っていないのでftpおよびcifs-utilsのパッケージを追加してください。

Windowsからの接続

Windowsからは、SMBおよびFTP(つまりNAS/FTP)への接続はできましたが、NFSの接続ができませんでした。WindowsにはNFSクライアントが標準で提供されており、機能を追加するだけで使えるはずなんですが、The network path was not found.のエラーが出てしまいます(もちろんpingでの接続は確認しています)。

実際問題として、WindowsからNFSサーバーを使うことは少ないでしょうが、Endurance Storageの機能は魅力的なので、Windowsから使いたいこともあるでしょう。どなたか情報があれば、教えていただけると幸いです。

もっといいのは、Endurance File StorageがSMB 3.0をサポートすることです。SMB 3.0は、Windows Server 2003以前のSMBに比べて大幅に性能が上がっています。特に巨大なファイルの場合は、数倍の差が出ています。ファイルサーバーは、iSCSIなどのブロックデバイスに比べて扱いが容易なので、今後はもっと使われるようになるでしょう。

2015年6月15日月曜日

時刻と、時間と、うるう秒~Windowsの時計を正確に合わせる~【追記あり】

テレビアニメ「新・エースをねらえ! (テレビアニメ版第2作)」のタイトルみたいになってしまいました。

時の記念日

もう過ぎてしまいましたが、6月10日は「時の記念日」ということで、時間と時刻について取り上げたいと思います。すみません、次は下書きのまま公開するの忘れてました。

「時の記念日」は、1920年に制定された記念日で、天智天皇の時代、日本で初めて時計が稼動した故事に由来します。

Wikipedia「時の記念日」によると、日本書紀に「天智天皇10年4月25日」と記載があり、それがグレゴリオ暦671年6月10日にあたるのだそうです。

それにしても不思議ですね。

日本に元号が導入されたのは、大化の改新から、つまり645年のはずですから、671年は既に元号があったはずです。まだ一般には普及していなかったとは思いますが、天智天皇つまり中大兄皇子は大化の改新の主要人物であり、元号を決めた人のはずです。日本書紀は朝廷の公式歴史書なので、元号が使われていないのは不思議です。

また、旧暦4月25日を、わざわざグレゴリオ暦に直しているのも不思議です。こちらは、「時の記念日」を制定した東京天文台と生活改善同盟会に聞いてみたいものです。

グレゴリオ暦は、現行の暦ですが、採用されたのは1582年です。671年当時はユリウス暦が使用されており、400年に3日のずれが発生します。つまり1週間くらい日付がずれているはずなんです。わざわざ1000年近くさかのぼって計算したのはどういうことなのでしょう。

時間と時刻

ところで、皆さんは時間と時刻の違いを意識しているでしょうか。

「時間」は「時と時の間隔」のことで、経過を表します。「15分の休憩をとります」「演習は60分です」という場合は「時間」です。

「時刻」は「時の刻み」のことで、特定の瞬間を表します。「午後の講義は1時から開始します」「今日の講義は4時半に終了する予定です」という場合は「時刻」です。

日常的には、時刻の意味で「時間」を使うことも多く、「今の時間教えて」と言われればふつうは時刻を答えます。

物理現象を分析するのに大事な情報は、時刻よりも時間です。もともとは、南中(北半球で太陽が真南にくる瞬間)から翌日の南中までの時間を1日=24時間と定義し、1時間の60分の1を1分、1分の60分の1を1秒としたものです。

しかし、実際には1日は正確に24時間ではありませんし、1年も正確に365日ではありません。

うるう年(うるう日)

「1年」は地球の公転周期なので、自転がベースになっている「1日」とは無関係です。

1年は約365.2422日なので、4年に1日足すと、1年あたり365.25日となり、年間誤差は0.0078日になります。足した1日のことを「閏(うるう)日」といい、1日足した年のことを「うるう年(leap year)」と呼びます。

グレゴリオ暦以前に使われていたユリウス暦はこのルールです。

ユリウス暦では、1000年経つと1週間以上ずれが発生します。そこで、グレゴリオ暦では以下のルールになりました。

  • 4年に1回にうるう年を作る
  • 100年に1回、本来ならうるう年でもうるう日を追加しない
  • 400年に1回、本来ならうるう年にしないところ、やっぱりうるう年にする

これで400年に3日(1年あたり0.0075日)減らせるため、年間誤差は0.0003日になります。

ちなみに 356÷365.2422=0.9993 となります。多くのクラウドサービスのSLA(サービスレベルアグリーメント)は99.95%程度なので、ざっくり言うと「クラウドのSLAはうるう年くらい」となります(偶然の一致です)。

うるう秒

地球の自転は毎年微妙に変動しています。長期的には、潮汐がブレーキになって1日の時間は徐々に長くなっておきます。

その他、ランダムな変動要素があり、実際には自転速度は増減があります。これを放置して時間だけ正確な時計を使うと、時刻がどんどんずれていきます。

そこで、時刻調整のためにあるタイミングで1秒増やしたり減らしたりします。これが「うるう秒」です。過去のうるう秒は常に挿入されてきましたが、実測値に基づいて決定されるため、今後は分からないそうです。

次回のうるう秒挿入は、2015年7月1日午前9時直前(日本時間)に行われます。時刻案内では「8時59分59秒」のあとに「8時59分60秒」を読み上げて「9時ちょうど」になります。

うるう秒は何かと面倒なので、なくしてしまおうという議論はあります。

「60秒」という時刻は不正な値ですから、万一その瞬間に時刻を扱ったプログラムがエラーを起こす可能性があります(実際、過去に起きています)。また、うるう年のような決まった規則はなく、観測の結果ずれてきたら挿入するというルールですから、あらかじめプログラムすることもできません。

「どうせずれても、わずかなものなので、うるう秒をなくしてしまってもいいんじゃないか」ということですね。実際、日常生活で数秒ずれても大きな問題はありません。

一方で「太陽が南中したときが正午でないと気持ち悪い」という意見もあります。「どうせ、今住んでいる場所と国の標準時では何分かずれているので、そこを気にしても仕方ない」という意見もあります。特に中国はタイムゾーンが1つしかなく、両端では相当の差があります。

ただ、このあたりは感覚的なものもあるので、なかなか決着が付かないようです。

では、現実にどうするか、ですが、ほとんどの場合は何もしなくて問題ありません。たいていのコンピュータは、数秒のずれはふつうにあるので、そもそも問題にならないからです。

しかし、大きな問題になるソフトがあることも事実です。

なるほど、と思ったのは「NTPとの同期を一時的に外す」でした。NTPは、後述する時刻サーバーです。うるう秒の前にNTPとの同期を解除すれば、「59分60秒」という値は発生しません。

うるう秒のあと、NTPとの同期を再開すると、自動的に正しい時刻に徐々に合わせてくれます。NTPは、時刻のずれを検出しゆっくり合わせる機能を持っているからです。

なお、Windowsオペレーティングシステム自体は数秒のずれが問題になることはありません。Active Directoryが使っているKerberos認証はサーバーとクライアントで5分以内の時刻同期が必要ですが、その他は、おそらく問題ないはずです。アプリケーションの仕様だけを確認してください。

NTP

コンピュータの時刻調整を行うWindowsの標準サービスがNTPです。一般に、コンピュータの内蔵クロックは水晶発振子を使った振動をカウントします。PCアーキテクチャでは、本体電源が切れているときは内蔵電池による水晶時計(内蔵時計)が動作しています。OS起動後は、起動時刻を内蔵時計から読み取り、その後はソフトウェア的に時間を加算していきます。

水晶発振子の振動誤差は10のマイナス5乗(1000分の1パーセント)と、非常に小さいのですが、国際標準であるセシウム原子時計に比べると100万倍くらいの誤差があります。また、振動を取り出す回路の問題で、実用的にははるかに大きな誤差が出ます。

そこで、信頼できる時刻サーバーと同期を取ることが考えられました。これが「NTP(Network Time Protocol)」です。

NTPサーバーにはフリーなものがたくさんありますが、遠隔地だと問い合わせてから返事が返るまでの遅延が大きく、正確な時刻が得られません。ワークグループ構成のWindowsは「time.windows.com」をNTPサーバーとして利用するように構成されていますが、このサーバーは米国(I推定)にあるため、お勧めできません。

日本でのおすすめはNICT(情報通信研究機構)が運営するntp.nict.jpです。Twitterではこんな声も出ているのでどんどん使ってください。

Active Directoryドメインに参加している場合は、ドメインコントローラーがNTPサーバーになります。クライアントが勝手にNTPサーバーと同期を取ると問題があるので、GUIも変化し、簡単にはNTPサーバーを指定できないようになります。

そこで、フォレストルートドメインのPDCエミュレーター(通常は最初にインストールしたドメインコントローラー)で以下のコマンドを実行します。

w32tm /config /update /manualpeerlist:ntp.nict.jp,0x9 /syncfromflags:manual /reliable:yes

詳しくは、以下の記事を参考にしてください。少し古い記事ですが、WindowsのNTPに関しては日本でもっとも詳しい記事だと思います。

@IT > Windows Server Insider > 運用
Windowsネットワーク時刻同期の基礎とノウハウ(改訂版)

仮想マシンの場合は、Hyper-V統合サービスにより、物理マシンと時刻同期を行いますが、ドメインコントローラーには独自の時刻同期メカニズムを優先させるため、統合サービスの時刻同期を無効にすべきとされています(Hyper-V 仮想化環境での時刻同期)。

 

【追記】結論: Windowsでは何もしなくてよい

公開後「結局、うるう秒の対応はどうすればいいのか」という意見をいただきました。

WIndowsは、そもそもうるう秒に対応していないため何もする必要はありません。
アプリケーションも「59分60秒」という情報が伝わることもありません。

一時的に1秒ほどずれますが、Windowsは割と積極的に時刻合わせを行うので、すぐに正しい時刻になります。

2015年5月29日金曜日

Microsoft Azureのトレーニングと自習教材

Microsoft Azureのトレーニングが昨年から始まっています。

最初に登場したのが、グローバルナレッジのオリジナル教材2つ。いずれも1日なので受講しやすいと思います。

Microsoft AzureによるITインフラの拡張」では、仮想マシンの作成と管理用ネットワークの構成を行います。クラウドの仮想マシンが中心のコースで、最終目標は「負荷分散されたWebサーバーを、社内から管理すること」です。

Microsoft Azureによるサイト間ネットワークの構築」では、以下のような構成でサイト間接続ネットワークを構成し、ハイブリッドクラウドの基礎について学習します。

ドメインコントローラーやファイルサーバーの配置など、実際に利用するサーバーを構築します。最終目標は、クラウド上に社内のActive Directoryドメインの追加ドメインコントローラーとファイルサーバーを構成し、社内のクライアントPCから接続することです。

Microsoft Vitual Academy (MVA)

最近始まったのが、マイクロソフト認定教育コースで、5日間のボリュームですが、それだけ詳しいことを学習できます。

こちらはMCP試験「70-533: Microsoft Azure インフラストラクチャ ソリューションの実装」にも対応しています。

そして、マイクロソフトでは「MVA (Microsoft Virtual Academy)」として、無償のオンライントレーニングも提供しています。

MVA: (MCP 70-533 対応) Microsoft Azure インフラストラクチャ ソリューションの実装

MCP対応となっていますが、実際にこの内容だけでMCPに合格するのはかなり難しいかと思います。クラウドの試験ですが、サイト間接続ネットワークの知識が必須であり、分かりにくい概念も含まれています。

1日コースを2つ受けていただくと、かなり合格率が上がるのではないかと思います。

もう少し基礎的なものもあります。こちらは「開発者向け」という位置付けですが、IT管理者の方にも役立つと思います。

MVA: Microsoft Azureの基礎

MVAの受講手順は「Microsoft Virtual Academyの使い方」として詳細な手順書が公開されていますので、そちらをご覧ください。

また、IT管理者向けには、最新機能を紹介する以下のコンテンツも用意されています。こちらもあわせてご覧ください。

2015年4月27日月曜日

独力で仮想化システムを作った学生

ちょっと前に書いたブログに若干の加筆と修正をしたものです。登場する人の現在の所属などは確認していないのでご注意ください。


2010年10月、情報処理学会のセミナーに参加してきました。

そこで、司会をしていた近山隆先生にご挨拶。

セミナーでは4つセッションがあったのですが、中でもLily VMという、筑波大の学生が作ったシステムが素晴らしい。あまり知られていないのが残念ですが、海外のカンファレンス(確かBSD関係の何か)で発表し、Best Student Awardをもらったそうなので、世界の記録には残ったそうです。

近山先生のこと

近山先生といっても分からない人が多いと思いますが、当時世界最高速のLisp処理系UTI Lispの作者です。UTI LispはUniversity of Tokyo Interactive Lispの略だったと思います。

UTI Lispは、近山先生の博士論文で、高度な最適化で有名です。もちろん完全アセンブリ言語(日立/富士通Mシリーズ用)。

当時、修士課程の学生だった私は、学内で独自に実装された貧弱なLisp 1.5レベルの処理系に嫌気が差していました。ガベージコレクタが実装されていなかったので、正確にはLisp 1.5以下です。

学会誌を見るとUTI Lispというのがあるらしい。しかも、その上では、尊敬する中島秀之先生の自信作Prolog/KRが動作するというのです。

幸い、学校のコンピュータは東大と同じ日立Mシリーズ、早速電話して(当時、インターネットはないも同然です)、オープンリールテープを送ってもらい、処理系をビルドしました。

修士論文が書けたのも、近山・中島、両先生のおかけです。

ちなみに、研究室の電話は市外ダイヤル直通通話が禁止されており、100番通話(オペレーター通話)を使いました。オペレーター通話は以下のように使います。

  1. 100番に電話
  2. オペレータに対して、通話したい電話番号を伝える
  3. オペレーターが電話してくれる
  4. 本来の目的である通話
  5. 電話を切る
  6. オペレーターから電話がかかってきて、料金が通知される
  7. その料金を経理に申告する

中島先生は、私が修士2年生の時、広島の学会で見つけて著書にサインをもらいました。

近山先生は、会う機会がなかったのですが、約30年ぶりに念願が叶い、大変嬉しく思っています。

Lily VMのこと

インテル/AMDのCPUアーキテクチャx86には仮想環境で使えない非特権命令が17あります。VMWareは、これらの命令を実行時に動的に変換します。動的変換はVMWareの重要な特許です。

一方、Amazon Web ServicesのEC2やSoftLayerなどのクラウドサービスで使われているXen(のPara Virtualization Mode)は仮想OSのソースコードを手作業で修正し仮想化します。手作業なので出来上がった仮想OSはI/Oも含めて実マシンとほぼ同じ速度で動作しますが、何しろ手作業なので時間がかかる。ちなみに、VMWareはI/O性能で実マシンに劣ります。

Lily VMは、コンパイラに手を入れて、コンパイル時に静的な命令変換を行います。詳しく聞けなかったのですが、おそらくコンパイラが参照する命令セットテーブルに手を入れるのでしょう。

これはなかなか素晴らしいアイデアだと思います。しかも作成したのが、筑波大学の3年生(当時)。日本にも、こういう素晴らしい学生がいるのですよ。

その後、SoftEtherの登大遊さんたちと一緒に研究と事業をしているそうです。

2015年4月15日水曜日

SoftLayerの管理コマンドをWindowsに導入するには

SoftLayerに限らず、パブリッククラウドのいいところは、全てがコマンドで管理できることです。GUIも便利なんですが、定型処理の繰り返しや、間違い防止にはやはりコマンドが便利です。

GUIで、クリックするところを1cm間違えたら[はい]と[いいえ]が逆になりますが、タイプするキーを間違えてもほとんどの場合は単にエラーになるだけです。

Microsoft Azureの管理は、単体のコマンドもありますが、PowerShellで行うのが一般的です。PowerShellはWindowsに標準搭載されている馴染み深いツールですし、そもそもMicrosoft AzureはWindowsのサポートを最優先で行ってくれます。

ツールはMicrosoft Azureの管理ポータルサイトMicrosoft Azureのホームページから簡単にたどれますし(Microsoft Azureダウンロードサイト)、インストールも簡単です。

Amazon Web Servicesも、コマンドラインツールとPowerShellツールが「アマゾン ウェブ サービスのツール」として分かりやすい場所にあります。

ところが、IBMが提供するSoftLayerは、Python言語のインターフェースを使う関係で少々複雑です。

調べたら、Mitsu-Murakitaさんのブログ記事「SoftLayer Command Line Interface環境の導入」に詳しい手順が出ていました。この通りに設定すればうまくいきます。ありがとうございました。

ただし、ツールのバージョンが変わったのか、少し冗長な部分もあるので、整理したものを改めて書いてみたいと思います。

主な手順は以下の通りです。

  1. Pythonの導入
  2. SoftLayer管理ツールの導入
  3. SoftLayerを制御するAPIキーの取得
  4. SoftLayer管理ツールの初期化

順に設定していきましょう。

なお、Pythonは複数のバージョン系列があります。記事では2系で試していますが、私は3系で問題なくインストールできました。

また、ツール自体のバージョンもメジャーチェンジがあったようですので、ご注意ください。新版ではコマンド名もslからslcliに変わっています。

ブログ記事「SoftLayer API Python Client 4.0.0 でもう一度」によると、今のところ旧バージョンの方が一般的なようです。今回も、広く使われている旧版をインストールします。

 

1. Pythonの導入

  1. Pythonの公式サイトから[Downloads]-[Windows]を選択
  2. 適切なバージョンのPythonを選択
    今回は「Latest Python 3 Release - Python 3.4.3」を選びました。
  3. インストーラー付きのパッケージをダウンロードしてインストール
    今回は「Windows x86-64 MSI installer」ダウンロードしました。
    32ビット版OSの方は「Windows x86 installer」をどうぞ。
  4. インストールオプション[Add python.exe to Path]を有効化
    既定で無効になっている唯一のオプションです(一番下にあります)。
    このオプションを有効にすると、環境変数PATHの設定が不要になります。

Pythonは、バージョン2系の方が広く使われているそうですが、今後は3系に移行するということでした。SoftLayerのツールの制限については確認していませんが、どちらでも動くようです。

必要に応じて、環境変数PATHを変更します。インストール時に[Add python.exe to Path]を指定していれば、C:\Python34\;C:\Python34\Scripts が先頭に追加されるので何もしなくて構いません(Pythonバージョン3.4の場合)。

環境変数の設定は間違えやすいので、自信のない方は自動構成をおすすめします。

Windows Installerは、何度インストール作業を行っても問題ないようにできています。起動後、[Repair](修復)というオプションを選べば同じ構成で、[Change](変更)を選べば異なる構成で再インストールできます。

インストールが終わったら、pythonコマンドを実行して、プロンプト >>> が出てくれば成功です。終了ははCtrl-Zを入力するかexit()を実行します。

 

2. SoftLayer管理ツールの導入

SoftLayer管理ツールの導入には、以下の追加ファイルが必要です。

  1. setuptools (ez_setup.py)
  2. pip (get_pip.py)

wgetというツールを使えば、直接ファイルに保存できるのですが、以下の方法でも可能です。

  1. 上記のリンクにアクセスし、Pythonのスクリプトを表示
  2. [Ctrl-A]→[Ctrl-C]で全体をクリップボートに保存
  3. メモ帳を起動
  4. [Ctrl-V]でメモ帳に貼り付け
  5. 名前を付けて、適当な場所に保存
    この時「ファイルの種類」として「すべてのファイル」を選択してください。ファイル名は括弧内に示したとおり、ez_setup.pyとpip.pyです。拡張子も書いてください。 「すべてのファイル]を選択しないと「pip.py.txt」のようなファイルができてしまいます。
  6. ファイルの保存先フォルダーで、python ez_setup.pyを実行
    セットアップツール本体のダウンロードも行うため、少し時間がかかります。
  7. ファイルの保存先フォルダーで、python pip.pyを実行
    同じく少し時間がかかります。
  8. pip install softlayerを実行
    Pythonのインストールツールpipがインストールされたので、これを使ってSoftLayer管理ツールを導入します。

 

3. SoftLayerを制御するAPIキーの取得

SoftLayerの管理ポータルにアクセスし、APIキーを取得します。

  1. SoftLayerの管理ポータルにアクセスし、ログオン
  2. [Users]で、管理に使うユーザー名を書き留める
    SL123456形式のマスターユーザーでも、子ユーザーでも構いません。
  3. そのユーザーのリンクを選択
  4. [API Access Information]から[Authentication Key:]を書き留める
    (例: 7bf4b35eb105767c15.... という長い文字列)

SoftLayer-API

後述するように、実際にはAPIキーを知らなくても、ユーザー名とパスワードが分かっていれば構成は可能です。実際にはその方が便利でしょう。

 

4. SoftLayer管理ツールの初期化

以上で、slコマンドが使えるようになりました。最後に、SoftLayerのアクセス情報を登録して完了です。

赤字が入力文字、青字が説明文です。レイアウトの都合で、一部の文字を削除しています。

C:\> sl config setup            ←初期化コマンド
Username []: yokoyama ←ユーザー名(追加ユーザーでも可)
API Key or Password []:XXXXX ←APIキーまたはユーザーパスワード
Endpoint (public|private|custom): public ←後述
:..............:.............................................
:    Name : Value
:..............:.............................................
: Username : yokoyama
:      API Key : XXXXXXXXXXXXXXXXXXXXXXX
: Endpoint URL : https://api.softlayer.com/xmlrpc/v3.1/
:      Timeout : not set
:..............:.............................................
Are you sure you want to write settings to "C:\Users\yokoyama/.softlayer"? [Y/n]: y←情報の保存の可否
Configuration Updated Successfully

endpointは、APIアクセス用のURLで、以下の3つのいずれかを指定します。



  • public…インターネットなどのパブリックネットワークから利用する場合
  • private…SoftLayer内部のプライベートネットワークから利用する場合
  • custom…任意のURLを指定(使うことはあまりないでしょう)

構成情報は、ユーザープロファイルフォルダーに「.softlayer」という名前で保存されます。ピリオドで始まるファイル名は、UNIX系の作法に従った初期化ファイルです。


なお、初期化時にパスワードを指定した場合でも、保存されるのはAPIキーのみです。ユーザー名とパスワードを指定した時点で、SoftLayerにアクセスしてAPIキーを取得しているようです。


パスワードが保存されないのは安全でいいのですが、APIキーを使えばSoftLayerの管理作業が可能です。構成ファイルはプレーンテキストなので、セキュリティには十分注意してください。既定では、プロファイルフォルダーは本人しか読み取りの権限がありません。


たとえば、以下のコマンドはクラウド上の仮想マシン一覧を表示します。


sl vs list


 


終わりに


クラウドサービスが提供する仮想マシンは、必ずしも最安値ではありません。クラウドの価値は、単純な価格ではなく、必要な時にいくらでもリソースを追加でき、不要になったら解除できること、そして自動構成が可能なことです。そして、自動構成をするにはAPIやコマンドの利用が不可欠です。


また、パブリッククラウドクラウドの管理WebサイトのGUIはしばしば予告なく変わります。せっかく作った操作マニュアルがある日突然使えなくなったり、既定値が変わったりします。


その点、コマンドが変わることはあまりありませんし、APIの変更はもっと少ないでしょう。コマンドというと、熟練者が使うイメージが強いようですが、「見たまま打てば成功する」ので、実は初心者にも優しいインターフェースです。


GUIは「概念は分かっているけど、細かい手順は覚えていない」という方に適しています。一方、コマンドは「全てを理解して、覚えている」上級者に加えて「概念も手順も分かっていないけど、決められた仕事を遂行しなければならない」初級者にも向いています。


このように、コマンドというのは実は初級者から上級者まで(初級者と上級者に)優しいインターフェースなのです。


DSC00418M
▲猫といえばマウスですが、最近はキーボードも使います
(Ctrl-Alt-Delを押すのは無理なようです)