Submit Search
Upload
Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
•
Download as PPTX, PDF
•
13 likes
•
2,027 views
cloudconductor
Follow
【July Tech Festa 2015】 Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 43
Download now
Recommended
Consulを頑張って理解する
Consulを頑張って理解する
Masakazu Watanabe
Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方
Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方
Yoshimi Tominaga
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
Masahito Zembutsu
UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編
hdais
kube-system落としてみました
kube-system落としてみました
Shuntaro Saiba
ADFSの証明書入れ替えではまった話
ADFSの証明書入れ替えではまった話
Genki WATANABE
Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!
Etsuji Nakai
MySQL5.6と5.7性能比較
MySQL5.6と5.7性能比較
hiroi10
Recommended
Consulを頑張って理解する
Consulを頑張って理解する
Masakazu Watanabe
Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方
Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方
Yoshimi Tominaga
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
Masahito Zembutsu
UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編
hdais
kube-system落としてみました
kube-system落としてみました
Shuntaro Saiba
ADFSの証明書入れ替えではまった話
ADFSの証明書入れ替えではまった話
Genki WATANABE
Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!
Etsuji Nakai
MySQL5.6と5.7性能比較
MySQL5.6と5.7性能比較
hiroi10
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
今Serverlessが面白いわけ
今Serverlessが面白いわけ
Yoichi Kawasaki
HBの人材育成について 2022
HBの人材育成について 2022
kuronekov3v
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes Service
Toru Makabe
AKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみた
Hideaki Aoyagi
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
Kubernetes networking
Kubernetes networking
Sim Janghoon
오픈소스로 구축하는 클라우드 이야기
오픈소스로 구축하는 클라우드 이야기
Nalee Jang
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用
Kosuke Kida
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
OWASP Nagoya
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
リクルートのWebサービスを支える共通インフラ「RAFTEL」
リクルートのWebサービスを支える共通インフラ「RAFTEL」
Recruit Technologies
The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)
Kimihiko Kitase
AWS Summit Tokyo 2015_NTTデータセッション(前半:クラウドを活用したオムニチャネル基盤構築)
AWS Summit Tokyo 2015_NTTデータセッション(前半:クラウドを活用したオムニチャネル基盤構築)
Hinemos
More Related Content
What's hot
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
今Serverlessが面白いわけ
今Serverlessが面白いわけ
Yoichi Kawasaki
HBの人材育成について 2022
HBの人材育成について 2022
kuronekov3v
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes Service
Toru Makabe
AKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみた
Hideaki Aoyagi
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
Kubernetes networking
Kubernetes networking
Sim Janghoon
오픈소스로 구축하는 클라우드 이야기
오픈소스로 구축하는 클라우드 이야기
Nalee Jang
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用
Kosuke Kida
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
OWASP Nagoya
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
リクルートのWebサービスを支える共通インフラ「RAFTEL」
リクルートのWebサービスを支える共通インフラ「RAFTEL」
Recruit Technologies
What's hot
(20)
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
今Serverlessが面白いわけ
今Serverlessが面白いわけ
HBの人材育成について 2022
HBの人材育成について 2022
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes Service
AKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみた
トランザクションの設計と進化
トランザクションの設計と進化
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
Kubernetes networking
Kubernetes networking
오픈소스로 구축하는 클라우드 이야기
오픈소스로 구축하는 클라우드 이야기
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
リクルートのWebサービスを支える共通インフラ「RAFTEL」
リクルートのWebサービスを支える共通インフラ「RAFTEL」
Similar to Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)
Kimihiko Kitase
AWS Summit Tokyo 2015_NTTデータセッション(前半:クラウドを活用したオムニチャネル基盤構築)
AWS Summit Tokyo 2015_NTTデータセッション(前半:クラウドを活用したオムニチャネル基盤構築)
Hinemos
Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Japan
AnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a Code
Satoru Yoshida
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
Aws summits2014 エンタープライズ向けawscdpネットワーク編
Aws summits2014 エンタープライズ向けawscdpネットワーク編
Boss4434
DevOps on azure 高品質クラウドデザインを求めて
DevOps on azure 高品質クラウドデザインを求めて
Atsushi Kojima
【HinemosWorld2015】B1-6_【テクニカル】クラウドインフラの運用術
【HinemosWorld2015】B1-6_【テクニカル】クラウドインフラの運用術
Hinemos
Wsfc basic 130720
Wsfc basic 130720
wintechq
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
Abe Junichiro
コンテナ時代にインフラエンジニアは何をするのか
コンテナ時代にインフラエンジニアは何をするのか
gree_tech
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
Couchbase Japan KK
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
Masahito Zembutsu
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
cloudconductor
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
Microsoft Tech Summit 2017
【HinemosWorld2015】B2-4_HinemosとConsulで実現する運用自動化のご提案
【HinemosWorld2015】B2-4_HinemosとConsulで実現する運用自動化のご提案
Hinemos
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
真吾 吉田
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Ryo Nakamaru
オトナのDocker入門
オトナのDocker入門
Tsukasa Kato
Similar to Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
(20)
The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)
AWS Summit Tokyo 2015_NTTデータセッション(前半:クラウドを活用したオムニチャネル基盤構築)
AWS Summit Tokyo 2015_NTTデータセッション(前半:クラウドを活用したオムニチャネル基盤構築)
Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Enterprise A2019.16 新機能紹介
AnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a Code
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Aws summits2014 エンタープライズ向けawscdpネットワーク編
Aws summits2014 エンタープライズ向けawscdpネットワーク編
DevOps on azure 高品質クラウドデザインを求めて
DevOps on azure 高品質クラウドデザインを求めて
【HinemosWorld2015】B1-6_【テクニカル】クラウドインフラの運用術
【HinemosWorld2015】B1-6_【テクニカル】クラウドインフラの運用術
Wsfc basic 130720
Wsfc basic 130720
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
#cross2012 クラウドCROSS ニフティの中の人によるニフティクラウド活用
コンテナ時代にインフラエンジニアは何をするのか
コンテナ時代にインフラエンジニアは何をするのか
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
【HinemosWorld2015】B2-4_HinemosとConsulで実現する運用自動化のご提案
【HinemosWorld2015】B2-4_HinemosとConsulで実現する運用自動化のご提案
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
オトナのDocker入門
オトナのDocker入門
More from cloudconductor
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
cloudconductor
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
cloudconductor
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
cloudconductor
【オペレーションカンファレンス 2015 Spring】 LT 僕が考えるSIerにとってのMSP
【オペレーションカンファレンス 2015 Spring】 LT 僕が考えるSIerにとってのMSP
cloudconductor
CloudConductorのアーキテクチャ
CloudConductorのアーキテクチャ
cloudconductor
Docker向け軽量os 3製品比較
Docker向け軽量os 3製品比較
cloudconductor
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
cloudconductor
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
cloudconductor
Cloud conductorのご紹介 20150123
Cloud conductorのご紹介 20150123
cloudconductor
[OCPJ PoCWG Engineering Workshop] Zabbixを用いたOCPベアメタル監視環境の自動構築
[OCPJ PoCWG Engineering Workshop] Zabbixを用いたOCPベアメタル監視環境の自動構築
cloudconductor
[PrimeCloud Controller / OSS MeetUp] CloudConductorのご紹介
[PrimeCloud Controller / OSS MeetUp] CloudConductorのご紹介
cloudconductor
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
cloudconductor
SDI時代のシステムインテグレーション~CloudConductorの紹介~
SDI時代のシステムインテグレーション~CloudConductorの紹介~
cloudconductor
デザイン指向クラウドオーケストレータ CloudConductor
デザイン指向クラウドオーケストレータ CloudConductor
cloudconductor
CloudConductorのご紹介
CloudConductorのご紹介
cloudconductor
More from cloudconductor
(15)
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
【マジセミ】クラウドオーケストレーションが描く明日からのシステム構築
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
【Interop Tokyo 2015】クラウドオーケストレーションと仮想データセンターが描く、明日からのシステム構築
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
【オペレーションカンファレンス 2015 Spring】 LT 僕が考えるSIerにとってのMSP
【オペレーションカンファレンス 2015 Spring】 LT 僕が考えるSIerにとってのMSP
CloudConductorのアーキテクチャ
CloudConductorのアーキテクチャ
Docker向け軽量os 3製品比較
Docker向け軽量os 3製品比較
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[SoftLayer Summit 2015] DockerとOpenVNetを用いたSoftLayer VLAN上への仮想ネットワークオーバーレイ
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
Cloud conductorのご紹介 20150123
Cloud conductorのご紹介 20150123
[OCPJ PoCWG Engineering Workshop] Zabbixを用いたOCPベアメタル監視環境の自動構築
[OCPJ PoCWG Engineering Workshop] Zabbixを用いたOCPベアメタル監視環境の自動構築
[PrimeCloud Controller / OSS MeetUp] CloudConductorのご紹介
[PrimeCloud Controller / OSS MeetUp] CloudConductorのご紹介
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
SDI時代のシステムインテグレーション~CloudConductorの紹介~
SDI時代のシステムインテグレーション~CloudConductorの紹介~
デザイン指向クラウドオーケストレータ CloudConductor
デザイン指向クラウドオーケストレータ CloudConductor
CloudConductorのご紹介
CloudConductorのご紹介
Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
1.
Copyright © 2015
TIS Inc. All rights reserved. Consulによる運用自律化体験ハンズオン とConsul活用事例紹介 2015年7月26日 TIS株式会社 戦略技術センター 高橋 和也 July Tech Festa 2015
2.
Copyright © 2015
TIS Inc. All rights reserved. 目次 Consulとは Consulハンズオン: 基本操作編 Consulハンズオン: 応用編 Consulの活用事例 ▶ クラウドオーケストレーションツール 「CloudConductor」 2
3.
Copyright © 2015
TIS Inc. All rights reserved. Consulとは? 3
4.
Copyright © 2015
TIS Inc. All rights reserved. Consulとは Hashicorp社が提供するオーケストレーションツール ▶ インフラ運用の自動化・自律化に有用な多数の機能を提供 ノードやサービスの死活管理 障害や環境構成の変化に応じた処理の自動実行 その他KVSやDNSなど ▶ 既存のサーバ上で追加のサービスとして稼動させることで、 サーバ間の情報共有や運用作業の自動化の助けに ▶ Go言語で開発されており、OSを問わずどの環境でもバイナリを 一つ置くだけで実行可能なため、導入が簡単 2014年4月に提供開始 4
5.
Copyright © 2015
TIS Inc. All rights reserved. Consulの特徴 公式サイトでは以下の4つの要素が挙げられています ▶ Service Discovery 各Nodeで動いているServiceをConsulに登録することで、他のNodeからその状 態を確認したり、DNS機能を通じてServiceを提供するIP一覧を取得できます ▶ Health Checking クラスタ内のNodeの障害やConsulに登録されたServiceの障害を検知し、自動 的にその状況に応じた処理を呼び出すことができます ▶ Key/Value Store Consulのクラスタ内でデータが同期されるため、特別な設定無しで各サーバが 簡単に高い可用性を持つKVSとしても利用可能になります ▶ Multi Datacenter 一つのデータセンター内でクラスタを自由にスケールさせられるだけでなく、 複数のデータセンターのクラスタを結合して管理することができます 5
6.
Copyright © 2015
TIS Inc. All rights reserved. どういう用途に使えるのか 環境の変化に合わせた自律的な設定変更 ▶ 従来の運用では、システム構成の変更や障害時の対応は人が対応 ▶ クラウドの普及により、システム構成変更の頻度は増加 必要になったらサーバ数を増やし、必要なくなれば減らすことが当たり前に この増減の度に人が設定を変更すると品質が一定にならず、ボトルネックに ▶ ある程度の定型作業であれば、自動的に環境の変化を検出して 自律的に設定内容を変更して欲しい 監視サーバの監視対象を追加したり、ロードバランサーに登録したり ▶ Consulを使うと Service Discoveryにより、各サーバで稼動しているServiceを把握 Health Checkingにより、各サーバの状態やServiceの死活状況を検出し、 自動的に設定更新用のスクリプトなどを実行可能 6
7.
Copyright © 2015
TIS Inc. All rights reserved. どういう用途に使えるのか システム内の各サーバ間での情報共有 ▶ 従来の運用では、他のサーバの情報は静的に与えられる APがDBに接続するためには、DBがどこにいるか設定しなければならない 設定した内容に変化があると、その都度設定を更新しなければならない 更新できなければ障害となる ▶ Consulを使うと DNS機能を利用すれば、目的のServiceを提供しているサーバのIPを動的に取得 できる ConsulのHealth Checkに失敗したサーバは自動的に除外可能 Tagを活用すれば、DBのMasterだけを取得するといったことも可能 KVS機能を利用すれば、複数のサーバ間で任意の情報の共有が可能 現在設定されているパラメータの情報など 7
8.
Copyright © 2015
TIS Inc. All rights reserved. Consulの基本的な構成 公式サイトより引用 (https://www.consul.io/docs/internals/architecture.html) 各Node上でagentが稼動 ▶ ServerとClientの2種類 ▶ Serverの中からLeaderを1台選出 agent同士はGossipプロトコルを 用いてクラスタを形成 ▶ agent同士の通信網を確立し、 情報を共有 ユーザは最寄のagentを窓口とし て各種機能を利用 ▶ どのagentに聞いても良い 単一障害点となるエンドポイントが無い ▶ agentがClientモードの場合、裏で 最寄のServerに取り次がれる WANをまたぐ別のクラスタとも 接続可能 ▶ 今回のハンズオンでは対象外 8
9.
Copyright © 2015
TIS Inc. All rights reserved. Consulハンズオン 基本操作編 9
10.
Copyright © 2015
TIS Inc. All rights reserved. 本日のハンズオンの範囲 本日のハンズオンでは以下の機能について紹介します ▶ 前半: 基本操作編 インストール、起動 複数Nodeでのクラスタ形成 Serviceの管理とヘルスチェック KVS(Key Value Store)機能 DNS機能 ▶ 後半: 応用編 Consul Watch & Event Consul exec 他にもロック機構やACLによるアクセス制御など、細かい機能 が色々とあります ▶ 公式サイトのドキュメントは非常に丁寧に書かれているので、 是非目を通してみて下さい https://www.consul.io/ 10
11.
Copyright © 2015
TIS Inc. All rights reserved. 本日のハンズオン環境について 操作端末 ▶ 各席に備え付けのMacを利用していただけます ▶ SSHとブラウザが利用可能であれば、お持ちのPCを利用して頂い ても構いません 構築対象となる環境 ▶ AWS EC2の仮想マシンを一人一台ずつ用意しています OSはCentOS 7.1です ▶ SSHの接続先情報は各席のメモをご覧下さい ハンズオン手順 ▶ 手順は以下の記事でも公開しています http://qiita.com/kz-takahashi/items/c413df2973accbdcb680 それでは実際に動かしてみましょう 11
12.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: 事前準備 会場備え付けの端末(Mac)からTerminalを起動し、 各席の用紙に記載の接続先情報に従ってSSH接続してください もし接続できない方がおられれば、お近くのスタッフまで お声掛け下さい $ ssh jtf_handson@(SSH接続先) 12
13.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: インストール Consulのインストールは非常に簡単です ▶ 必要なファイルは consul という実行ファイル一つだけです 環境にあったファイルを一つダウンロードして解凍するだけで動きます ▶ 今回は合わせてデータを置くディレクトリやConfigファイルを置 くディレクトリも作成しておきます $ wget https://dl.bintray.com/mitchellh/consul/0.5.2_linux_amd64.zip $ sudo unzip 0.5.2_linux_amd64.zip -d /usr/local/bin $ sudo mkdir /opt/consul $ sudo chown $(whoami) /opt/consul $ sudo mkdir /etc/consul.d 13
14.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: 起動 consul agentコマンドを実行することでサービスが起動します ▶ 起動時に指定するオプションは色々とありますが、 まずは1台だけのクラスタを作ってみましょう -server: Serverモードで起動 -bootstrap-expect 1: クラスタ内のノードが1台以上の時Leaderに立候補 -data-dir: データの格納先ディレクトリを指定 ▶ 起動したら、Consulに対してクラスタ内にいるメンバーを問い合 わせてみましょう $ consul agent -server -bootstrap-expect 1 -data-dir /opt/consul/data >> /tmp/consul.log & $ consul members Node Address Status Type Build Protocol DC ip-10-0-1-191 10.0.1.191:8301 alive server 0.5.2 2 dc1 14
15.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: 他のノードへのJoin 次はもっと大きなクラスタを作ってみましょう ▶ クラスタ内には以下の3種類のノードが存在します Leader: クラスタ内のServerから選出された、データの原本を保持する代表 Server: Leaderのデータを複製して保持し、データに対するリクエストに応答 またLeader不在時にServerの中から新Leaderが選出される Client: 自身はデータを保持せず、データに対するリクエストをクラスタ内の Serverへと仲介 今稼動しているConsulを一度停止し、ハンズオン参加者全員で 一つのクラスタを形成します ▶ -joinオプションでこちらが用意したLeaderを指定します ▶ 以前のクラスタのデータが残っている場合、新しいクラスタに参 加すると様々なエラーが出るため注意が必要です $ consul leave (現在のクラスタから離脱) $ rm -rf /opt/consul/data (異なるクラスタに参加する前に以前のクラスタのデータを削除) $ consul agent -data-dir /opt/consul/data -join leader.jtf.cloudconductor.jp >> /tmp/consul.log & 15
16.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: Configファイルの利用 起動時のオプションが増えると、都度指定するのは面倒です もちろんConsulもConfigファイルから設定を読み込んで起動す ることができます $ consul leave $ sudo vi /etc/consul.d/client.json { "data_dir": "/opt/consul/data", "start_join": ["leader.jtf.cloudconductor.jp"] } $ consul agent -config-dir /etc/consul.d >> /tmp/consul.log & 16
17.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: Web-UIの利用 ConsulにはWeb-UIも用意されています Web-UIに必要なファイルは同梱されていないので、 利用する場合は別途ダウンロードが必要です ▶ Web-UIを外部に公開するノードにだけ導入されていれば クラスタ内の全ノードの情報が確認できます ▶ 標準設定の場合 http://(SSHホスト名):8500/ui でアクセス可能 です このポート番号は後で説明するREST APIと共用されています$ wget https://dl.bintray.com/mitchellh/consul/0.5.2_web_ui.zip $ unzip 0.5.2_web_ui.zip -d /opt/consul $ sudo vi /etc/consul.d/web_ui.json { "ui_dir": "/opt/consul/dist", "addresses": { "http": "0.0.0.0" } } $ consul leave $ consul agent -config-dir /etc/consul.d >> /tmp/consul.log & 17
18.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: Serviceの管理とヘルスチェック Serviceの登録 ▶ Configファイルにサービスの情報とヘルスチェックの条件を記載 することで、起動時にサービスの登録が行えます ▶ もしくはHTTP API経由で動的に登録することも可能です スクリプト等から動的に制御する場合に有用です $ cat <<EOF | sudo tee /etc/consul.d/services.json > /dev/null { "services": [{ "id": "sshd-$(hostname)", "name": "sshd", "tags" : [], "checks": [{ "script": "pgrep sshd", "interval": "10s" }] }] } EOF $ consul reload 18
19.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: Serviceの管理とヘルスチェック Serviceの情報の確認 ▶ 現在の状態はWeb-UIから確認できます ▶ もしくはHTTP API経由でも確認できます $ curl -s http://localhost:8500/v1/catalog/services | jq . $ curl -s http://localhost:8500/v1/catalog/service/sshd | jq . 19
20.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: Key Value Store (KVS) KVSとは ▶ Keyとそれに対応するValueを管理するシンプルなデータストア RDBのようなテーブル構造やRelationは持たない 一般的にスケールアウトが容易 Consulが提供するKVS ▶ Leaderがデータの原本を持ち、全てのServer Nodeに同期 Leader Nodeに障害が発生しても、過半数のServer Nodeが残っていれば 自動的に新たなLeaderをServerから選出 クラスタ内のLeaderが不在の場合は利用不可 ▶ consul agentが提供するHTTP API経由で読み書き可能 特定のNodeがEndpointになるわけではなく、全てのAgentがEndpointになれ るため、障害時も接続先を切り替える必要が無い 20
21.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: Key Value Store (KVS) KVSに対する操作 ▶ 人が参照・更新する場合は、Web-UIから操作するのが簡単です このタブを選択 21
22.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: Key Value Store (KVS) KVSに対する操作 ▶ プログラムから制御する場合は、HTTP API経由で操作します またはコミュニティで作成されている各言語用のSDKを利用します https://www.consul.io/downloads_tools.html ▶ 手動でHTTP APIを試す場合は、以下の操作で確認可能です # $(hostname)/test というKeyに"test_data" というValueを登録 $ curl -X PUT http://localhost:8500/v1/kv/$(hostname)/test -d "test_data" # $(hostname)/test というKeyの情報を取得し、Valueの所だけ切り出してbase64デコード $ curl -s http://localhost:8500/v1/kv/$(hostname)/test | jq .[].Value | tr -d '"' | base64 -d 22
23.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: DNS Consulは分散型の内部DNSとしても利用可能です ▶ クラスタ内の特定Nodeや、特定Serviceを提供するNode群の IPアドレスをDNSで取得できます 例: <node_name>.node.dc1.consul 例: <service_name>.service.dc1.consul ▶ Serviceの場合、HealthCheckに成功したノードのIPアドレスだけ 取得 障害が発生したノードを自動的にアクセス対象から外せる ▶ KVSと同様に、単一障害点がなく冗長化が可能 configで再帰問い合わせ先を指定すれば、外部のドメイン名も 名前解決できます ▶ ちょっとした環境なら単体でDNSサーバとしても利用可能 ▶ 本番環境では別途dnsmasq等と併用することが推奨されている 23
24.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編: DNS 設定 ▶ 標準設定の状態で、TCP 8600でサービスが稼動 ▶ 外部への再帰問い合わせを行う場合は、問い合わせ先を追加設定 確認 ▶ 一時的に試す場合は、digコマンド等で 127.0.0.1:8600を指定 ▶ 実際に利用する際には、dnsmasq等で.consulの問い合わせ先が Consulになるように設定します $ sudo vi /etc/consul.d/dns.json { "recursors": ["8.8.8.8", "8.8.4.4"] } $ consul leave $ consul agent -config-dir /etc/consul.d >> /tmp/consul.log & $ dig @127.0.0.1 -p 8600 $(hostname).node.dc1.consul $ dig @127.0.0.1 -p 8600 sshd.service.dc1.consul 24
25.
Copyright © 2015
TIS Inc. All rights reserved. 基本操作編 以上でConsulの基本操作編を終わります ▶ 16:15まで質疑応答タイムとします ▶ 残りの時間で色々な操作を試してみて、わからない所があれば スタッフに質問してみてください ▶ 一通り触ってみた方は休憩していただいて構いません ▶ 16:15から後半の応用編を開始します 25
26.
Copyright © 2015
TIS Inc. All rights reserved. Consulハンズオン 応用編 26
27.
Copyright © 2015
TIS Inc. All rights reserved. 応用編: Consul watchを用いた自律的な運用 Consul Watchはクラスタ内の変化を検出し、自動的に何らか の処理を行わせることができる機能です ▶ 自律的な運用を行うためには、現在の環境の状態を把握して 適切な処理を自動的に実行する仕組みが必要です ▶ consul watchを用いることで、クラスタ内の様々な変化を検出し てそれに応じたアクションを自動的に呼び出せます 例: 新しいノードがクラスタに参加した時に、監視サーバが自動的に新しい ノードを監視対象に追加 27
28.
Copyright © 2015
TIS Inc. All rights reserved. 応用編: Consul watchを用いた自律的な運用 シンプルな例として、sshdのServiceが稼動しているNodeの 情報を/etc/hostsに同期してみましょう ▶ sshdが稼動しているNodeの増減に応じて自動的に更新させます ConsulのDNS機能を使えば/etc/hostsを使う必要は無いですが、例として こうした処理を簡単に実現するconsul-templateという公式のツールもあります $ sudo vi /etc/consul.d/watch_nodes.json { "watches": [{ "type": "service", "service": "sshd", "handler": "/bin/bash -e /opt/consul/update_hosts.sh" }] } $ sudo chmod a+w /etc/hosts $ sudo cp -a /etc/hosts /etc/hosts.org $ sudo vi /opt/consul/update_hosts.sh #!/bin/sh cp /etc/hosts.org /etc/hosts curl -s localhost:8500/v1/catalog/service/sshd | jq .[] | jq '.Address + " " + .Node' | tr -d '"' >> /etc/hosts $ consul reload 28
29.
Copyright © 2015
TIS Inc. All rights reserved. 応用編: Consul watchを用いた自律的な運用 登録したWatchの動作確認 ▶ 誰かのNodeが参加・離脱すると/etc/hostsも更新されます ▶ 試しに皆で参加・離脱してみてください 29 $ consul leave $ consul agent -config-dir /etc/consul.d >> /tmp/consul.log &
30.
Copyright © 2015
TIS Inc. All rights reserved. 応用編: Consul eventを用いたイベント発行 運用には自律的な対応が望ましいものだけではなく、 ユーザが判断するタイミングで実行したいものも多数あります ▶ backup, restore, restart, etc. consul eventを使うと、事前にwatchに登録したスクリプトを 任意のタイミングで実行させることができます ▶ watchのtypeとしてeventを指定 30
31.
Copyright © 2015
TIS Inc. All rights reserved. 応用編: Consul eventを用いたイベント発行 例として、restartイベント受信時にcrondをrestartする watchを登録してみましょう ▶ 登録方法は先ほどのwatchの場合と同様です watchを登録したら実際にイベントを送ってみましょう ▶ cronのログに再起動に関連するログが出ていると思います $ sudo vi /etc/consul.d/watch_restart.json { "watches": [{ "type": "event", "name": "restart", "handler": "sudo systemctl restart crond" }] } $ consul reload $ consul event -name restart -node $(hostname) $ less /var/log/cron 31
32.
Copyright © 2015
TIS Inc. All rights reserved. 応用編: Consul eventを用いたイベント発行 特定のevent名に対応する処理は同一でなくとも構いません ▶ 例: APサーバがrestartを受け取った場合はtomcatを再起動 ▶ 例: DBサーバがrestartを受け取った場合はpostgresqlを再起動 consul eventは対象のノードを限定することも可能です ▶ -node: 指定した名前のノードのみで実行 ▶ -service: 指定した名前のサービスが稼動するノードでのみ実行 ▶ -tag: -serviceと併用し、サービスが稼動するノードの内、指定し たタグを持つノードでのみ実行 32
33.
Copyright © 2015
TIS Inc. All rights reserved. 応用編: Consul execによる任意のコマンド実行 管理対象のNodeが増えると、一つ一つのNodeにSSH接続して 管理を行うのは大変です consul execを使うと、クラスタ内のNodeに対して任意のコマ ンドを実行し、その出力を得ることができます ▶ 例えば各NodeのOpenSSLのバージョンを確認する場合には ▶ また更新が必要な場合も、全ノードに一度に行えます $ consul exec openssl version node1: OpenSSL 1.0.1e-fips 11 Feb 2013 node1: ==> node1: finished with exit code 0 1 / 1 node(s) completed / acknowledged $ consul exec sudo yum -y update openssl node1: Updated: node1: openssl.x86_64 1:1.0.1e-42.el7.9 (略) ==> node1: finished with exit code 0 1 / 1 node(s) completed / acknowledged 33
34.
Copyright © 2015
TIS Inc. All rights reserved. 応用編: Consul execによる任意のコマンド実行 一方で、任意のコマンドを遠隔から実行できるのは セキュリティ上問題になる場合もあります。 ▶ Configで、consul execの実行を無効にすることもできます ▶ またACLの機能を使って実行を制限することもできます 今回はACLの詳細については省略します $ sudo vi /etc/consul.d/disable_exec.json { "disable_remote_exec": true } 34
35.
Copyright © 2015
TIS Inc. All rights reserved. Consul活用事例紹介 クラウドオーケストレーションツール CloudConductor 35
36.
Copyright © 2015
TIS Inc. All rights reserved. 活用事例: CloudConductorとは アジャイルなシステム構築をサポートするツール ▶ システム構築のノウハウを込めたパターンから、いつでも誰でも その時点で最適な非機能要件を持ったシステムを簡単に構築 詳しくは公式サイトをご覧下さい: http://cloudconductor.org/ GitHubでソースコードも公開しています: https://github.com/cloudconductor/ 36
37.
Copyright © 2015
TIS Inc. All rights reserved. 活用事例: CloudConductorとは どんなツール? ▶ 一言で言えば、マルチクラウド対応のAWS OpsWorks CloudConductorの特徴 ▶ 一定の形式に従って記述された「パターン」をもとに、システム 構築を自動化 パターンの中にはシステム構成を表すCloudFormationのようなTemplateや、 各種ミドルウェアの導入・設定を自動化するChefなどのスクリプトを内包 構成管理ツールはChefに限定されず、任意のツールを利用可能 ▶ 複数の「パターン」を組み合わせて一つのシステムを構築可能 Javaアプリケーション用のTomcat Patternと、監視用のZabbix Patternを組み 合わせると、連動して自動的にサーバの監視を開始 ▶ 複数のクラウドに対応 とはいえ現在はまだAWSとOpenStackの2種類。今後さらに拡充予定 ▶ Consulを用いてイベントに応じた処理の自動実行を実現 AWS Opsworksと同様に、setup, configure, deploy等のイベントに対して処 理を行える機構をConsulを用いて実現 37
38.
Copyright © 2015
TIS Inc. All rights reserved. 活用事例: Consulを用いたオーケストレーションの概要 38 Users 指示 Pattern Consul Consul Pattern Consul Consul Pattern Pattern KVSに パラメータを登録し 指示に対応する Eventを発行 Consul Cluster 自身のRoleとEventに 対応した処理を呼出 Consul Pattern サーバ増加時には Watchが検知 サーバのRoleと Eventに応じた 処理を行う スクリプトを内包 Eventを伝播 Consulの持つ以下の機能を用いて情報共有、イベント通知を実施 ○ 分散KVSによる情報の共有 → パラメータ共有に利用 ○ クラスタ内へのイベントの伝播 → 外部非公開のサーバへの通知に利用 ○ イベントに対応したスクリプトの実行 → パターン内の処理呼出に利用 ○ 稼動するサービスの管理とヘルスチェック → 稼動させるサービスの管理に利用 ○ サービス管理と連動した内部DNS
39.
Copyright © 2015
TIS Inc. All rights reserved. 活用事例: 使用しているConsulの機能 Consul Watch & Eventを用いた処理の呼び出し ▶ CloudConductorが構築したシステムに対してイベントを発行し、 各Nodeが自身に合った適切な処理を呼び出し 初期構築時のsetupイベント, configureイベント アプリケーションデプロイ時のdeployイベント その他ユーザから指示されたイベントの伝達 (backup, restore等) KVSによるシステム内の設定情報の共有 ▶ ユーザから受け取ったパラメータや、各Nodeの役割などを格納 ▶ Eventに応じて呼び出されるスクリプトがKVSの値を参照 システム内で稼動するServiceの管理 ▶ Serviceの状態をConsul経由で確認可能に ▶ Consulから監視情報を取得してZabbixに格納するパターンも 現在作成中 39
40.
Copyright © 2015
TIS Inc. All rights reserved. 活用事例: Consulを活用することで得られたメリット (1/2) 特定のノードに依存しない自律的な運用の実現 ▶ 従来の運用では 監視サーバが障害を検出して特定のアクションを起こすことはできたが、どの ノードで何を実行するかの設定が監視サーバに集中 各サーバの状態が共有されていないため、それぞれのノードが他のサーバの状 態を考慮してアクションを行うことが困難 ▶ Consulを使うことで 特定の変化(Nodeの追加)などが起こった場合に、各ノードが自分が行うべき処 理を判断して自律的に動けるように 監視サーバであれば、新ノードを監視対象に追加 ロードバランサーであれば、新ノードをロードバランスの対象に追加 他のノードの状態を把握した上で適切なアクションが可能に 現在どのDBサーバがMasterを判別してReplicationを実行 40
41.
Copyright © 2015
TIS Inc. All rights reserved. 活用事例: Consulを活用することで得られたメリット (2/2) 単一障害点の無いシステム内の情報共有基盤としての活用 ▶ Consulを活用することで、情報を集約するサーバを持たずに システム内で情報共有が可能に Consulの管理するNodeやServiceの情報の活用 KVSにその他のパラメータ等を格納して活用 クラスタ内でのイベント伝播による外部公開ポートの限定 ▶ SSHを経由して各サーバを管理するツールの場合、外部に公開し ていないサーバを外から運用しようとすると設定が複雑に 多段SSHを行うことで管理できないことは無いが、細かい設定が必要 ▶ Consulの場合、外部に公開されているクラスタ内の1つのサーバ にイベントを送れば、全てのノードにイベントを伝達可能 外部に公開されているサーバが複数あれば簡単に冗長化も可能 41
42.
Copyright © 2015
TIS Inc. All rights reserved. まとめ Consulは運用に役立つ多様な機能を持っています ▶ クラスタ内のNodeやServiceの死活監視 ▶ 分散KVSによる情報共有 ▶ 分散DNSによるクラスタ内のNodeやServiceの名前解決 ▶ Watch/Eventを用いた運用作業の自動化、自律化 ▶ consul execによるちょっとした運用作業の効率化 ▶ その他様々な機能 OSを問わず簡単に導入できます ▶ バイナリ一つで動きます まずは手元の検証環境などに導入してみてはいかがでしょうか 42
43.
Copyright © 2015
TIS Inc. All rights reserved. 宣伝: 技術勉強会 TechCircle TechCircleという誰でも参加可能な勉強会を開催しています ▶ 色々な技術の勉強会やハンズオンを不定期に実施しています ▶ 過去のテーマ例 OpenStack, Vagrant+Docker, SDS, Consul, 機械学習, Ansible, Pepper Connpassで情報公開と参加者の募集を行っています ▶ http://techcircle.connpass.com/ ▶ 過去の勉強会の資料なども公開していますので是非ご覧下さい 43
Download now