アーカイブ

‘クラウド’ カテゴリーのアーカイブ

GAE/J で Python の bulkloader をつかってみる

2011 年 8 月 16 日 tdtsh Comments off

 
Java版のbulkloaderが出ると信じて待つこと1年以上、for businessもスベッてしまい、いまだその気配もなく。

痺れを切らして、普段 GAE/Jな私が、Python版のbulkloaderを使ってみました。

普段GAE/Jなので、スタートガイド Python 開発環境 / Google codeを参考に、環境作りからはじめます。

 

Pythonをインストール

Download – Pythonから手繰り、私の場合はWindows (未だにXPデス)なので、Windows x86 MSI Installer なんをインストールします。最新は2.7.2の様です。
Macなら最初から入っていますし、Linuxも大概のディストリビューションで最初から入っています。

 

Google App Engine SDK for Python をインストール

GAE/JなヒトでもPython版SDKを既に入れている方もいるかもしれませんが、入れてないヒトは入れましょう。

Google App Engine SDK のダウンロードから、Google App Engine SDK for Pythonをインストールします。最新は1.5.2でした。

とりあえずCドライブ直下に置きました。
インストールディレクトリは c:\appengine-python-sdk-1.5.2 となりました。
これを環境変数PATHに追加しときます。

 

GAE/J側の準備

既存プロジェクトの web.xmlを編集し、GAE/J側のRemoteApiServletを有効化?します。

	<servlet>
		<servlet-name>remoteapi</servlet-name>
		<servlet-class>com.google.apphosting.utils.remoteapi.RemoteApiServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>remoteapi</servlet-name>
		<url-pattern>/remote_api</url-pattern>
	</servlet-mapping>

勿論この後デプロイします。

 

設定ファイル (yaml) を作成

cmd.exe を起動し、appcfg.py で create_bulkloader_config を実行します。

cd c:\appengine-python-sdk-1.5.2
appcfg.py create_bulkloader_config --url=http://{appId}.appspot.com/remote_api --application={appId} --filename=config.yml

High Replicationの場合は、–application の引数のアタマに s~ をつけないといけないみたいです。
こんな風に。

cd c:\appengine-python-sdk-1.5.2
appcfg.py create_bulkloader_config --url=http://{appId}.appspot.com/remote_api --application=s~{appId} --filename=config.yml

自動生成されたconfig.yml には、そのとき appengine側に存在する kind のスキーマを反映したものになっているようです。

アップロード/ダウンロードするkindが限定されている場合などは、このymlファイルを編集して対象kindだけのymlファイルを作っても良い。

自動生成されたymlファイルは、TODO: の記述がいくつかあり、ココを適宜修正する必要があります。
最低でもconnector (と connector_options )を編集します。

  connector: # TODO: Choose a connector here: csv, simplexml, etc...
  connector_options:
    # TODO: Add connector options here--these are specific to each connector.
↓
  connector: csv
  connector_options:
    encoding: utf-8

 

CSVアップロード

ダウンロードするには、こんな感じ。

appcfg.py download_data --filename=test2.csv --config_file=test.yml --url=http://{appId}.appspot.com/remote_api --application=s~{appId} --kind={ClassNameOfKind} -v

アップロードはこんな感じ。

appcfg.py upload_data --filename=test.csv --config_file=test.yml --url=http://{appId}.appspot.com/remote_api --application=s~{appId} --kind={ClassNameOfKind} -v

参考にさせて頂いた先人の知恵

pomu0325: [GAE] bulkloaderをGAE/Jで使う

Javaプログラマの為のGAE/py bulkloader – GAE/py環境設定 – - 高卒文系プログラマの日常 by zetta1985

きのふよりけふ、けふよりあした  未分類

CSVファイルのデータをアップロードする方法 – 気楽に開発メモ

Using the bulkloader with Java App Engine – Ikai Lan says

カテゴリー: Google App Engine, java, クラウド, 開発環境 タグ:

さくらInternetのVPS、予想以上にイイですね

2011 年 2 月 9 日 tdtsh Comments off

前から少し気になってた さくら Internet のVPSを使う機会がありました。いやいや、イイですね!

レンタルサーバでいいじゃん的な案件でも、独自SSL欲しいとかイロイロわがまま言い出すと数千円/月~高いので1万円前後します。それでいて、自由度が少ない。JavaServlet 動かすなんて無理。

VPSならそりゃVM(仮想サーバ)のrootが貰えるんで、ミドルウェア構築するのが苦じゃない場合はそっちの方がメリット大きいです。でも、格安VPSってパフォーマンス悪そうですね。

そんな訳で全く期待値が低い状態で、さくらのVPSを使ってみたんですが、コレがまた結構サクサクじゃないですか。手元にあるHPのML115と比較しても、Apacheとかのコンパイルが早い。下手したら半分位かも。
CentOSなんですけどどうやら64bit版らしいです。64bit版はじめてだったんですけど、多少./configure のオプションで勝手が違いますが、それ以外は特に不都合ないですね。

