@thorikiriのてょりっき

@thorikiriがWebとかAndroidとかの技術ネタや本を読んだブログです

appengine ja night #26 #ajn26 に行ってきました

とりあえず、メモを。

Compute Engineについて

  • Compute Engine
    • 3つの分野で構成されている
      • VM
      • Network
      • Storage
    • GoogleのDNAが詰め込まれている
    • 最新情報ではあるが、全体の話をする
      • 使い方
      • 何に使えば良いのか
      • 3つの構成について
      • Q&A
  • 使い方
    • 全てAPIを経由して利用する
    • gcutil listinstances
    • add instance [instance名]
      • インスタンスを追加
      • 場所や、サイズ、OSなどを選択していく
      • すぐに起動するのでsshで接続が可能
    • gcutil ssh [instance名]
      • すぐにsshでの接続が可能
    • 一度インスタンスを作成すると、全く同じ構成で作るためのテンプレートが作られている
      • OAuthのTokenも同時に作ることが出来る
  • 何に使うか
    • Linuxなので、Linuxで出来る事であれば何にでも使える
    • Googleのネットワークの近くにある
      • GoogleAPIを利用する場面ではLatency的に有利
    • Chrome World Wide Maze
      • WebSocket部分をCompute Engineで実装していて、他のフロント部分はApp Engineを利用
    • Hadoop等にも使える
      • Googleのネットワークなのでスピードが良い
    • AppEngineのバックエンドとして利用する
  • VM
    • マシンタイプ
      • CPU、メモリと値段がセットになっているもの
      • CPUが重要なもの、メモリが重要なものなど選べます
      • 1〜8つのCPUコア数を選択できる
      • CPUを専有出来るタイプもある
    • f1-micro, g1-smallはCPUをシェアします
      • 週末に16時間稼働させるくらいなら40円程度で住みます
      • 料金は1時間あたりで表示していますが、1分単位で計算されます
  • Block Storage
    • Scratch Disk
      • 期間限定用、インスタンスを終了させるとデータは消える
      • サイズはマシンタイプと紐づく
      • 2コアのものから専有するようになる
    • Parsistent Disk
      • 永続化されたディスク、10TBのサイズでもOK
      • ディスクを作成してから、VMからつなげる
      • Rootディスクとしてや、外付けディスクとして使用する
      • Read Onlyであれば複数VMから参照することが出来る
      • 複数のDiskに同じデータを保存しており、読み込みは一番早くレスポンスが来たものを利用する
      • OSのスナップショットを保存しておくことも出来る
      • 課金は使用している容量分だけ
  • Network
    • TCP, UDP, ICMP, ping
    • IP
      • publicもprivateも可能、staticもephermeralも可能
    • Firewall
      • 初期はSSHポートのみ開いている
      • ポートを開けたい場合は、Firewallの設定を行う
      • どこからどこへ、どのポートを開けるかを指定する
    • Gateway, VPNs
      • VMからインターネットへ出て行く方
      • Firewallと同じように設定する
    • LoadBalancing
      • TCPUDPのバランシング
      • Googleの他のサービスと同じものを利用している
      • HelthcheckはHTTP 200 OKで問題なしとチェックされる
  • Automation
  • まとめ
    • これからも頑張ります
      • Googleの社員自身が自身の為になる環境を、皆さんにも提供してく
    • ソフトウェア・エンジニアは素晴らしい
      • 思いついたアイデアで世界を動かすことが出来る
  • Q&A
    • Scratch DiskとParsistent Diskの違いについて
      • ほとんどParsisntent Diskを利用する方向で良い
      • すぐに捨ててしまうようなデータであればScratch Diskを利用する
    • AWSとの比較
      • 1分おきに立ち上げて、処理して、落とすなどのことをしたい場合は良いと思う
      • App Engineの連携はスピード的にも良い
      • アップロードするデータの転送料がタダ
    • Helth Checkの単位について
      • Compute Engineのインスタンス毎です
      • その中のプロセスの単位ではない
    • 選択できるOSについて
      • OSの選択肢は確かに少ないので、がんばります。
      • このOSや、この機能が無いので使えないという場合は、リクエストしてください

VM-based backends (VM Runtime) について

  • App EngineのインスタンスがCompute Engine上で動作する
    • AppEngineでは、PythonJavaが使えるが、本物ではない
    • 制約を取っ払いたい
      • なのでVM-based backendsを作った(名前は変わるかも)
    • Compute Engineのインスタンスを使うのでとてもパワフルである
      • ポートを開けることも出来る
      • インターネット側からCompute Engineにアクセス出来る
    • 全てのライブラリや、Javaのクラスが使える
      • RedisもOK
      • WebSocketも利用することが出来る
  • AppEngineの制約を取り除くための歴史
    • 2008年 オートスケールするPython環境として提供
      • トレードオフがあった
      • スレッドが使えない、外部プロセスが使えない、30秒制限など
      • 弱点として、長いプロセスや、ライブラリ、限られたCPU・メモリ、ネットワークコネクションなど
    • 2011年 AppEngine Backends
      • リクエストのデッドラインがなくなった
      • バックエンドスレッド
      • 素晴らしいけれども、インスタンスのライフサイクルが短い
      • Python 2.7
      • マルチスレッド、30秒から60秒への制限緩和、サードパーティモジュールなど
      • ただ、全てに対応できたわけではない
      • 料金改定
    • 2013 4月
      • 外向きのSocketに対応した
  • VM-basedを作ろうとおもったモチベーション
    • インスタンスライフタイムをもっと長くしたい
    • CPUやメモリをもっと多く使えるようにしたい
    • 外部プロセスを使えるようにしたい
    • 要するに、IaaSとPaaSのいいとこ取りをしたい
      • ダメなとこどりにならないように
  • まとめ
    • リリースされたらいろいろはかどります
  • Q&A
    • すみません、メモれてないです