hbstudy#7に行ってきました。

前回に引き続き、ハートビーツさん主催の勉強会に行ってきました。 IMG_0595

 

【 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とかは結構おっかない。

  • スナップショット  便利だけど、個別のファイルを扱いたい時とかはちょっと。