前回に引き続き、ハートビーツさん主催の勉強会に行ってきました。
—-
【 GAEについて – 柴田さん 】
—-
– スケーラブルなサイトを簡単に
・ Google Moderator
オバマ大統領がオンライン討論会の質問を決めるのに利用
数時間で7000の質問。うん十万の投票。
・ 衆議院選挙のキャンペーンサイト
・全裸Bot
全裸でって付けてリツイートしてくれる
– クラウドの種類
・saas インフラ+ビジネスロジック
・paas インフラだけでなくプラットフォーム
・iaas インフラだけ
GAEはpaas。
WindowsがやってるAzureもpaas。GAEの対抗。
– DataStore(BigTable)
RDBMSではない。アンチ正規化。JOINのような機能がない。
RDBMSはいい感じにクエリするためにコンピュータが頑張るが、
スケーラビリティを考えると。単一クエリをいかに効果的にやるか。
GAEはクエリに時間がかかるとエラーになっちゃう。
テーブルのロックはボトルネックになりがちなので、Serial型がない。
ロックの機会を最小限にすることでスケーラブルなシステム。
たくさんあるサーバに仕事を分散させる感じで。
一個のマルチコアのマシンでCPU100パーセント使い切るってのは難しい。
スレッド間のロックとか、メモリとか、IOがネックになったりとか。
→ 複数のシングルコアのマシンに頑張らせる
– 課金について
CPU>帯域>データサイズ
10GBを1月置いといても1.5ドルくらい。
・CPUは近年あんまり性能が上がってない→複数コアの方向で。
・帯域を増やすのも結構大変インフラの工事が要るし。
・データサイズ→ムーアの法則的に安い。
– 非RDBMSは怖くない→考え方変えたら?
ObjectStore(ObjectDataBase)−Amazonとかで使われてる
Cache-医療分野で使ってる。XMLを扱う。統一の規格があるらしい。
– Python
予約語(変数として使えない単語)の数
Perl 220, Java 50, Ruby 40, Python 31
言語の機能が整理されているシンプルで奥が深い
Googleの使う言語
C++, Java, Python
Google内の30パーセントがPythonで出来ている。
・チープだけどスケーラブル
Facebookアプリとかmixiアプリとかに使われてたり
低いレイアの運用コストがかからない
・全部Googleに委ねる必要がある
機密性の高いデータは扱いづらい
内部統制的にソースの所在は?とか言われるとちょっときつい。
・箱庭の窮屈さ
外部とソケット通信とか出来ない
Cでコンパイルされたようなライブラリを使うことが出来ない
長時間CPUを使うようなリクエストはキャンセルされてしまう
・スケールのされかたは?
リニアにされていくの?ある程度たまったらボコって上るの?
設計によって。データが増えると長時間走行するような
プログラム書いたらあんまりだよね。
同時に30個のクエリしか受け付けられないって制約があるけど?
→衆議院選挙サイトはその制限をGoogleの人が外してくれたみたい
・その他
Googleの中の人に依頼するとー的な事がチョイチョイある(インデックスが削除できないとか)
日本のGoogleには担当の人があんまりいないから、
英語のメーリングリストに入ったりとか、
イベントにいったりして人脈広げるとかする必要があるらしい。
—-
【バックアップの話 – 坪井さん】
—-
– バックアップについて
最近あんまりハードは壊れない。
最近ではインフラ構成を冗長化したりする。
→ 主に人災の時っていう用途が大きいんじゃないか。
– 増分と差分バックアップの違い
・増分・・・前回との差分だけとる。インクリメンタル。
・差分・・・フルバックアップからの差分を都度全部とる。
・リストアするには?
増分 – インクリメンタルに戻すような感じなので面倒
差分 – 前回のフルバックアップ+差分を戻せばいいので楽
– Amanda
・オープンソースのバックアップソフトウエア
91年から開発されているが、日本語のドキュメントが少なかったりして、
あんまり日本では使われていなかったりする。
外国ではかなり使われてて、大抵のディストリビューションには入ってる。
・出来ること
ダンプとかリストアとかtarとかの管理。
・構成
- バックアップサーバとクライアント
- テープサーバ
- インデックスサーバ
ハードディスクに置くときにも仮想テープ的な。
AmazonS3にバックアップを取る機能もあったりするらしい。
・使い方
ホスト名を使って通信するので/etc/hostsの編集が必要
/var/lib/amanda/.amandahosts
バックアップホストとFQDN
バックアップセットの使い方
DailySet1をコピって使う/etc/amanda以下にセット毎にディレクトリ。
amanda.conf
どんなサイクルで(世代管理も出来る。xxなタイミングでフルバックアップを上書きとか)
何をどこに
容量の設計や
帯域を絞ったり(本来のサービスに影響を与えないように)
amcheckってコマンドでApacheのconfみたいにテストできる
リストアの方法
amrecoverとamrestoreはinfofileっていうのが必要
mtとddコマンドが使えれば最悪なんとかなる(よく解らんなぁ。。)
便利なんだけど設定ファイルがかったるい
Amanda Enterprise EditionっていうGUIがある(有償)
ZmandaRecoveryManager
MySQLの4系5系のスケジュールしたバックアップとか
MySQLのバイナリログが有効になっている必要がある
ZRMも有償のはGUIがある
– どうやってバックアップとる?
・rsyncとsh
・darコマンド
・GAEのバックアップは?
1個データを取ると、マシン3台以上に置かれるので〜
dumpしてローカルに持ってくることもできる。
– エピソード
ファイルを誤って消しちゃったとかはリカバりやすいけど、
SQLのupdateとかは結構おっかない。
– スナップショット
便利だけど、個別のファイルを扱いたい時とかはちょっと。
コメント