シェルスクリプトで作るコンフィグ管理サーバ

19
シシシシシシシシシシシ シシシシシシシシシシ 2016/4/21 Thu 第 18 第 JAWS-UG 第第 第第第

Upload: masaru-ogura

Post on 27-Jan-2017

256 views

Category:

Internet


1 download

TRANSCRIPT

Page 1: シェルスクリプトで作るコンフィグ管理サーバ

シェルスクリプトで作るコンフィグ管理サーバ

2016/4/21 Thu第 18 回 JAWS-UG 札幌 勉強会

Page 2: シェルスクリプトで作るコンフィグ管理サーバ

自己紹介

• 小倉 大 ( おぐら まさる )• 株式会社スカイ 365• 元オンプレミスのネットワークエンジニア

• AWS 歴  6 か月

• 好きな AWS サービス : まだない

Page 3: シェルスクリプトで作るコンフィグ管理サーバ

日々、オンプレミスでやっていたことを

AWS で活用することができないかを考えて

います

Page 4: シェルスクリプトで作るコンフィグ管理サーバ

オンプレミスでやっていた

コンフィグ管理って AWS でもできるかな

Page 5: シェルスクリプトで作るコンフィグ管理サーバ

オンプレミスのコンフィグ管理

ネットワーク網

コンフィグ管理サーバ

ルータ

スイッチ

ロードバランサ

ファイアウォール

① コンフィグ管理サーバでスクリプトを実行し、定期的にネットワーク機器全台のコンフィグを取得する

② コンフィグに差分があった場合は、メールを送信する

データセンター内

Page 6: シェルスクリプトで作るコンフィグ管理サーバ

コンフィグ管理をするメリット

• 機器交換をする時に、コンフィグ管理サーバに保存してある最新のコンフィグから復旧できる

• 設定の変更箇所を確認できる• 意図しない設定変更を検知できる• 設定変更した内容が正しいか確認できる

Page 7: シェルスクリプトで作るコンフィグ管理サーバ

これと同じようなことを AWS でやってみる

Page 8: シェルスクリプトで作るコンフィグ管理サーバ

AWS のコンフィグ管理

Amazon Linuxインターネット

① コンフィグ管理サーバでスクリプトを実行し、定期的に指定した AWS アカウントのインスタンス等の情報を取得する

② コンフィグに差分があった場合は、 Slack へ通知する

コンフィグ管理サーバ

Page 9: シェルスクリプトで作るコンフィグ管理サーバ

スクリプトの動き

0. 各 AWS アカウントで IAM ユーザを作成し、IAM ユーザ情報を記載したファイルを用意

1. IAM ユーザの情報をスクリプトに入力

2. AWS CLI の環境変数を設定

3. AWS CLI のコマンドを実行

4. 差分があれば Slack へ通知

あとは、 AWS アカウントごとに 2 ~ 4 を繰り返す

※ シェルスクリプトは GitHub に置いてありますhttps://github.com/MasaruOgura/shellscript/blob/master/getconfig.sh

Page 10: シェルスクリプトで作るコンフィグ管理サーバ

スクリプトの動き ( 補足 )2. AWS CLI の環境変数を設定

  export AWS_ACCESS_KEY_ID=xxxx  export AWS_SECRET_ACCESS_KEY=yyyy  export WS_DEFAULT_REGION=zzzz  export AWS_DEFAULT_OUTPUT=text  AWS CLI のアウトプットは 3 種類   json, text, or table

Page 11: シェルスクリプトで作るコンフィグ管理サーバ

スクリプトの動き ( 補足 )3. AWS CLI のコマンドを実行

  EC2 インスタンス一覧   aws ec2 describe-instances  IAM ユーザ一覧   aws iam list-users セキュリティグループ一覧   aws ec2 describe-security-groups

Page 12: シェルスクリプトで作るコンフィグ管理サーバ

スクリプトの動き ( 補足 )4. 差分があれば Slack へ通知

Page 13: シェルスクリプトで作るコンフィグ管理サーバ

AWS で同じようなサービスがあったような

Page 14: シェルスクリプトで作るコンフィグ管理サーバ

AWS CloudTrail,   AWS ConfigAWS CloudTrailAWS アカウントの操作をロギングするサービスで、 SNS(Simple Notification Service) で通知可能

AWS ConfigAWS リソースのインベントリを取得し、リソースの設定履歴を監査、リソースの構成の変更を通知することができるフルマネージドサービス

Page 15: シェルスクリプトで作るコンフィグ管理サーバ

単一の AWS アカウント向けで、

複数の AWS アカウントの一元管理には向い

ていない と思います

Page 16: シェルスクリプトで作るコンフィグ管理サーバ

まとめ

複数の AWS アカウントを運用には今回作成

したシェルスクリプトが利用できるかも

Page 17: シェルスクリプトで作るコンフィグ管理サーバ

ご清聴ありがとうございました

Page 18: シェルスクリプトで作るコンフィグ管理サーバ

Appendix【 AWS 】 CLI の初期設定について(認証情報とコマンド補完)http://www.task-notes.com/entry/20141026/1414322858

シェルスクリプトで tsv ファイルと csv ファイルを処理する方法 http://millay-diary.info/blog/post-201/

対象のディレクトリがなかったら作成するシェルスクリプトワンライナー

http://qiita.com/yoccola/items/d4c346b74204d298166c

Incoming WebHooks を使って slack に POST するシェルスクリプトhttp://qiita.com/tiida26/items/9092245ad44cf7b20ef5

Page 19: シェルスクリプトで作るコンフィグ管理サーバ

AppendixUNIX シェルスクリプトハンドブックhttp://www.amazon.co.jp/UNIX%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-Technical-handbook-001-%E9%96%A2%E6%A0%B9/dp/4797326522

GitHub( シェルスクリプトが置いてある URL)https://github.com/MasaruOgura/shellscript/blob/master/getconfig.sh