まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

2018年02月

前回からちょっと間が空いてしまいましたが、このエントリの続きです:
アリババクラウドを使う(使おうとしてみた)


↑「中国最大のパブリッククラウド」を謳うアリババクラウドが 30000 円ぶんのクーポンを発行する無料トライアルを実施しているとのことで、この機会に "The Great Firewall" の内側にサーバーを立てるという野望に挑戦しました。前回は色々ありながらもアカウントを作成してクーポンを有効にするところまでを行いました。今回はその続きで、いよいよサーバーインスタンスを作成します。

まずはログインし、ダッシュボード画面を表示します。前回は何も変更してないのに、なぜかこんな2種類のアイコンが表示されたような記憶があるのですが、今回はどちらとも異なる3人目のアイコンが表示されました。久しぶりで不意を着かれましたが、でももうこの程度では驚きません。。冷静にサーバーインスタンスを作るために ECS(Elastic Compute Service) メニューを選択・・・
2018020601
 (↑で、こいつ誰やねん・・・)


まだ何もないインスタンスの一覧画面から「インスタンスの作成」を選択します:
2018020602


アリババクラウドのサーバーインスタンスは一ヶ月単位のサブスクリプションと、時間単位の従量料金から選択できるようです(今回は後者を選択しました)。また今回の目的はあくまで "The Great Firewall" の内側にサーバーを立てることなので、データセンターは中国を選びます。詳しいスペックは後述しますが、この場合の料金は1時間あたり 6.78 円+インターネットトラフィック 1GB に対して 12.18 円でした。仮に一台起動しっぱなしにしたとして、約 5000 円/月プラス通信ぶん、という感じですかね:
2018020603


ちなみに全く同条件でアメリカデータセンターにすると 3.18 円/時間+ 8.36 円/GB でした。これがアリババクラウドでは最安となるデータセンターの選択肢でした:
2018020604


逆に最も高いのがドバイデータセンター。 5.08 円/時間+51.75 円/GB、なんでこんなに通信が高いんだ??:
2018020605


今回は使いませんが、比較の意味で東京データセンターも見てみました。 3.78 円/時間+12.3 円/GB。通信量に依存しますが、大量通信しなければ中国より安くなる可能性が高いプランでした。日本がデフレなのか、中国がインフレなのか・・・:
2018020606


ちなみにこれらの料金の元になるデフォルトのサーバースペックがこちら。第三世代CPU1コアで2GBメモリ、40GBのディスクが付いています:
2018020607


OS の選択肢はこちら、まあ普通に普通のが選べる印象です:
2018020608


なお、今回自分が作った後述のインスタンスでは第二世代 CPU 2コアで、メモリを4GBのミドルクラスにしています。従量課金料金は 6.78 円/時間から 11.88 円/時間になりました(トラフィック料金は変わらず):
2018020609


この内容で1台作成します:
2018020610


いよいよ "The Great Firewall" の内側にサーバーを作る瞬間がやってきました。では「注文を確定する」をクリック!もう後には引けない!!:
2018020611


・・・あっけなく注文完了してしまいました。少し待ってから「コンソール」に戻ります:
2018020612


ECS のコンソールに戻ると、Qingdao(青島)データセンターにサーバーインスタンスが1つ起動していました。感動の瞬間! そしてこいつの内容を確認するために「実行中」部分をクリック:
2018020613


サーバーが一覧表示され、1台のサーバーが実行されていることがわかります。IP アドレスはパブリックとプライベートの2つが割り当てられています。ではこいつにリモートログインして・・・と思っていたら "VNC" という項目を見つけてしまいました。ここから Ubuntu のウィンドウに接続できるのだろうか?? というわけでクリック:
2018020614


初回のみ VNC の接続パスワードが表示されます(これ以降表示できなくなります)。パスワードをメモしておきます:
2018020615


そしてメモしたパスワードを入力して「OK」、すると・・・:
2018020616


・・・んー、思ってたのとは違ったけど、無事にサーバーコンソールが表示されました。あー、ここからログインするわけね。。:
2018020617


じゃあサーバー作成時に指定した ID とパスワードでログイン・・・、あれ? "Login incorrect" ってメッセージが??:
2018020618


この後、何度入力してもログインに失敗してしまいました。あれー?絶対に間違えてないのに・・・

で、ふと嫌な予感がして確認することにしました。僕が設定したパスワードの中の一文字が "@" だったのですが、その @ だけをログイン名の所で入力してみると、なんと "2" と表示されましたw:
2018020619