時間帯とかイロイロな変数が影響するんでしょうが、 サーバのスペックに加えレイテンシも含めて考慮すると素の北米の Amazon Web Services の Smallインスタンスよりもコッチの方が快適です。それでいて 980円/月 なんだから、こりゃいいな、と。

いや、嬉しい誤算です。

ついでに jpドメインもさくらで取ったんですが、コレは1日強待たされましたが、DNSモドキもついて4000円強なんで、個人的にお気に入りの格安レジストラVALUE-DOMAINを使う理由が1つ減りました。

試用期間2週間は無料で使えるんで、是非お試しを。
※さくらの回し者じゃないですよ。

カテゴリー: linux, web, インフラ, クラウド タグ:

IaaS、PaaSに一番求めることは、システム運用管理がどれだけ容易になるか

2011 年 2 月 8 日 tdtsh Comments off

IaaSプロバイダはどうやってマーケットを広げるのか? PaaSレイヤを提供するのは簡単だが、そうすると顧客にはロックインされるという懸念が持ち上がる。顧客が管理の主導権を持てるというIaaSの利点でを維持したまま、どうやってPaaSの利点である、熟練を要する運用業務を顧客から不要にする、ということを提供できるだろうか

その答えは運用を容易にするツールの提供だ。それはIaaS上に用意された、優れた(ベストプラクティスな)インフラで、可用性とスケールを実現するものだ。

これがまさにAWS Elastic BeanstalkがTomcatを用いて行ったことである。

IaaSとPaaSの違いはなくなろうとしている - Publickey

個人的にはベンダロックインよりも、運用がどれだけ容易になるかが最大の関心事だったりする。
運用にもスケールするかどうかが含まれていると考えています。

昨今のWEBサービス開発は、php等のスクリプト言語で作るのがあたりまえです。
初期の開発者の単価が抑えられ、ホスティングサービス等を利用しやすいから。

で、幸運にもWEBサービスが流行ったら、フロントエンドのWEBアプリケーションも色々と性能改善をしつつ機能追加とかするのも大事ですけれど、ある程度の規模を超えるとストレージのレイヤ(データベース側)でがんばってスケールさせる必要が出てくる訳で、ミドルウェア含むインフラ層にもエンジニアを惜しみなく投入して、あの手この手で分散化する必要が出てきます。

最近は知りませんが少なくとも私の知る限り、php は Apache等のhttpデーモン のプロセスまたはスレッドにくっついて動く訳でして、永続的接続とかいう仕組みは有っても、アプリケーション全体でDBコネクションの数を制御したり、プーリングしたり、使いまわしたり、データベースアクセス専門のオブジェクト(DAO)をこさえて使いまわす、なんて事が簡単には出来ない訳でして、そこはもう Java Servlet の方が1階層タンデムな分そこのへんの作りこみが楽だから、ある程度の規模までならデータベースアクセスの観点からパフォーマンス面で有利だと思う訳でして、私がWEBアプリケーションとしてはマイナーな Java を選ぶ理由の1つです。

TCP/IPのコネクションを張るのはそこそこリソースを消費する訳だから、php でApacheのプロセス(スレッド)上減数に合せてコネクションを貼りっぱなし、なんて構成を最初はとったりする訳ですが、RDBMSサーバ側のリソースも結構ふんだんに用意する必要がありますし、規模が大きくなってくると、最近は安くなったとはいえスケールアップさせるのはソコソコ金がかかるんで、水平に垂直に分割したりレプリケートさせたりキャッシュしたりインフラ層でイロイロやらないといけないんで、安定させて性能を出すにはそれなりのコツというか、DBAなんていう職業が成立してしまう位イロイロな匠の技がある訳ですし、24時間365日運用するには、やはり訓練もドキュメンテーションもそれなりに必要になってきます。

で、最初の「運用がどれだけ容易になるか」の話ですが、こういう「インフラ系エンジニア」の下働きは、それなりに優秀な人材を集めなければいけないしコストがかかります。WEBサービスもマネタイズできないと単なるボランティアですからやはり収益性は大事な訳です。

誤解を恐れずに言うならば、インフラ系エンジニアは「システムの能力を最大限に引き出し(必要に応じて向上させて)たり、セキュリティ含むITをとりまくあらゆるリスクを軽減する為にイロイロとがんばる」訳ですが、それで収入が増えるとか言う事は無い、と考えられる事が多いわけです。特に経営層に。

これらはだんだんとコモディティ化してきているから、もし外注できるなら、どうせ金かけるなら優秀なソフトウェアエンジニアを中に雇いたい訳です。サービスをより良くするスピードこそ、競争力であり、収入を増やす為に必要だからです。

