オープンソース・クラウド基盤 OpenStack入門 構築・利用方法から内部構造の理解まで を読んだ

動機

  • 会社でOpenStackベースのプライベートクラウドが使われ始めている。OpenStackのことは全く知らない。自分は主に利用する側になるけど、どういう仕組みで動いてるのか知りたい。あとNovaとかNeutronとか単語が意味不明でつらいのでわかった気になりたい。

学んだこと

  • OpenStackはIaaS(Infrastructure as a Service)タイプのクラウドサービス
  • IaaSではAPIを利用して仮想化基盤の操作を自動化することが前提となる
  • OpenStackのこれまでの歴史(〜2013年くらいまで)。コンポーネントが少しずつ増えていること
  • コンポーネント(Nova, Glance, Keystone, Horizon, Neutron, Swift)の役割
  • コンポーネント複数のプロセスが協調して動くことで成り立っている
  • コンポーネントREST APIを持っている。APIを受け持つプロセスはリクエストを受け付けたら必要な処理は他のプロセスに依頼する。プロセス間のメッセージの受け渡しにはAMQPというプロトコルを使う。API複数プロセス動かして負荷分散できる(できないものもある)
  • データベースサーバとしてMySQL、キャッシュサーバとしてmemcachedが動いている
  • novaが仮想化の方法を抽象化している(Linux KVM, VMware, LXC等)
  • pythonでできている(少なくともapiはそうらしい)
  • 4章 マルチノード環境の構築と高度な利用方法はまだ読んでない
  • インスタンスを立ち上げるとdhcpipアドレスが割り振られる。一度割り振ったらMACアドレスを覚えてるので次から同じipになる。
  • 外部ネットワークと通信するための方法
    • 外からアクセスするためにはフローティングIPとよばれるものを追加で割り当てる
    • 中から外にアクセスするだけでよいなら仮想ルーターipマスカレードという処理をする。家庭のインターネットと同じイメージ
  • セキュリティグループ(SG)というのはインスタンスが受信できるパケットを指定するもの

まとめ

ざっとこのくらいのことを学べた。第3章「OpenStackのアーキテクチャー」が一番面白かった。通勤電車の中だけで読んでて1週間かからないくらいすぐ読めるし、以下のような人にはオススメできそう。

  • OpenStackのこと全然知らないけど、ざっくり知りたい
  • OpenStack用語をなんとなく知りたい
  • OpenStackを構成するコンポーネントの内部動作の概要を知りたい