実は @ 以外にも : とか、日本語キーボードの表記とは異なる文字が入力されたことになる文字がいくつかありました。しかもその一部は「どのキーをどのコンビネーションで押しても入力されたことにならない」文字だったのでした。なんだこれ?デフォルトのキーボード設定の問題?? そんなことはともかく、結局この画面でパスワード指定時に @ を入力する術がないってことになる??


・・・というわけで、まだ何も使ってないのにパスワードをリセットするハメになりました。 (^^; 1つ前の画面に戻って「管理」をクリック:
2018020631


そして「詳細」から「パスワードのリセット」を選択します。なんでこんなことをしているのか、未だによくわかりません・・・:
2018020621


そして新しいパスワードを指定。大文字・小文字・数字・特殊文字から3種類を含まないといけない、らしいのですが、特殊文字は怖いことがわかったので(笑)、最初の3つで構成するパスワードにしました:
2018020622


そしてサーバーインスタンスを「再起動」:
2018020623


「データが失われます」とか脅されましたが、何もしてないので失うものもないはず。というわけで強制再起動しました:
2018020624


再起動後、改めて "VNC" を選択します:
2018020632


で、VNC パスワード入力後に新しいパスワードでログイン・・・できました! 良かった!!
2018020626


ちなみに VNC ではなく、普通に SSH でリモート接続した場合は普通に特殊文字も入力できます。VNC 接続ではなく、はじめからこっちを使えばよかった(笑):
2018020627



無事にサーバーインスタンスを立てることができました。なお、次回は「"The Great Firewall" の内側から色々やっちゃう」編の予定です。乞うご期待!


もう少しわかりやすく手を加えた上で、いずれちゃんと紹介する機会(BMXUG勉強会?)を作るつもりですが、オープンソースのブロックチェーン環境であるHyperledger Fabric を使ってユーザーと資産の管理、そして資産の譲渡といった最低限の機能を持ったアセット管理プラットフォームを作って、MIT ライセンスで公開しました。

「資産」=「仮想通貨」とみなせばいろいろ話題の仮想通貨プラットフォーム(の基礎)にもなると思います。仮想通貨でなく、普通の資産の管理や譲渡にも使えると思ってます(むしろそっちをイメージして作ってます)。またそこでの作成や譲渡といったトランザクションはブロックチェーン上に記録されるので改竄時のトラッキング機能を内包していることになります。

現時点では Hyperledger Fabric 環境が用意されていることが必須の上、管理プラットフォームとしてのUI未作成で、REST API のみ実装しているだけです。なので「使える人は使える」レベルのものだと思っています(改良予定あり)。 その代わり MIT ライセンスなのでかなり自由度高く改変・改良・再利用することを認めています。今のままでもブロックチェーン環境のデモ程度には使えると思ってます。


そんな、まだまだ普通に使えるレベルのものではないことは理解した上で、僕自身はこのタイミングあたりからフィードバックももらえたらいいなとか、共同開発に興味ある人がいたら・・・という目的もあって公開することにしました。コードはこちら:


導入方法などは README.md を参照・・・していただきたいのですが、Hyperledger Fabric 環境の用意を前提としているなど、まだ現時点ではハードル高いと思ってます。いずれ PaaS や SaaS でもっと気軽に使えるようになることを期待していますが。。


ちなみに、上記のコードはこの週末に GPD Pocket (Ubuntu 版)に Hyperledger Fabric と、Hyperledger Composer を導入したことでスタンドアロンなブロックチェーンアプリケーション開発環境ができ、嬉しくなって地元の津田沼を散歩しながら持ち歩いて、その休憩時に取り出して作りました。なので開発期間は実質週末の2日くらい。それほど凝ったものは作れておらず、ユーザーや資産の作成、ログイン、資産譲渡、といった API が用意されている程度です:
20180203
(↑開発中の様子)


逆に現時点ではまだ検索用の機能がほぼ手付かずだったり、管理用の UI すらなく、唯一 Swagger スタイルのインタラクティブな API Document が用意されている程度です。なのでまだ低レベルな部分もこれから作っていく必要があるもので、その点でも(良くも悪くも)プラットフォームとしての実装段階です。 そんなことを理解した上で「開発に関わってみたいなあ」とか「Hyperledger Fabric の勉強も兼ねて実装してみたいなあ」とか「ぶっちゃけブロックチェーン分からないけど、UI/UXだけでも関わりたいなあ」とか思っている人がいたら心強いっす。もちろん MIT ライセンスで公開している以上、「勝手に使わせてもらって改良する」でも全然オッケーです。個人的には Hyperledger Fabric が広まってほしいなあ、という思いを優先してます。


このページのトップヘ