こういう事を書くと世の中のインフラ系のエンジニアの方を敵に回しそうなんで一応書いておきますが、価値を生むとか生まんとか以前に情報システムは運用してナンボ、作るだけじゃダメな訳で、運用管理も誰でも簡単に出来る訳じゃないです。Salesforceの様に、運用こそ差別化の最大要因だと言い切ってしまいたい所です。

さらにさまざまな問題を回避する事で、問題が発生した場合に損失しうる企業価値を損なわずにすむという面もありますんで、一概に要らないと言っている訳では無くて、AmazonやGoogleとかが、規模の原理を活かして、自社の優秀なエンジニアと運用のベストプラクティスを、IaaSやPaaSで提供しはじめている訳ですから、少なくともWEBサービスにおいては、ストレージ層も含めて「スケールする」インフラがセットで提供されはじめた今、「事業」として考えた場合、「外注」されやすい分野である事は間違いないでしょう。

要るとか要らないとか言う以前に、土俵というか、世の中のルールというかが変わって来たぞ、と。

そういう観点で、Google App Engine と AWS Elastic Beanstalk を比べると、App Engineの方が楽そうなんだよなぁ。
でも、既存システムの移行の難易度で言うと、格段にBeanstalkの方が楽そうだなぁ。
App Engineの方がスケールしそうだしなぁ。でもAWSの方が自由度高いしなぁ。

と、これからは、クラウドをコーディネートする力が求められそうですね。
纏まりなくてすいません。

SEOはコンテンツありき、IPv4枯渇、マイナスのプロモーションなど

2011 年 2 月 2 日 tdtsh Comments off

SEOとデザインは今後より密接になる理由 : could

良い記事。
WEBサイトもSEOもコンテンツありき、ですね。
そしてソーシャルメディアの場合は、コンテンツ≒人 ですね。

サイト(コンテンツ)を作る前に考えるべきこと

  • Webサイトにおけるビジネスゴールは何か?
  • なぜ Web サイトが必要なのか?
  • 誰に向けてコンテンツを配信したいか?
  • 利用者に提供したいコンテンツは何か?
  • 利用者が欲していると感じるコンテンツは何か?
  • どのように利用者のもつ問題を解決するのか?

 


ゆっくりと確実に変化するWeb制作のルール | 住 太陽のブログ

言っちゃった。
WEBサービスがコモディティ化してるのに、それでも独自ドメインでイチからWEBサイトを製作するのは不誠実だ、と。

私が受託開発に未来は無いと思った一番の理由が、「ソフトウェアエンジニアは、車輪を再開発したがる」でした。
少し業務要件を変えてでも、パッケージとかオープンソースとか有りものを活用した方がイイと判っていても、工数ほしいからイチから作っちゃう。
今はウェブサービスを活用した方がクライアントの為だと本心では思っても、自分達が食べる為にはオーダーメードのシステムを作り続けないといけない。
その構造と一緒ですね。

今は無料or格安でブログを立ち上げられるし、Twitter と Facebook がある。
極端な話、大手のWEBサービスを使わないとしても、その3つで事足りてしまう気がする。
今年あたり、Facebookファンページ上にECサイトを作る、という案件が急増しそうな予感。

 


X. プロモーションする対象のサービス

A. 最大限のマーケットの大きさ。つまりは全体でターゲットになるユーザが何人いるか。
B. Xをしらないユーザ
C. Xをしっているユーザ
D. Xをしっていて興味をもたなかったユーザ

当然ながら、A=B+C+Dとなる。そして僕はプロモーションをするときにB,C,Dの比率がそれによってどう変化するかを考える。

特に長期的な戦略を考える場合には重要視するモデルだ。

このモデルのパラメータに実際にユーザになった数がはいっていないのも、僕的には重要なポイントだが、まあいい。あとで説明する。

で、この場合のプロモーションでベストな基本戦略は以下のとおりだ。

戦略1. Bはできるだけ減らさない。

戦略2. Bが減った分、CとDが増えるが、できるだけCを増やして、Dは増えないようにする。

↑これが効果のないプロモーションはマイナスのプロモーションになる理由だ。

マイナスのプロモーション – はてなポイント3万を使い切るまで死なない日記

すごく良い記事。
プロモーションに関して言えば、「やらないよりやった方がマシ」では無く、「やらない方がマシ」が存在すると言う話。

 


IANAによるIPv4アドレスの配布が事実上終了 - Publickey

Geekなぺーじ : IPv4アドレス枯渇。その意味と恐らくこれから起きること

ついにきた。

私がまだネットワークエンジニアのつもりだった頃IPv6を学んだのはもう10年以上前の様な気がする。KAME projectで踊るカメが見えたとか見えなかったとか。
その当時は数年もすれば国策としてのIPv6が普及してIPv4は消えていくんだろうと思ってたけど、IPv4はNAPTを駆使してしぶとく生き残ってきた。

