インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

5,729 views

Published on

2013/10/16開催セミナーの発表予定資料です。
http://biz.pasonatech.co.jp/seminar/upcoming/osaka_cloud.html

Published in: Technology
0 Comments
21 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,729
On SlideShare
0
From Embeds
0
Number of Embeds
1,155
Actions
Shares
0
Downloads
69
Comments
0
Likes
21
Embeds 0
No embeds

No notes for slide

インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~(第ニ部)

  1. 1. RED HAT OPENSTACK TECHNOLOGY | 2013 インフラエンジニアのこれから ~Red Hatの描くLinuxの今後とクラウド~ レッドハット株式会社 中井悦司 / Etsuji Nakai Senior Solution Architect and Cloud Evangelist v1.0 2013/10/07 第2部 クラウドに関わるエンジニアのスキル
  2. 2. 2 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 目次  Red HatとOpenStackの関わり  OpenStackのアーキテクチャ  クラウドにおけるシステム構築  インフラエンジニアに必要なスキルと勉強方法 (*) 本資料に含まれる技術情報は、2013年7月時点のRDO(Grizzly)とRed Hat OpenStack v3.0の仕様に基づきます。
  3. 3. 3 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 Red HatとOpenStackの関わり
  4. 4. 4 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 OpenStackとは  Amazon EC2/S3相当のクラウドインフラを自分で構築するためのソフトウェア – 類似品としては、CloudStack, Eucalyptus などが有名。  2010年末に「米RackSpace社」と「NASA」が共同で、OpenStackプロジェクト を立ちあげて、開発をスタート – RackSpaceが自社開発で利用していた「Swift」(S3相当の機能を提供)とNASAが作り かけていた「Nova」(EC2相当の機能を提供)をオープンソース化して提供。それらを ベースにコミュニティモデルでの開発を開始。 – 目標は「オープンスタンダードなHWとSWで誰でもクラウドサービスが提供できるよう にすること」
  5. 5. 5 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 これまでの開発状況 EC2/S3相当機能が ほぼ完成 現在の最新リリース OpenStack Foundation設立!
  6. 6. 6 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 Red HatはOpenStack Foundationのプラチナスポンサーに http://sourceforge.jp/magazine/12/04/13/0359223
  7. 7. 7 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 OpenStack開発への主要な貢献企業(Essex, Folsom) OpenStack Summit 2012 San DiegoでのRackSpace社による発表
  8. 8. 8 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 OpenStack開発への主要な貢献企業(Grizzly) http://blog.bitergia.com/2013/04/04/companies-contributing-to-openstack-grizzly-analysis/
  9. 9. 9 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 RDO : RHELでOpenStackを利用するユーザ向けのコミュニティ活動  RDOが提供するRHEL用OpenStackは、誰でも無償で利用ができます。 http://special.nikkeibp.co.jp/ts/article/ac0e/143743/
  10. 10. 10 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 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
  11. 11. 11 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 Red Hat Enterprise Linux OpenStack Platform  RDOをベースとした安定版を有償サポート付きの製品版として提供していきます。 開発版 製品版
  12. 12. 12 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 OpenStackのアーキテクチャ
  13. 13. 13 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 OpenStackの主要コンポーネント  機能別にソフトウェアをモジュール化して開発が進められています。 – Swift : オブジェクトストレージ • Amazon S3相当 – Nova : 仮想マシンの配置決定と起動・停止処理 – Glance : 仮想マシンイメージの管理 • バックエンドにSwiftを使用、その他のストレージにも対応 – Cinder : ブロックボリュームの提供 • 標準(サンプル)実装では、Linux LVM + iSCSIソフトウェアターゲットを使用 • 外部のiSCSIストレージ装置をバックエンドにすることも可能 – Keystone : 統合認証機能 – Netutron : 仮想ネットワーク管理機能(Quantumから改名) • 仮想ネットワークの作成を外部のPluginモジュールに移譲 • 標準(サンプル)実装では、Linux brdige、もしくは、Open vSwitchを使用 – Horizon : GUIコンソールのサンプル実装  上記のコアコンポーネント以外のサブプロジェクトもあります。 – Heat : 仮想マシンインスタンスのオーケストレーション • Amazon CloudFormation互換 – Ceilometer : 課金情報収集
  14. 14. 14 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 OpenStackのアーキテクチャ  各モジュールは、REST APIによりクライアントからの指示を受け付け – プログラムコードからの呼び出しによる環境操作の自動化への対応が前提  外部のSDN製品やストレージ装置とドライバ/プライグインで連携する仕組みを用意 – 外部製品とのインテグレーションによりさまざまな要件に対応 仮想マシン イメージ Nova Compute Nova Compute Glance Horizon Neutron 管理ネットワーク LUN 仮想ネットワーク作成 仮想マシン起動 ブロックボリューム提供 認証サーバ テンプレート イメージ保存 MySQL Network Node Nova Compute Cinder Keystone Swift メッセージキュー パブリックネットワーク クライアントPC Webコンソールアクセス テンプレート イメージ検索 テンプレート ダウンロード QPID データベース LUN LUN Nova 外部のSDN製品が構成する 仮想ネットワークと連携 外部のストレージ装置と連携
  15. 15. 15 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 アーキテクチャから見たOpenStackの特徴  APIで操作する「Programmable Infrastructure」の提供 – 既存のGUI・ワークフローに縛られたくないユーザ層の獲得 – IaaSの標準プラットフォームとして、各種ツールとの連携  スケーラビリティを意識した疎結合アーキテクチャ – コンピューティングノードの追加が容易/コントローラーの負荷分散が可能 – システム設計、運用・管理にはこれまでとは違うノウハウが必要  Driver/Pluginによる外部コンポーネントとの連携 – 既存インフラと連携・統合するための作りこみが可能 – サードパーティ製品連携のエコシステム
  16. 16. 16 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 プライベートクラウド事例 〜 アメリカ国家安全保障局  アメリカ国家安全保障局(NSA)では、官僚的プロセスによる新規ハードウェア調達 の遅れにより、研究者向けの計算機資源の提供がタイムリーに行えないという問 題を抱えていた。  そこで、OpenStackによるプライベートクラウドを独自に構築して、利用者自身 がオンデマンドに計算機資源を入手できる環境を提供。 – 2ラック程度の規模で実験的に開始したところ、利用者数が急激に増えて、 本格的な拡張を計画中。 – 独自開発機能により、既存のセキュリティインフラとの統合を実現 http://www.openstack.org/summit/portland-2013/session- videos/presentation/keynote-openstack-at-the-national-security-agency-nsa
  17. 17. 17 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 クラウドにおけるシステム構築
  18. 18. 18 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 自動化における管理対象 環境設定(Config) アプリケーションプログラム インフラ環境 データ OS・アプリケーションの 構成管理 アプリケーションの 導入管理 物理サーバ/仮想マシン構成 OSイメージなどの管理 クラウド(仮想化)環境では どの範囲をイメージ化するかが 1つのポイント
  19. 19. 19 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 システム構築自動化の現状 クラウド/仮想化環境での自動化3大パターン 1. 仮想アプライアンス(ゴールデンイメージ)方式 • アプリケーション導入済みの環境をマシンイメージ化して利用。 • 巨大なテンプレートファイルの保守管理、インフラ間の可搬性が 課題。 2. JEOS(Just Enough OS)方式 • 最小限のOS環境をマシンイメージ化して利用。アプリケーション の導入・設定は、別途、ツールで自動化。 3. 自動インストール方式 • OSのインストールからアプリケーションの導入・設定まで、すべ ての作業を自動化して適用。 クラウドで主流に なりつつある手法 仮想化環境でよく 利用される方法
  20. 20. 20 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 アプリケーション導入、システム設定の自動化ツール  Puppet/Chefとは? – パッケージ、サービス、ファイル、 ユーザ/グループなど、規定の「リ ソース」について、指定の状態に自動 構成するツール – 「希望する状態」を指定すると、現状 からその状態に変更するコマンドを ツールが自動判別して実行 – リソース間の依存関係を指定するこ とで、設定の順序を制御可能 package { 'httpd': ensure => latest, # 最新バージョンを導入 } service { 'httpd': ensure => running, # サービスを起動 enable => true, # サーバー起動時の自動起動を設定 hasrestart => true, # 「service xxxx restart」が利用可能 hasstatus => true, # 「service xxxx status」が利用可能 } file { '/var/www/html/index.html': owner => 'apache', # ファイルオーナー group => 'apache', # ファイルグループ mode => '0600', # アクセス権 content => '<h1>Hello, World!</h1>', # ファイルの内容 } exec { 'fw-http': path => '/usr/sbin', # コマンドのパス command => 'lokkit -s http', # 実行するコマンド } Package['httpd'] -> File['/var/www/html/index.html'] -> Service['httpd'] -> Exec['fw-http'] リソースの依存関係 httpdを導入するPuppetマニフェストの例
  21. 21. 21 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 Puppet/Chefの本質は「ビルトインの現状確認機能」  作業手順(コマンド)を並べたスクリプトは、前提環境が変わると利用不能  「現在の状態」に応じて必要なコマンドを判断して「希望の状態」を実現するの が構成管理ツールの本質(「冪等性」はあくまで結果的に得られる性質)  リソースの種類ごとに「現状確認コマンド、設定変更コマンド」など の”Intelligence”がビルトインされている事がPuppet/Chefの価値 希望の状態に システムを更新 No 希望の状態 現在の状態 package { 'httpd': ensure => latest, } # yum list httpd 「現在の状態=希望の状態」?
  22. 22. 22 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 GitHubによるPuppetマニフェストの管理 リポジトリの公開URL 特定の時点のコードを タグ名で指定 過去の変更履歴を 全て保存
  23. 23. 23 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 GitHubによるPuppetマニフェストの管理  Gitとは? – プログラムソースコードの分散バージョン管理システム。元々はLinux Kernelの開発用に 作成された。インターネット上にコードリポジトリを作成して無料で利用できるサービ ス「GitHub」の登場により、利用者が増加した。 – Puppetの設定ファイル(マニフェスト)をGitHubに保存しておき、OpenStackのカスタ マイズ・スクリプトからダウンロード・適用するという使い方が可能。 Githubからマニフェストを取得して適用するスクリプトの例 #!/bin/sh -x yum -y install puppet git GitRepository=https://github.com/enakai00/apache_puppet ConfigTag=f18 RepoName=${GitRepository##*/} RepoName=${RepoName%.git} mkdir -p /tmp/gittmp cd /tmp/gittmp git clone $GitRepository cd $RepoName git checkout $ConfigTag export FACTER_manifest_dir="/tmp/gittmp/$RepoName" puppet apply main.pp
  24. 24. 24 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 カスタマイズ・スクリプト(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
  25. 25. 25 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 デモンストレーション  カスタマイズ・スクリプトからGitHub/Puppetを連携させて、PostgreSQLサー バを自動構築します。 GitHubVM YUM リポジトリ アプリ設定情報 (Puppetマニフェスト) カスタマイズ・スクリプト ソフトウェア パッケージ pgsql https://github.com/enakai00/pgsql_puppet
  26. 26. 26 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 企業システムのクラウド利用におけるこれからの課題  クラウドコンピューティングの実現により、さまざまな「インフ ラの自動化」が可能になりました。  今後、一般企業の業務アプリケーションをクラウドで利用する場 合、どのような観点で、どのような処理を自動化することが必要 なのでしょうか? – 既存の手作業をそのまま自動化するのでは、「自動化のための自動 化」に陥る危険性はないでしょうか? –「アプリケーション開発、システム運用プロセスの変革/改善と一体 化した自動化の適用」を研究するべき時期がきているのではないで しょうか? いけてる自動化? いけてない自動化?
  27. 27. 27 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 インフラエンジニアに 必要なスキルと勉強方法
  28. 28. 28 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 クラウド設計・構築・運用の本質とは? ① 既存の要素技術を大規模環境に適用する  アーキテクチャ設計のベストプラクティス ② 日々の安定運用を継続する  オペレーショナル・エクセレンス ③ 不特定ユーザにサービスを提供し続ける  インフラの継続的成長
  29. 29. 29 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 OpenStackを構成する技術要素 仮想マシン イメージ Nova Compute Nova Compute Glance Horizon Neutron LUN 認証サーバ MySQL Network Node Nova Compute Cinder Keystone Swift メッセージキュー クライアントPC QPID データベース LUN LUN Nova APIプログラミング ネットワーク技術自動化技術 Puppet / Chef iptables(NAT/ パケットフィルタリング) VLAN / 仮想ブリッジ Open vSwitch / OpenFlow SSH鍵認証 セキュリティ技術 サーバ仮想化 (Linux KVM) LVM iSCSI ストレージ技術 仮想化技術 RDB メッセージキュー RESTトークン認証 ディスクイメージ クラウドはさまざまな インフラ技術の集大成
  30. 30. 30 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 クラウド設計・構築・運用の本質とは? ① 既存の要素技術を大規模環境に適用する  アーキテクチャ設計のベストプラクティス ② 日々の安定運用を継続する  オペレーショナル・エクセレンス ③ 不特定ユーザにサービスを提供し続ける  ビジネスモデル クラウドを設計/構築/運用するエンジニアは、 サーバ/ネットワークインフラの要素技術を 徹底的に学ぶべき。
  31. 31. 31 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 インフラ技術を学ぶ際のポイント  個人の範囲で入手できる情報量は膨大にあります。 – 同じ事柄でも複数の書籍・文献にあたる事で、本質的な部分がより明確になり ます。あらゆる情報源を活用して学習する事を心がけましょう。  個人の範囲で試せることも沢山あります。 – インフラ技術は、実際の動作を見ないで理解することは困難です。まずは、実 機で試してみることが大切です。うまく行かない場合には、ログファイルや ソースコードから動作の詳細を追っていく論理的思考力が最大の武器になりま す。  すべての技術には、それが生まれた理由・目的があります。 – その技術を利用する目的、ユースケースを考えていくことで、その技術の何が 重要なのか、おさえるべきポイントは何かが分かるようになります。「その技 術を使うと何が便利になるのか?」「自分だったらどのように使うか?」とい う事を考える習慣をつけるとよいでしょう。
  32. 32. 32 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 まとめ クラウドエンジニアの「共通言語」としてのLinux/OSSを身 につけませんか? –あらゆる情報源を活用して、効率的/効果的な学習ができることも Linux/OSSのメリットです。 「T字型スキル育成」の枠を超えて、「広く深いスキル育成」 の理想を目指しませんか? –クラウドに関わるエンジニアは、幅広い要素技術を基礎から徹底的に 学習するべきです。 クラウド技術が「個人としてのITエンジニア」にもたらす可 能性を考えませんか? –クラウド技術は「コンピューティング環境」を企業から個人へと開放 し、これまでには無かった「スキル獲得」の場を提供しています。
  33. 33. 33 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 学習用参考文献 − クラウドを支えるLinux基礎技術  「独習Linux専科・サーバ構築/運用/管理 ――あなたに伝えたい技と知恵と鉄則」(中井悦司) – Linuxの利用経験が少ない方向けの入門書です。  「プロのための Linuxシステム構築・運用技術」(中井悦司) – 実務に向けたLinux構築・運用技術を解説しています。  「プロのための Linuxシステム・ネットワーク管理技術」(中井悦司) – iptablesとKVMの仮想ネットワークについて詳しく解説しています。  「プロのための Linuxシステム・10年効く技術」(中井悦司) – Linuxの内部構造などより高度な内容を学びたい方向けの参考書です。  「クラウド基盤構築」講義テキスト(中井悦司) – 東京大学大学院情報理工学系研究科で平成25年度夏学期に実施したコースのテキストです。「第一部 クラウド基盤を支えるインフラ技術」でクラウドを構成する要素技術を解説しています。 • https://sites.google.com/site/cloudlecture/text  クラウドを支えるサーバー・インフラ技術(Web連載)(中井悦司) – Eucalyptusを題材としてIaaSクラウドを構成する基礎技術を解説しています。 • http://cloud.watch.impress.co.jp/docs/column/euca_iaas/20110815_466718.html
  34. 34. 34 Red Hatの描くLinuxの今後とクラウド〜第2部クラウド入門 学習用参考文献 − サーバ仮想化技術  「KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド」(平初, 森若和雄, 鶴野龍一郎, まえだこうへい) – Linux KVMの実践的な解説書です。  日経Linux連載・基礎講座「クラウド時代のサーバー構築・運用の基礎」(中井 悦司) – サーバを利用してハンズオン形式で仮想化環境を構築します。(記事単位のPDF版が購入可能) – 第1回 KVMで「実践環境」を構築しよう • http://mikke.g-search.jp/QNBP_LIN/2012/20120801/QNBP354028.html – 第2回 Linuxとアプリのインストール作業を効率化 • http://mikke.g-search.jp/QNBP_LIN/2012/20120901/QNBP355700.html – 第3回 複数ネットワークの相互接続 • http://mikke.g-search.jp/QNBP_LIN/2012/20121001/QNBP357308.html – 第4回 iptablesによるNATの実践 • http://mikke.g-search.jp/QNBP_LIN/2012/20121101/QNBP359382.html – 第5回 仮想化環境でのiSCSIの活用 • http://mikke.g-search.jp/QNBP_LIN/2012/20121201/QNBP361105.html – 最終回 遠隔バックアップシステムの構築 • http://mikke.g-search.jp/QNBP_LIN/2013/20130101/QNBP362978.html
  35. 35. RED HAT OPENSTACK TECHNOLOGY | 2013 WE CAN DO MORE WHEN WE WORK TOGETHER THE OPEN SOURCE WAY

×