2017年05月23日
オープンソース活用研究所 所長 寺田雄一
2017年3月、都内でTIS株式会社とレッドハット株式会社による共催セミナー「Ansibleを活用しインフラ構築を自動化(Infrastructure as Code)した、プロジェクト工期短縮事例 ~インフラエンジニアの働き方をSHIFTする~」が開催されました。
レッドハット社が提供するAnsibleは、既存ツールの弱点を克服し、IaC (Infrastructure as Code:インフラのコード化)を具現化するための自動化実行エンジンです。自動化プラットフォームである「Ansible Tower」とともに、システムの運用自動化を目指す企業のIT担当者、システムインテグレーターから注目を浴びています。
このセミナーでは、Ansible及びAnsible Towerの概要紹介をはじめ、TIS社によるAnsible導入事例とベストプラクティス、さらにはインフラエンジニアのみならずIT業界全体の働き方改革についての提言もなされました。本レポートでは、このセミナーの概要を3回にわけてご紹介します。
第1回目のテーマは、レッドハット株式会社 テクニカルセールス本部 エバンジェリスト 平田千浩氏によるセッション『注目の自動化ツール「Ansible」と「Ansible Tower」とは』です。
Ansibleをご紹介する前に、インフラ管理の背景についてお話します。
管理するシステム数が膨大になり、その管理に費やす時間が増大する現在、ソフトウェア開発の現場で注目されているキーワードに、IaC があります。IaCとは文字通りインフラをコード化することであり、構成管理ツールを使ってインフラをコード化し、構成を情報化するという手法です。
IaCという概念を取り入れることで、システム開発の速度低下を未然に防ぎ、生産性と品質を継続的に向上させることが可能になります。
国内におけるIaCの現状としては、ツールの活用が属人化していたり、社内でのナレッジ共有が徹底されていなかったりという理由から普及に時間がかかっていますが、IaC という考え方の本質は、企業内IT担当者にも、システムインテグレーターにも、両者に恩恵をもたらすものです。たとえば、構成管理ツールを活用することで、次のようなメリットが考えられます。
IaCを具現化するとともに、上記のような構成管理ツールのメリットを享受し、インフラ構築を自動化するツールがAnsibleです。
Ansibleは設定ファイルがシンプルであり、管理対象サーバにソフトウェアをインストールする必要がありません。最小限の手順で、インフラの各種設定を自動化することが可能です。
Ansible開発者のマイケル・デハーン(Michael DeHaan)氏は、現状の課題を構成管理ツールとアプリケーションデプロイツールが別々に存在し、同時に実行できないことだと捉えました。そこで枠にしばられることなく、ユースケースや製品にも特化せずに、すべてのものを自動化できるツールとしてAnsibleを開発したのです。
平田氏によると、エンタープライズにおいて運用自動化を実現するポイントは次の3点になり、Red HatのAnsibleであれば実現できます。
Ansibleは構成管理ツールとしてだけでなく、インスタンスのデプロイも可能で、更にはポリシーのチェックや正常性の確認、問題点の改善、タスクフローの管理も自動で行います。
また、Ansibleはエージェントレスな設計であるため、様々なストレージやネットワーク、クラウド、コンテナ、ほかにも各種アプリケーションやDBにも対応しています。エージェントがあると、対象機器にインストールが必要になるほか、エージェントのセキュリティやサービスへの影響を考慮しなければなりません。
特にネットワークやコンテナなどはエージェントを入れることが難しいですが、Ansibleなら対応が可能となります。
Ansibleには、従来の構成管理ツールで手順を記述する際に必要だったプログラミングが不要です。Ansibleでは、Playbook というYAML形式のテキストファイルに手順を列挙するだけで、プログラムが専門外のインフラエンジニアであっても自動化することが可能です。YAML形式は、開発側からも運用側からもわかりやすい記述であり、共有や再利用も可能です。
Ansible Towerでは、プロセスに応じた適切な権限付与と集中管理が可能です。実行者の権限を限定することで、より適切な管理をすることができます。
Red Hatが提供するAnsibleは、次の3つの要素から成り立っています。
Ansibleでは、PlaybookというYAML形式のテキストファイルに定型業務をタスクとして記述し、それをAnsibleに実行させることにより、様々な処理を行います。
基本的な仕組みは、Playbookを元にAnsibleサーバがコードを生成した後、管理対象に転送し、セキュアなSSH経由で実行します。ローカルモードでは、サーバを立てずにAnsibleで管理することも可能です。
PlaybookとCoreについてはオープンソースで提供されています。そして自動化プラットフォームであるTowerは、エンタープライズ向け有償ツールとなります。Towerを入れることにより、スケジュール管理やコンプライアンス対応、アクセス制御などエンタープライズ向け機能が活用できるようになります。
Ansible Towerの特徴的な機能は次のようなものです。
Ansible Towerは、Webブラウザからユーザー認証をおこなった後にアクセスできます。このユーザーやグループに対して実行権限を割り振ることができます。
ジョブのスケジューリング実行を集中管理で行うことができます。並列に実行した処理についてもAnsible Towerが順序を制御して実行してくれます。
管理権限のある実行ジョブの結果についてはダッシュボードから、何が実行され、どうなったのか、確認することができます。ジョブテンプレートやインベントリー、ホスト毎にも確認ができ、障害時には直前の処理状況等を把握することができます。
対象サーバに対してScan Job を実行することにより、パッケージのバージョン情報やサービスの状態、ステイタスなどを取得して保存することができます。
また、System Tracking ではサーバの変更前後の状態を比較することや、正常稼働のサーバと問題が発生したサーバを比較して問題についての知見を得ることが可能です。Ansible Tower3.1からはWindowsでも、この機能が使えるようになりました。
Ansible3.1アップデートにより、GUIが日本語対応になりました。またワークフロージョブという機能も追加されました。ワークフロージョブは、ジョブの実行結果を受けて次に実行する最適なジョブを設定できる機能です。
Ansible Towerを導入している企業は、全世界で1000社を超えました。ことに2015年にレッドハット社がAnsible社を買収してからは、導入企業は加速度的に増えています。そのなかから、グローバル展開している企業の事例をご紹介します。
Amelcoという英国金融系企業では、400台のLinuxサーバでアプリケーションを迅速かつ正確にデプロイする必要がありました。これまで1件につき数週間かけてデリバリーしていたものが、Ansible導入により1日以下で可能になり、劇的な効率化が実現しました。
米NASAでは、OpenStackやAWSなどハイブリッドクラウドでの運用において、各サーバへのアクセスが煩雑になるという課題に対してAnsible Towerを導入しました。運用の自動化はもちろんのこと、アクセスの一元管理も可能となり、幅広い意味での効率化が可能となりました。
NEC Corporation of America では、同社が展開するSDNを活用したユニファイドコミュニケーションサービスが抱えていた課題をAnsible Tower導入によって解決しました。
コミュニケーションサービスでは円滑な通信が肝要であり、遅延が発生しないように詳細な設定が求められます。従来は、1社当たり2週間程度を要していたこの設定が、Ansible Towerを導入後は10分未満にまで短縮され、圧倒的な効率化が実現しました。
運用自動化の目的は、生産性と品質の向上です。エンタープライズで運用自動化を実現するためのポイントは以下の3点です。
これらに対応できることがRed Hatの提供するAnsible最大の特徴となります。
運用自動化が実現すれば、人海戦術によるルーチンワークが減り、エンジニアが本来注力すべき業務に集中することが可能になることでしょう。
いかがでしたでしょうか。
次回は、TIS株式会社 浪川氏によるセッション『【SIerも逃げられない】Ansibleによる自動構築事例と活用のスタンダード化』をご紹介します。
Ansible紹介ページ
本セミナーの講演資料は、マジセミからダウンロードできます(無料)。
1993年、株式会社野村総合研究所(NRI)入社。 インフラ系エンジニア、ITアーキテクトとして、証券会社基幹系システム、証券オンライントレードシステム、損保代理店システム、大手流通業基幹系システムなど、大規模システムのアーキテクチャ設計、基盤構築に従事。 2003年、NRI社内に、オープンソースの専門組織の設立を企画、10月に日本初となるオープンソース・ソリューションセンター設立。 2006年、社内ベンチャー制度にて、オープンソース・ワンストップサービス「OpenStandia(オープンスタンディア)」事業を開始。オープンソースを活用した、企業情報ポータル、情報分析、シングルサインオン、統合ID管理、ドキュメント管理、統合業務システム(ERP)などの事業を次々と展開。 オープンソースビジネス推進協議会(OBCI),OpenAMコンソーシアムなどの業界団体も設立。同会の理事、会長や、NPO法人日本ADempiereの理事などを歴任。 2013年、NRIを退社し、株式会社オープンソース活用研究所を設立。
2022-09-28(水)13:00 - 13:55 「【SIer・MSP事業者向け】ハイブリッドクラウド環境の監視問題をどう解決するか? ~日本製SaaS型監視サービス"Mackerel(マカレル)"でオンプレ・クラウドを統合監視~」 と題したウェビナーが開催されました。 皆様のご参加、誠にありがとうございました。 当日のサマリー動画は以下から無料でご覧いただけます。 ご興味の...
「Baton」(バトン)とは、インフラストラクチャアクセス監査のためのオープンソースツールキットです。「ユーザーアカウント」「権限」「ロール」「グループ」「リソース」などのアイデンティティデータについて、「抽出」「正規化」することで、インフラストラクチャアクセスをオンデマンドで監査できます。
「Grafana Faro Web SDK」(グラファナファロWebSDK)とは、ブラウザフロントエンドアプリケーション観測用ライブラリです。「Grafana Faroプロジェクト」の一部であり、Webアプリケーションに埋め込んで、メトリックなどを収集し、コレクターエンドポイントに転送します。
「Munin」(ムニン)とは、ネットワーク化されたリソース監視ツールです。「PC」「ネットワーク」「SAN」「アプリケーション」「気象観測デバイス」などを監視します。ネットワーク全体のリソースを監視する「グラフ作成フレームワーク」として機能し、「リソース傾向」および「パフォーマンス低下要因把握」などを分析できます。
Icinga2(アイシンガ2/イッティンガ2)とは、オープンソースの監視システムです。「強力な構成言語」+「RESTAPI」を備えた監視プラットフォームコアとして動作し、「ネットワークリソース可用性チェック」「レポート用パフォーマンスデータ生成」「ユーザーへの通知」などの機能を提供します。
Serverspec(サーバスペック)とは、サーバ状態のテスト自動化フレームワークです。『テスト駆動によってインフラコードのリファクタリングや開発を促進すること』を目標としており、「構築したサーバ環境が意図した通りに構成されているのか?」について自動的に確認作業を実施できます。
7-Zip(セブンジップ)とは、オープンソースのファイル圧縮(展開)アーカイバです。WindowsやLinuxなどで使用できます。「高圧縮率」「多くのフォーマットに対応」などの特色があり、有償の圧縮(展開)ツールに匹敵する高機能性が評価され、高い人気を得ています。
daloRADIUS(ダロラディウス)とは、認証サーバ「FreeRADIUS」に対して、「ユーザー設定」や「アカウンティング設定」などの管理を行うためのWebインタフェース機能を提供します。「グラフィカルレポート機能」や「地理情報(GIS)機能」などの機能も搭載しています。
Filebeat(ファイルビート)とは、Elastic Stackに属する「軽量ログデータ収集ツール」です。サーバエージェントとしてインストールされたFilebeatは、指定したログファイルなどを監視し、ログイベントを収集して、インデックス作成のためにElasticsearchやLogstashに転送します。
Apache Guacamole(アパッチ ワカモレ/グアカモーレ)とは、クライアントレスのリモートデスクトップゲートウェイです。「VNC」「RDP」「SSH」などの標準プロトコルをサポートしています。Guacamoleサーバをインストールすれば、クライアントとしてWebブラウザのみでデスクトップにアクセスできます。
Alertmanager(アラートマネージャー)とは、オープンソース監視ソリューション「Prometheus」に付随するアラート管理ソリューションです。Prometheusサーバや他サーバからさまざまな種類のアラートを受信して処理できます。「クラスタ構成による高可用性」も実現できます。
Activiti(アクティビティ)とは、オープンソースのビジネスプロセス管理(BPM)プラットフォームです。軽量ワークフローを作成でき、プロセス自動化ニーズをサポートします。ビジネスエンドユーザー/開発者/システム管理者などを対象としており、自動化課題の解決を支援します。
Camunda BPM(カムンダBPM)とは、「ワークフロー」および「意思決定自動化」のためのオープンソースプラットフォームです。「BPMN 2.0ビジネスプロセス定義」+「ビジネスユーザーとソフトウェア開発者を結集させるワークフロー機能」により、ビジネス意思決定をサポートします。
rsyslog(アールシスログ)とは、オープンソースの高性能ロギングツールです。「syslogプロトコル」を実装し、ネットワーク経由での強力なログ転送処理機能を提供します。「マルチスレッドアーキテクチャ」「高スループット処理」「拡張性」などを特徴としています。
Hinemos(ヒネモス)とは、国産オープンソース統合運用管理ソリューションです。複数コンピュータ群を単一コンピュータのようなイメージで管理することを可能とします。「各種監視機能」と「ジョブ管理(ワークロードスケジューリング)機能」の両方の機能を提供し、システム運用の自動化をサポートします。
Bacula(バキュラ)とは、オープンソースのバックアップ&リカバリソリューションです。複数OSが混在する異種ネットワークでのバックアップも可能であるため、エンタープライズレベルの統合的バックアップシステムを構築できます。「高度なストレージ管理機能」や「紛失/破損ファイルの検索および回復機能」などの機能を備えています。
syslog-ngとは、柔軟で拡張性の高いシステムロギングアプリケーションです。「syslog」「非構造化テキスト」「キューイング」「SQL」「NoSQL」などの幅広い入出力メソッドをサポートし、一元化された信頼できるロギングソリューションを構築できます。
collectdとは、システム情報を定期的に収集する小さなデーモンであり、さまざまなシステム値を保存および監視するメカニズムを提供します。数十万のメトリックを処理するための最適化と機能を利用して、システム(アプリケーション)のパフォーマンスメトリックを定期的に収集し、RRDファイルなどのさまざまな方法で値を格納します。
Cacti(カクタイ)とは、ネットワークグラフ作成ツールです。データロギングおよびグラフ作成ツール「RRDTool」のデータストレージおよびグラフ作成機能を活用するフロントエンドとして機能します。「ネットワークトラフィック」「CPU使用率」「空きメモリ量」「ディスク使用率」などをグラフ化できます。
JobScheduler(ジョブスケジューラ)とは、ワークロード自動化ソリューションです。「実行可能ファイル」や「シェルスクリプト」などを起動し、データベースプロシージャなどの自動実行などに使用されます。「高可用性クラスタリング機能」や「ロードシェアリング機能」を利用可能で、エンタープライズレベルにも対応できます。
Polaris(ポラリス)とは、Kubernetesデプロイについて検証および実施するためのオープンソースツールです。クラスタ構成に対してさまざまなチェックを実行して、Kubernetesポッドとコントローラーがベストプラクティスを使用して構成されていることを確認し、将来の問題を回避するために役立ちます。
Chef(シェフ)とは構成管理(プロビジョニング)ツールです。インフラ環境構築を簡単に行うための各種機能が搭載されており、「ユーザー作成」「パッケージインストール」「設定ファイル編集」「システム各種設定」などの展開作業を自動化できます。「物理環境」「仮想環境」「クラウド環境」などの各種インフラ環境をサポートしています。
Spinnaker(スピネーカー)とは、マルチクラウド継続的デリバリープラットフォームです。複数クラウドに対するデプロイやクラスタ管理を実施し、アプリケーションリリースについて高速かつ確実にリリースするためのインテリジェントな継続的デリバリープロセスを自動化できます。
SEC(Simple Event Correlator)とは、高度なイベント処理のためのイベント相関ツールです。「イベントログ監視」「ネットワーク監視」「セキュリティ監視」「不正検出」「イベント相関を含むその他のタスク」などに利用できます。単一プロセスとして実行され、プラットフォームに依存しない軽量ツールとして利用できます。
Embulk(エンバルク)とは、プラグ可能なマルチソースバルクデータローダーです。バルク処理に特化したプラグインベースのデータローダーで、大規模データセットのバルク転送を実施します。「データベース」「DWH」「NoSQL」「ファイル形式」「クラウドデータストア」などのデータ転送を強力にサポートします。
Apache ZooKeeper(アパッチズーキーパー)とは、分散環境運用サポートサービスを提供するコーディネーションエンジンです。各ノード(システム全体)を集中保守管理するための機能を提供します。「設定管理」「名前解決」「同期」「グループサービス」などの利用頻度の高いさまざまなサービスが用意されています。
Graphite(グラファイト)とは、高度にスケーラブルなエンタープライズ対応監視ツールで、リアルタイムグラフを作成できます。「Webサイト」「アプリケーション」「ビジネスサービス」「ネットワークサーバ」などのパフォーマンスを追跡し、時系列データの「保存」「取得」「共有」「視覚化」が可能です。
Zabbix(ザビックス)とは、オープンソースの統合監視ツールです。統合監視ツールとして必要な機能を網羅的に搭載しており、「サーバ」「ネットワーク」「アプリケーション」などを高度に集中監視し、「障害検知」「アラート通知」「パフォーマンス可視化」などを行えます。システム全体を1つのZabbixで監視できます。
Puppet(パペット)とは、オープンソースの構成管理ツールです。「パッケージインストール」「サーバ構成更新」「ユーザー追加」などインフラストラクチャの管理を自動化するツールを提供します。「Linux」「UNIX」「Windows」をサポートし、システムの自動管理エンジンとして一元化された仕様に基づいて管理タスクを実行します。
NUT(ナット)とは、電源デバイスを監視するために設計されたソフトウェアコンポーネントスイートです。「無停電電源装置」「配電ユニット」「ソーラーコントローラー」「サーバ電源ユニット」などの多くのブランドとモデルをサポートし、ネットワークプロトコルと標準化されたインターフェースを介して管理できます。
Graylog(グレイログ)とは、オープンソースのログ管理プラットフォームです。オープンスタンダードに基づいてさまざまなデータソースからデータを収集し、1つの中央ロケーションからデータ管理を行えます。セキュリティとコンプライアンスに関するニーズに対応できる包括的なログ管理ソリューションを構築できます。
Nagios(ナギオス)は統合監視フレームワークです。「サーバ」「ネットワーク」「リソース」「サービス」などの稼働状況を監視し異常時に通知を行います。Nagios本体は主に「プラグインのスケジューリング」「チェック結果保存」「チェック結果通知」「Webインターフェース提供」などを行い、実際の監視は各プラグインが実施する構造になっています。
Prometheus(プロメテウス)とは、システム監視および警告ツールキットです。柔軟なクエリとリアルタイムアラートを備えたHTTPプルモデルを使用して構築された時系列データベースにリアルタイムメトリックを記録します。時系列データに基づいたアクティブな「スクレイピング」「保存」「クエリ」「グラフ化」「アラート」を含む完全な監視および傾向分析機能を提供します。
Ansible(アンシブル)とは構成管理ツールです。多数の構築管理対象に対するアプリケーションとシステムの導入を容易にするシンプルなIT環境構築自動化プラットフォームです。「設定ファイルがシンプル」「使いやすい」「管理対象サーバへのエージェントソフトウェアインストール不要」など、最小限の手間で各種設定を自動化できる特徴があります。
Fluentd(フルエントディー)とは、データコレクタ(ログデータ収集管理ツール)として、ログデータを収集しJSONに変換して出力する機能を提供します。「入力機能」や「出力機能」などはモジュール化されており、プラグインモジュールを追加することで、さまざまなデータソースや出力先に対応できます。
Grafana(グラファナ)とは、オープンソースのデータ時系列分析用ダッシュボードツールです。インフラやアプリケーションなどのさまざまなデータソースにアクセスして各種メトリクス情報を収集し、時系列データとして可視化できます。リッチなグラフ描画によって一目見ただけでリアルタイムにステータスを把握できます。
OTRS(オーティーアールエス)とは、「ヘルプデスク機能」+「ITIL対応運用管理機能」を備えるオープンソースの高機能チケット管理ソリューションです。会社や団体や組織などが「顧客から受け取った個々の問い合わせやクレーム」や「それに関連する対応履歴や各種事象など」を「チケット」と呼ばれる単位でまとめて効率的に管理できます。
Logstash(ログスタッシュ)とは、Elastic社が提供するログ収集管理ツールです。サーバサイドデータ処理パイプラインとして、さまざまなデータソースからログを収集し、1つのサーバに集約する機能を提供します。多様なプラグインを使用して、どのようなタイプのイベント(ログ)にも対応できます。
Kubernetes(クーベルネイテス)とは、クラウドネイティブコンピューティング基盤のためのDockerコンテナ群管理フレームワークです。Dockerコンテナ群に対する各種管理機能を提供することで、アプリケーションコンテナを論理的な単位にグループ化し、管理性を向上させます。
FOG Project(フォグプロジェクト)とはオープンソースのコンピュータイメージングソリューションです。「OSイメージング(クローニング)機能」および「ネットワーク管理機能」を備えています。「Windows」「Mac OSX」「各種Linuxディストリビューション」などのデスクトップOSをサポートしています。
Juju(ジュジュ)とは、アプリケーションモデリングによるデプロイツールです。パブリック(プライベート)クラウドおよびローカルコンテナに対して効率的な展開/構成/拡張/操作を行えます。
Beats(ビーツ)とは、オープンソースデータ収集/転送プラットフォームです。Elastic社のプロダクト群で、サーバからあらゆる種類のオペレーショナルデータを収集して、Elasticsearch/Logstashなどに情報を転送します。
Xymon(シモン/サイモン)とは、ネットワーク監視ツールです。サーバ/アプリケーション/ネットワークなどについてグラフィカルインターフェースでの監視を行えます。
Apache Maven(アパッチ メイヴン)とは、Java用プロジェクト管理ツールです。不明瞭なソフトウェア開発プロジェクトをモデル化して、開発効率を高めます。
Draft(ドラフト)とは、「Docker」コンテナデプロイサポートツールです。Microsoftが提供しています。「Kubernetes」クラスタ上へのデプロイと継続的インテグレーション機能を提供します。
Consul(コンサル/コンスル)とは、クライアントサーバ型のクラスタ管理ツールです。同様ツール「Serf」よりも汎用的で、サービス検出(ヘルスチェック)用途などにも活用できます。
Packer(パッカー)とは、マシンイメージの自動生成/管理を行なうコマンドラインツールです。マシンイメージ作成に関するさまざまな問題を解決するためのサポートを行います。
Vagrant(ベイグラント)とは、仮想環境構築/共有ツールです。仮想化ツール(VirtualBoxなど)のフロントエンドラッパーとして機能し、数行のコマンドのみで簡単に仮想化環境を構築できます。
Itamae(イタマエ)とは、サーバ管理を自動化する構成管理ツールです。「Chef」ライクなRuby DSLで記述するツールで、必要最低限の機能のみを揃えており、非常にシンプルに使用できます。
CDIR Collector(シーディーアイアールコレクター)。セキュリティインシデント初動対応時の適切なデータ保全をサポートするツールです。調査対象端末汚染を最小限に抑えながら安全にデータを収集します。
Apache Ant(アパッチ アント)。ビルドツールです。複雑なコンパイル作業を自動化します。「XML記述」「Javaベースであるためプラットフォームに依存しない」などの特徴があります。
Pandora FMS(パンドラエフエムエス)。オープンソースの高機能統合監視ツールです。ネットワーク/コンピュータシステム/アプリケーション稼働状況などの監視を行います。
Hatohol(ハトホル)。システム全体を一元的に監視する統合運用管理ツールです。複数の運用管理ツール(Zabbix、Nagiosなど)のハブとして統合的に機能します。
OSS×Cloud ACCESS RANKING