JPNICで枯渇するのも時間の問題です。
いよいよ悠長な事言ってられなくなってきた訳です。
新規でWEBサービス立ち上げるハードルが上がっちゃうじゃねーかコンチクショー!な人もいるかも知れませんが、そこはクラウドがあるじゃないですか。

 


あのテレビCMを見てGALAPAGOS(ガラパゴス)に飛びつく程度に、ITに詳しくない人たちが、果たして自宅の無線LAN構築から、GALAPAGOS(ガラパゴス)をWiFi端末として認識させるところまで、すんなりとできるだろうか。
SHARP、GALAPAGOS(ガラパゴス)の哀れをもよおすテレビCM: 愛と苦悩の日記

GALAPAGOSに関する至極最もな疑問。
誰に売るのか?この製品は誰を喜ばすものなのか?
一見、GALAPAGOSの戦略にはグランドデザインが欠如している様にも思えるけど、GALAPAGOSメディアタブレットには明確な意思が込められている気がする。

キャリアに依存しない収益構造の模索、だ。
模索してるから、製品設計のコンセプトもプロモーションもなんか的を射てなかったり、ブレてる。
そう考えると、生暖かい目で見守る気にもなってくる。

私はiPadユーザだけど日本人だから、建設的な意見も述べてみます。
GALAPAGOS は ePub3 がスタンダードになる前に、つまり2011年中に、利用者にとってXMDFが如何に優れているか徹底的にプロモーションし、端末をディスカウントしてでもシェアを伸ばすべきだ。今はそれ以外、無い。
1万円台だったら、私も買います。

 


ブラウザでChromeを使ってる人はCtrl+Shift+Jを押せばHttpヘッダー情報見れます
Google App EngineではAdmin権限でリクエストするとCPU使用率と1リクエストあたりの課金額がわかる – あおうさ@日記

知らなかった!

Ctrl + Shift + J でDevelopper Tools起動 -> [Resources]タブ選択 -> 左ペイン[RESOURCES]からHTML本体をクリック -> 右で[Headers]タブ選択

でHTTP Responseヘッダが見られます。

	X-AppEngine-Estimated-CPM-US-Dollars:
	X-AppEngine-Resource-Usage:

がソレです。便利。

 


Amazonクラウド、Oracle 11gのデータベースサービスを発表。パッチ適用やバックアップなど運用は全部クラウドにおまかせ - Publickey

AWS Elastic Beanstalkもそうだけど、いよいよエンタープライズ分野を攻略する気マンマンなAmazon様が、Oracleも用意して下さる。
これは良いニュースだ。
ORACLEマスター涙目。

 


サイトに設置した「いいね!」の押され具合をデータで解析する方法 | Web担当者Forum

自サイトに設置したFacebook「イイね!」ボタンがどれ位押されたかを見るには、Facebookインサイトを使えば出来る。Facebook用のタグが正しく記述されているかはURLリンターを使う。

 


昨年度の電波利用料収入は642億円。これは一般会計だが、実質的にはすべて総務省が使える隠れ特別会計になっている。来年度の総務省のICT予算が約1200億円だから、その半分以上の隠し財源を持っているのだ。
池田信夫 blog : 電波利用料という「隠れ特別会計」 – ライブドアブログ

総務省が周波数オークションを見送った理由は電波利用料が隠し財源になっているから、だそうです。
いやぁ、許せませんな。

 


Androidスマートフォンのシェアが全世界1位に、iPhoneもSymbian OSも抜き去る – GIGAZINE

全世界でAndroidスマホのシェアが1位になったそうです。
日本は?

 


キングジムのEvernote対応メモ(ショットノート)がもうすぐ出ますよ | goryugo, addicted to Evernote

これは・・・
iPhoneに取り込む為の紙。
iPhoneアプリと組み合わせると、その紙のタイトル欄と日付欄がOCRで読み込まれるみたい。
そしてEvernoteに投稿できるらしい。

Salesforceのchatter.comが始まった

2011 年 2 月 1 日 tdtsh Comments off

Salesforceの chatter.com が始まったらしいです。

Salesforce chatter.com 日本

早速登録してみました。すこぶる簡単です。
会社で1番です。でも2番は居ないかもしれません。
Salesforce.comのアカウントとか不要です。必要なのは会社のメルアドだけ。

中小企業とかこれを使わない手は無いんじゃないかな。

企業内コラボレーションツールがTwitter化、今度は企業向けSNSの様にはならない?

セールスフォース、誰でも無料で使える企業内ツイッター「Chatter.com」公開。日本語対応で利用者数上限なし - Publickey

[salesforce]Chatter.comがはじまった | ウフル技術ブログ

カテゴリー: web, クラウド, ソーシャルメディア タグ: