エンジニア向け夏期特別講座
〜 Red Hat OpenStack徹底解説!
レッドハット株式会社
中井悦司 / Etsuji Nakai
Senior Solution Architect
and Cloud Evangelist
v1.1 2013/07/29
第一部 OpenStack入門
2
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
自己紹介
好評発売中!
 中井悦司(なかいえつじ)
– Twitter @enakai00
 日々の仕事
– Senior Solution Architect and
Cloud Evangelist at Red Hat K.K.
企業システムでオープンソースの活用を希望される
お客様を全力でご支援させていただきます。
 昔とった杵柄
– 素粒子論の研究(超弦理論とか)
– 予備校講師(物理担当)
– インフラエンジニア(Unix/Linux専門)
3
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
目次
 OpenStackのこれまで
 RDO & Red Hat Enterprise Linux OpenStack Platform
 利用者から見たOpenStackの機能
– 仮想ネットワーク
– 仮想マシンインスタンス
– ブロックボリューム
– プロジェクト管理
 メタデータとCloud-Init
(*) 本資料は2013年7月時点のRDO(Grizzly)、および、Red Hat OpenStack v3.0に基づく情報を提供しています。
4
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
OpenStackのこれまで
5
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
OpenStackとは
 Amazon EC2/S3相当のクラウドインフラを自分で構築するためのソフトウェア
– 類似品としては、CloudStack, Eucalyptus などが有名。
 2010年末に「米RackSpace社」と「NASA」が共同で、OpenStackプロジェクト
を立ちあげて、開発をスタート
– RackSpaceが自社開発で利用していた「Swift」(S3相当の機能を提供)とNASAが作り
かけていた「Nova」(EC2相当の機能を提供)をオープンソース化して提供。それらを
ベースにコミュニティモデルでの開発を開始。
– 目標は「オープンスタンダードなHWとSWで誰でもクラウドサービスが提供できるよう
にすること」
6
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
これまでの開発状況
EC2/S3相当機能が
ほぼ完成
現在の最新リリース
「最低限動くもの」を目指して
地道に開発を継続
7
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
これまでの開発状況
EC2/S3相当機能が
ほぼ完成
現在の最新リリース
OpenStack Foundation設立!
8
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
Red HatはOpenStack Foundationのプラチナスポンサーに
http://sourceforge.jp/magazine/12/04/13/0359223
9
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
OpenStack開発への主要な貢献企業(Essex, Folsom)
OpenStack Summit 2012 San DiegoでのRackSpace社による発表
10
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
OpenStack開発への主要な貢献企業(Grizzly)
http://blog.bitergia.com/2013/04/04/companies-contributing-to-openstack-grizzly-analysis/
11
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
これまでの開発状況
ネットワーク仮想化機能を
プラグイン化するQuantum(*)
が
コアコンポーネントに
現在の最新リリース
(*) 現在はNeutronに名称変更
12
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
RDO
&
Red Hat Enterprise Linux
OpenStack Platform
13
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
RDO :
RHELでOpenStackを利用するユーザ向けのコミュニティ活動
 RDOが提供するRHEL用OpenStackは、誰でも無償で利用ができます。
http://special.nikkeibp.co.jp/ts/article/ac0e/143743/
14
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
RDO :
RHELでOpenStackを利用するユーザ向けのコミュニティ活動
OpenStack Foundation
 RDOは、RHEL/FedoraでOpenStackを利用するユーザのコミュニティです。
 主な活動内容
– RHEL/Fedora用のRPMパッケージを提供
• http://repos.fedorapeople.org/repos/openstack/openstack-grizzly/
– Puppetベースのインストーラ「Packstack」を提供
– QAフォーラムを運営(Red Hatの開発者が回答してくれることもあります。)
OpenStackを創る人々
のコミュニティ (RHEL/Fedoraで)OpenStackを
使う人々のコミュニティ
http://openstack.redhat.com
15
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
(参考)RDOとPackstackでデモ環境を簡単構築
 下図の道具があれば、オールインワン構成のデモ環境を簡単に構築できます。
em1
em2
Intel-VT/AMD-V
対応サーバ
ホストアクセス用NIC
VMアクセス用NIC
インターネット
インターネットにアクセス
できるネットワーク
Fedora18
4GB以上のメモリ
「RDOデモ環境を確実に構築する手順」
http://d.hatena.ne.jp/enakai00/20130625/1372132365
手順はこちらを参照
16
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
Red Hat Enterprise Linux OpenStack Platform
 RDOをベースとした安定版を有償サポート付きの製品版として提供していきます。
開発版 製品版
17
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
OpenStackが提供するコンピューティングリソース
 OpenStackのユーザは、Webコンソール/APIを利用して、
次のようなコンピューティングリソースを利用します。
– 仮想ネットワーク
– 仮想マシンインスタンス
– ブロックボリューム
データ領域 ブロックボリューム
仮想ルータ
仮想スイッチ
外部ネットワーク
プロジェクト環境
OpenStackユーザ
OS領域
 各ユーザは特定の「プロジェクト」に
所属します。
– プロジェクト内でリソースを共有
– プロジェクト全体でのリソース使用
量の上限設定、リソース使用状況の
レポーティングなどが可能
仮想マシンインスタンス
18
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
利用者から見たOpenStackの機能
〜仮想ネットワーク〜
19
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
仮想ネットワーク (1)
 プロジェクトごとに仮想ルータを用意して、その背後にプライベートなネットワーク環境
を構成します。
– ブロードバンドルータで家庭内LANをインターネットに接続するような感覚です。
 仮想スイッチを作成して、ルータに接続します。
– それぞれの仮想スイッチは、プライベートIPの独立したサブネットを持ちます。
 仮想マシンインスタンス起動時は、接続する仮想スイッチを選択します。
– DHCPでプライベートIPアドレスが割り当てられます。
– 同じプロジェクトの仮想マシンインスタンス間は、プライベートIPで通信できます。
仮想スイッチ
192.168.101.0/24
プロジェクトA
専用ルータ
外部ネットワーク
プロジェクトB
専用ルータ
仮想スイッチ
192.168.102.0/24
20
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
仮想ネットワーク (2)
 外部ネットワークと通信する際は、仮想マシンインスタンスに「フローティングIP」を割
り当てます。
– 外部ネットワークのサブネット上で、フローティングIPとして利用可能なIPアドレスを
プールしておきます。
– 仮想ルータ上で、フローティングIPとプライベートIPのNATが行われます。
– フローティングIPを割り当てない場合でも、仮想マシンインスタンスから外部ネット
ワークへの接続は可能です。(仮想ルータのIPアドレスを代表IPとして、マスカレード
接続します。)
Webサーバー DBサーバー
プライベートIP プライベートIP
フローティングIP
外部ネットワークからは
フローティングIPで接続
インスタンス同士は
プライベートIPで接続
21
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
セキュリティグループによるパケットフィルタリング
 仮想マシンインスタンスの受信パケットを「セキュリティグループ」でフィルタリングし
ます。
– セキュリティグループを作成して、「プロトコル、宛先ポート、送信元IP」などの条件
で受信を許可するパケットを指定します。
– 仮想マシンインスタンス起動時に適用するセキュリティグループを指定します。
TCP22番は任意の
IPから受信許可
Pingは192.168.0.0/16
からのみ許可
セキュリティグループ「Development」の
仮想マシンインスタンスからは任意のTCP接続を許可
22
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
利用者から見たOpenStackの機能
〜仮想マシンインスタンス〜
23
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
外部ネットワーク
仮想マシンインスタンスの起動
 仮想マシンインスタンスを起動する際は、次の項目を指定します。
– インスタンスタイプ
– テンプレートイメージ (*)
– 接続する仮想ネットワーク
– セキュリティグループ
– キーペア
OS領域
テンプレート
イメージ
複製
複数ネットワーク
接続も可能
セキュリティグループ
形式 説明
raw フラットなイメージファイル
AMI/AKI/ARI Amazon EC2が利用する形式
qcow2 Linux KVMが利用する形式
VDI VirtualBoxが利用する形式
VMDK VMwareが利用する形式
VHD Hyper-Vが利用する形式
(*) テンプレートイメージ作成機能は、OpenStackは提供しません。外部ツールで作成したものをインポートします。
テンプレートとしてインポート可能なイメージ形式
24
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
キーペアによるSSHログイン認証
 事前に公開鍵を登録しておき、仮想マシンインスタンス起動時にゲストOSに埋め込みます。
– 公開鍵の登録は、ユーザ個別に行います。複数ユーザでキーペアを共有する形にはなりま
せん。
ユーザー情報データベース
仮想マシンインスタンス
②公開鍵をゲストOSに埋め込み
秘密鍵
公開鍵
①公開鍵を事前に登録
③秘密鍵で認証
25
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
インスタンスタイプの指定
 デフォルトのインスタンスタイプ
– ルートディスクは、テンプレートイメージを複製した後に指定のサイズまで拡張されます。
(m1.tinyでは拡張しません。)
 管理者ユーザは任意のインスタンスタイプを定義することができます。
– 一時ディスクとスワップディスクを与えると、ゲストOSからは下図のように認識されます。
– これらのディスク領域は、仮想マシンインスタンスを削除すると、すべて破棄されます。(永続保
存が必要なユーザデータは、ブロックボリュームに保存します。)
インスタンスタイプ 仮想CPU メモリ
ルート
ディスク
一時
ディスク
スワップ
ディスク
m1.tiny 1 512MB 0GB 0 0
m1.small 1 2GB 20GB 0 0
m1.medium 2 4GB 40GB 0 0
m1.large 4 4GB 80GB 0 0
m1.xlarge 8 8GB 160GB 0 0
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 20G 0 disk
└─vda1 252:1 0 20G 0 part /
vdb 252:16 0 5G 0 disk /mnt
vdc 252:32 0 1G 0 disk [SWAP]
スワップディスク
ルートディスク
一時ディスク
26
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
仮想マシンインスタンスの「スナップショット」
 仮想マシンインスタンスの「スナップショット」により、ルートディスクを複製して保存す
ることができます。
OS領域
テンプレートイメージ
テンプレートイメージから
仮想マシンインスタンス起動
インスタンスの
スナップショット
OS領域
ルートディスクを複製して
スナップショットを作成
スナップショットから
仮想マシンインスタンス起動
27
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
利用者から見たOpenStackの機能
〜ブロックボリューム〜
28
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
ブロックボリュームの使い方
 ブロックボリュームは、仮想マシンインスタンスを停止してもそのまま残るので、永続的な
データ保存領域として使います。
データ領域
③スナップショット作成
④スナップショットを複製して
新たなブロックボリュームを作成
②仮想マシンインスタンスに
接続してデータ領域として使用
データ領域
他の仮想マシンインスタンスに
再接続可能(同時接続は不可)
①新規ブロックボリュームを作成
OS領域 OS領域
29
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
ブロックボリュームからの起動
 ブロックボリュームにゲストOSをインストールして、ブロックボリュームから仮想マシンイ
ンスタンスを起動することも可能です。
– 仮想マシンインスタンスを停止しても、OS領域への変更が破棄されずに残ります。
– スナップショットを作成しておき、仮想マシンインスタンスを起動するタイミングで、
スナップショットから新しいブロックボリュームを用意することも可能です。
OS領域
仮想マシンインスタンスに
接続してゲストOS起動
テンプレートイメージを複製して
ブロックボリュームを作成(*)
OS領域
テンプレート
イメージ
OS領域
スナップショット作成
OS領域
複製
(*) この操作はGrizzlyのHorizon Dashboardには搭載されていません。コマンドラインでのAPI操作が必要です。
30
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
利用者から見たOpenStackの機能
〜プロジェクト管理機能〜
31
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
新規プロジェクト/ユーザの作成
32
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
プロジェクト単位のリソース使用レポート
現在の使用量 指定月の累計
33
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
プロジェクト全体でのリソース使用量の上限設定
34
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
メタデータとCloud-Init
35
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
仮想マシンインスタンスのメタデータ
 ゲストOSから「http://169.254.169.254」にアクセスすると、仮想マシンインスタンス固
有の情報が取得できます。これを「メタデータ」と呼びます。
 ゲストOSに「Cloud-Init」というツールを導入すると、仮想マシンインスタンス起動時にメ
タデータを利用して、ゲストOSの自動セットアップを行います。
– 一時ディスクのマウントやスワップディスクの構成は、Cloud-Initが行なっています。
– 公式ドキュメント http://cloudinit.readthedocs.org/en/latest/
$ curl http://169.254.169.254/2009-04-04/meta-data/hostname
vm03.novalocal
$ curl http://169.254.169.254/2009-04-04/meta-data/local-ipv4
192.168.101.4
$ curl http://169.254.169.254/2009-04-04/meta-data/public-keys/0/openssh-key
Ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5W2IynhVezp+DpN11xdsY/8NOqeF8r7eYqVteeWZSBfnYhKn
8D85JmByBQnJ7HrJIrdMvfTYwWxi+swfFlryG3A+oSll0tT71FLAWnAYz26ML3HccyJ7E2bD66BSditbDITK
H3V66oN9c3rIEXZYQ3A+GEiA1cFD++R0FNKxyBOkjduycvksB5Nl9xb3k6z4uoZ7JQD5J14qnooM55Blmn2C
C2/2KlapxMi0tgSdkdfnSSxbYvlBztGiF3M4ey7kyuWwhE2iPBwkV/OhANl3nwHidcNdBrAGC3u78aTtUEwZ
tNUqrevVKM/yUfRRyPRNivuGOkvjTDUL/9BGquBX9Q== enakai@kakinoha
$ curl http://169.254.169.254/2009-04-04/meta-data/block-de-mapping/root
/dev/vda
$ curl http://169.254.169.254/2009-04-04/meta-data/block-device-mapping/ephemeral0
/dev/vdb
$ curl http://169.254.169.254/2009-04-04/meta-data/bloe-mapping/swap
/dev/vdc
メタデータの例
ルートディスク/一時ディスク/
スワップディスクに対応するデバイス名
36
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
カスタマイズ・スクリプト(User Data)による自動化
 仮想マシンインスタンス起動時に「カスタマイズ・スクリプト(User Data)」を与えると
任意のテキストをメタデータとしてゲストOSに受け渡すことができます。
 Cloud-Initは、カスタマイズ・スクリプトを解釈して、さまざまな自動化を実現します。
– 下図はシェルスクリプトを渡して、「/etc/motd」を設定しています。
– この他にもCloud-Init独自の構文で、処理内容を指示することができます。
$ curl http://169.254.169.254/2009-04-04/user-data
#!/bin/sh
echo 'Hello, World' > /etc/motd
exit 0
Thankyou

エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第一部 OpenStack入門

  • 1.
    エンジニア向け夏期特別講座 〜 Red HatOpenStack徹底解説! レッドハット株式会社 中井悦司 / Etsuji Nakai Senior Solution Architect and Cloud Evangelist v1.1 2013/07/29 第一部 OpenStack入門
  • 2.
    2 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 自己紹介 好評発売中!  中井悦司(なかいえつじ) – Twitter @enakai00  日々の仕事 – Senior Solution Architect and Cloud Evangelist at Red Hat K.K. 企業システムでオープンソースの活用を希望される お客様を全力でご支援させていただきます。  昔とった杵柄 – 素粒子論の研究(超弦理論とか) – 予備校講師(物理担当) – インフラエンジニア(Unix/Linux専門)
  • 3.
    3 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 目次  OpenStackのこれまで  RDO & Red Hat Enterprise Linux OpenStack Platform  利用者から見たOpenStackの機能 – 仮想ネットワーク – 仮想マシンインスタンス – ブロックボリューム – プロジェクト管理  メタデータとCloud-Init (*) 本資料は2013年7月時点のRDO(Grizzly)、および、Red Hat OpenStack v3.0に基づく情報を提供しています。
  • 4.
    4 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 OpenStackのこれまで
  • 5.
    5 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 OpenStackとは  Amazon EC2/S3相当のクラウドインフラを自分で構築するためのソフトウェア – 類似品としては、CloudStack, Eucalyptus などが有名。  2010年末に「米RackSpace社」と「NASA」が共同で、OpenStackプロジェクト を立ちあげて、開発をスタート – RackSpaceが自社開発で利用していた「Swift」(S3相当の機能を提供)とNASAが作り かけていた「Nova」(EC2相当の機能を提供)をオープンソース化して提供。それらを ベースにコミュニティモデルでの開発を開始。 – 目標は「オープンスタンダードなHWとSWで誰でもクラウドサービスが提供できるよう にすること」
  • 6.
    6 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 これまでの開発状況 EC2/S3相当機能が ほぼ完成 現在の最新リリース 「最低限動くもの」を目指して 地道に開発を継続
  • 7.
    7 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 これまでの開発状況 EC2/S3相当機能が ほぼ完成 現在の最新リリース OpenStack Foundation設立!
  • 8.
    8 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 Red HatはOpenStack Foundationのプラチナスポンサーに http://sourceforge.jp/magazine/12/04/13/0359223
  • 9.
    9 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 OpenStack開発への主要な貢献企業(Essex, Folsom) OpenStack Summit 2012 San DiegoでのRackSpace社による発表
  • 10.
    10 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 OpenStack開発への主要な貢献企業(Grizzly) http://blog.bitergia.com/2013/04/04/companies-contributing-to-openstack-grizzly-analysis/
  • 11.
    11 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 これまでの開発状況 ネットワーク仮想化機能を プラグイン化するQuantum(*) が コアコンポーネントに 現在の最新リリース (*) 現在はNeutronに名称変更
  • 12.
    12 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 RDO & Red Hat Enterprise Linux OpenStack Platform
  • 13.
    13 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 RDO : RHELでOpenStackを利用するユーザ向けのコミュニティ活動  RDOが提供するRHEL用OpenStackは、誰でも無償で利用ができます。 http://special.nikkeibp.co.jp/ts/article/ac0e/143743/
  • 14.
    14 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 RDO : RHELでOpenStackを利用するユーザ向けのコミュニティ活動 OpenStack Foundation  RDOは、RHEL/FedoraでOpenStackを利用するユーザのコミュニティです。  主な活動内容 – RHEL/Fedora用のRPMパッケージを提供 • http://repos.fedorapeople.org/repos/openstack/openstack-grizzly/ – Puppetベースのインストーラ「Packstack」を提供 – QAフォーラムを運営(Red Hatの開発者が回答してくれることもあります。) OpenStackを創る人々 のコミュニティ (RHEL/Fedoraで)OpenStackを 使う人々のコミュニティ http://openstack.redhat.com
  • 15.
    15 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 (参考)RDOとPackstackでデモ環境を簡単構築  下図の道具があれば、オールインワン構成のデモ環境を簡単に構築できます。 em1 em2 Intel-VT/AMD-V 対応サーバ ホストアクセス用NIC VMアクセス用NIC インターネット インターネットにアクセス できるネットワーク Fedora18 4GB以上のメモリ 「RDOデモ環境を確実に構築する手順」 http://d.hatena.ne.jp/enakai00/20130625/1372132365 手順はこちらを参照
  • 16.
    16 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 Red Hat Enterprise Linux OpenStack Platform  RDOをベースとした安定版を有償サポート付きの製品版として提供していきます。 開発版 製品版
  • 17.
    17 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 OpenStackが提供するコンピューティングリソース  OpenStackのユーザは、Webコンソール/APIを利用して、 次のようなコンピューティングリソースを利用します。 – 仮想ネットワーク – 仮想マシンインスタンス – ブロックボリューム データ領域 ブロックボリューム 仮想ルータ 仮想スイッチ 外部ネットワーク プロジェクト環境 OpenStackユーザ OS領域  各ユーザは特定の「プロジェクト」に 所属します。 – プロジェクト内でリソースを共有 – プロジェクト全体でのリソース使用 量の上限設定、リソース使用状況の レポーティングなどが可能 仮想マシンインスタンス
  • 18.
    18 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 利用者から見たOpenStackの機能 〜仮想ネットワーク〜
  • 19.
    19 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 仮想ネットワーク (1)  プロジェクトごとに仮想ルータを用意して、その背後にプライベートなネットワーク環境 を構成します。 – ブロードバンドルータで家庭内LANをインターネットに接続するような感覚です。  仮想スイッチを作成して、ルータに接続します。 – それぞれの仮想スイッチは、プライベートIPの独立したサブネットを持ちます。  仮想マシンインスタンス起動時は、接続する仮想スイッチを選択します。 – DHCPでプライベートIPアドレスが割り当てられます。 – 同じプロジェクトの仮想マシンインスタンス間は、プライベートIPで通信できます。 仮想スイッチ 192.168.101.0/24 プロジェクトA 専用ルータ 外部ネットワーク プロジェクトB 専用ルータ 仮想スイッチ 192.168.102.0/24
  • 20.
    20 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 仮想ネットワーク (2)  外部ネットワークと通信する際は、仮想マシンインスタンスに「フローティングIP」を割 り当てます。 – 外部ネットワークのサブネット上で、フローティングIPとして利用可能なIPアドレスを プールしておきます。 – 仮想ルータ上で、フローティングIPとプライベートIPのNATが行われます。 – フローティングIPを割り当てない場合でも、仮想マシンインスタンスから外部ネット ワークへの接続は可能です。(仮想ルータのIPアドレスを代表IPとして、マスカレード 接続します。) Webサーバー DBサーバー プライベートIP プライベートIP フローティングIP 外部ネットワークからは フローティングIPで接続 インスタンス同士は プライベートIPで接続
  • 21.
    21 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 セキュリティグループによるパケットフィルタリング  仮想マシンインスタンスの受信パケットを「セキュリティグループ」でフィルタリングし ます。 – セキュリティグループを作成して、「プロトコル、宛先ポート、送信元IP」などの条件 で受信を許可するパケットを指定します。 – 仮想マシンインスタンス起動時に適用するセキュリティグループを指定します。 TCP22番は任意の IPから受信許可 Pingは192.168.0.0/16 からのみ許可 セキュリティグループ「Development」の 仮想マシンインスタンスからは任意のTCP接続を許可
  • 22.
    22 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 利用者から見たOpenStackの機能 〜仮想マシンインスタンス〜
  • 23.
    23 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 外部ネットワーク 仮想マシンインスタンスの起動  仮想マシンインスタンスを起動する際は、次の項目を指定します。 – インスタンスタイプ – テンプレートイメージ (*) – 接続する仮想ネットワーク – セキュリティグループ – キーペア OS領域 テンプレート イメージ 複製 複数ネットワーク 接続も可能 セキュリティグループ 形式 説明 raw フラットなイメージファイル AMI/AKI/ARI Amazon EC2が利用する形式 qcow2 Linux KVMが利用する形式 VDI VirtualBoxが利用する形式 VMDK VMwareが利用する形式 VHD Hyper-Vが利用する形式 (*) テンプレートイメージ作成機能は、OpenStackは提供しません。外部ツールで作成したものをインポートします。 テンプレートとしてインポート可能なイメージ形式
  • 24.
    24 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 キーペアによるSSHログイン認証  事前に公開鍵を登録しておき、仮想マシンインスタンス起動時にゲストOSに埋め込みます。 – 公開鍵の登録は、ユーザ個別に行います。複数ユーザでキーペアを共有する形にはなりま せん。 ユーザー情報データベース 仮想マシンインスタンス ②公開鍵をゲストOSに埋め込み 秘密鍵 公開鍵 ①公開鍵を事前に登録 ③秘密鍵で認証
  • 25.
    25 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 インスタンスタイプの指定  デフォルトのインスタンスタイプ – ルートディスクは、テンプレートイメージを複製した後に指定のサイズまで拡張されます。 (m1.tinyでは拡張しません。)  管理者ユーザは任意のインスタンスタイプを定義することができます。 – 一時ディスクとスワップディスクを与えると、ゲストOSからは下図のように認識されます。 – これらのディスク領域は、仮想マシンインスタンスを削除すると、すべて破棄されます。(永続保 存が必要なユーザデータは、ブロックボリュームに保存します。) インスタンスタイプ 仮想CPU メモリ ルート ディスク 一時 ディスク スワップ ディスク m1.tiny 1 512MB 0GB 0 0 m1.small 1 2GB 20GB 0 0 m1.medium 2 4GB 40GB 0 0 m1.large 4 4GB 80GB 0 0 m1.xlarge 8 8GB 160GB 0 0 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 252:0 0 20G 0 disk └─vda1 252:1 0 20G 0 part / vdb 252:16 0 5G 0 disk /mnt vdc 252:32 0 1G 0 disk [SWAP] スワップディスク ルートディスク 一時ディスク
  • 26.
    26 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 仮想マシンインスタンスの「スナップショット」  仮想マシンインスタンスの「スナップショット」により、ルートディスクを複製して保存す ることができます。 OS領域 テンプレートイメージ テンプレートイメージから 仮想マシンインスタンス起動 インスタンスの スナップショット OS領域 ルートディスクを複製して スナップショットを作成 スナップショットから 仮想マシンインスタンス起動
  • 27.
    27 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 利用者から見たOpenStackの機能 〜ブロックボリューム〜
  • 28.
    28 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 ブロックボリュームの使い方  ブロックボリュームは、仮想マシンインスタンスを停止してもそのまま残るので、永続的な データ保存領域として使います。 データ領域 ③スナップショット作成 ④スナップショットを複製して 新たなブロックボリュームを作成 ②仮想マシンインスタンスに 接続してデータ領域として使用 データ領域 他の仮想マシンインスタンスに 再接続可能(同時接続は不可) ①新規ブロックボリュームを作成 OS領域 OS領域
  • 29.
    29 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 ブロックボリュームからの起動  ブロックボリュームにゲストOSをインストールして、ブロックボリュームから仮想マシンイ ンスタンスを起動することも可能です。 – 仮想マシンインスタンスを停止しても、OS領域への変更が破棄されずに残ります。 – スナップショットを作成しておき、仮想マシンインスタンスを起動するタイミングで、 スナップショットから新しいブロックボリュームを用意することも可能です。 OS領域 仮想マシンインスタンスに 接続してゲストOS起動 テンプレートイメージを複製して ブロックボリュームを作成(*) OS領域 テンプレート イメージ OS領域 スナップショット作成 OS領域 複製 (*) この操作はGrizzlyのHorizon Dashboardには搭載されていません。コマンドラインでのAPI操作が必要です。
  • 30.
    30 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 利用者から見たOpenStackの機能 〜プロジェクト管理機能〜
  • 31.
    31 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 新規プロジェクト/ユーザの作成
  • 32.
    32 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 プロジェクト単位のリソース使用レポート 現在の使用量 指定月の累計
  • 33.
    33 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 プロジェクト全体でのリソース使用量の上限設定
  • 34.
    34 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 メタデータとCloud-Init
  • 35.
    35 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 仮想マシンインスタンスのメタデータ  ゲストOSから「http://169.254.169.254」にアクセスすると、仮想マシンインスタンス固 有の情報が取得できます。これを「メタデータ」と呼びます。  ゲストOSに「Cloud-Init」というツールを導入すると、仮想マシンインスタンス起動時にメ タデータを利用して、ゲストOSの自動セットアップを行います。 – 一時ディスクのマウントやスワップディスクの構成は、Cloud-Initが行なっています。 – 公式ドキュメント http://cloudinit.readthedocs.org/en/latest/ $ curl http://169.254.169.254/2009-04-04/meta-data/hostname vm03.novalocal $ curl http://169.254.169.254/2009-04-04/meta-data/local-ipv4 192.168.101.4 $ curl http://169.254.169.254/2009-04-04/meta-data/public-keys/0/openssh-key Ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5W2IynhVezp+DpN11xdsY/8NOqeF8r7eYqVteeWZSBfnYhKn 8D85JmByBQnJ7HrJIrdMvfTYwWxi+swfFlryG3A+oSll0tT71FLAWnAYz26ML3HccyJ7E2bD66BSditbDITK H3V66oN9c3rIEXZYQ3A+GEiA1cFD++R0FNKxyBOkjduycvksB5Nl9xb3k6z4uoZ7JQD5J14qnooM55Blmn2C C2/2KlapxMi0tgSdkdfnSSxbYvlBztGiF3M4ey7kyuWwhE2iPBwkV/OhANl3nwHidcNdBrAGC3u78aTtUEwZ tNUqrevVKM/yUfRRyPRNivuGOkvjTDUL/9BGquBX9Q== enakai@kakinoha $ curl http://169.254.169.254/2009-04-04/meta-data/block-de-mapping/root /dev/vda $ curl http://169.254.169.254/2009-04-04/meta-data/block-device-mapping/ephemeral0 /dev/vdb $ curl http://169.254.169.254/2009-04-04/meta-data/bloe-mapping/swap /dev/vdc メタデータの例 ルートディスク/一時ディスク/ スワップディスクに対応するデバイス名
  • 36.
    36 Red Hat OpenStack徹底解説!〜第一部OpenStack入門 カスタマイズ・スクリプト(User Data)による自動化  仮想マシンインスタンス起動時に「カスタマイズ・スクリプト(User Data)」を与えると 任意のテキストをメタデータとしてゲストOSに受け渡すことができます。  Cloud-Initは、カスタマイズ・スクリプトを解釈して、さまざまな自動化を実現します。 – 下図はシェルスクリプトを渡して、「/etc/motd」を設定しています。 – この他にもCloud-Init独自の構文で、処理内容を指示することができます。 $ curl http://169.254.169.254/2009-04-04/user-data #!/bin/sh echo 'Hello, World' > /etc/motd exit 0
  • 37.