ククククク Codenize Tools ククク 2016 ク 12 ク 8 ク
クラメソ流Codenize Tools 活用術
2016 年 12 月 8 日
2本日の内容
• Roadworker• Piculet• ansible
それと・・・
菅原さんに感謝の意
4自己紹介
名前 : 植木 和樹(うえき かずき)年齢 :40 歳出身 : 新潟県妙高市
IT サービスマネージャーAWS コンサルティング部オペレーショングループ長オペレーション部長IT 推進室室長
@czkuk
5Roadworker との出会い
2013 年 8 月 23 日cloudpack Night #7
7早速活用
• Route53 への DNS 移行• 20 ゾーン• 最大 500 レコード / ゾーン• (が CSV ファイルで提供される)
• CSV ファイルを Roadworker ファイルに変換• 数時間で作業完了
8Piculet との出会い
• 数ヶ月後 某ブログで存在を知る
10Piculet を便利にする補助スクリプト
• 課題• IP アドレスの目的が分からない• お客さまも結構忘れてる• 事務所移転による IP アドレス変更が結構多い
IP→ 名前変換があると便利だよね
11inject_definition.rb• address_list.yml にマッピング定義• piculet --export 後に IP アドレスを名前変換
---VPC: ClassA: 10.0.0.0/8 ClassB: 172.16.0.0/16 ClassC: 192.168.0.0/24CM: Office: 203.0.113.1/32 Joetsu: 203.0.113.2/32
$ piculet --export --region ap-northeast-1 –split$ ruby inject_definition.rb
ec2 "vpc-800040e5" do security_group "AccountServer-SSHSecurityGroup-P0GE4GWO3JYN" do description "Enable SSH access via port 22”
ingress do permission :tcp, 22..22 do ip_ranges( Definitions.ip.CM.Iwamotocho3F, Definitions.ip.CM.Joetsu, Definitions.ip.CM.Sapporo, Definitions.ip.CM.Iwamotocho5F, Definitions.ip.CM.Office ) end end egress do permission :any do ip_ranges( "0.0.0.0/0” ) end end endend
近日中に公開します
(今日作者の OK もらいました)
AWS 総合支援サービス:メンバーズ大幅割引、請求書送付、付帯損害保険、AWSサポートを標準セットにして無料提供
AWS 利用料金( 従量課金 )
AWS エンタープライズサポート$15,000 〜
損害保険 5%請求代行手数料 10%
AWS 利用料金 ( 従量課金 )+請求代行手数料 無料+損害保険 無料+
AWS エンタープライズサポート 無料+
Amazon EC2 オンデマンド対象インスタンス 10% オフ+
Amazon CloudFront 64% オフ+フルサポート 10%
自社契約または他社サービスの利用例 クラスメソッド メンバーズ利用例
お得!
AWS 総合支援サービス:メンバーズ
AWS 総合支援サービスメンバーズコンサルティング
構築支援
24/365 無人監視セキュリティ監視
運用支援TAM
ご提案 構築 運用監視
以上宣伝でした
AWS 総合支援サービス:メンバーズ
AWS 総合支援サービスメンバーズコンサルティング
構築支援
24/365 無人監視セキュリティ監視
運用支援TAM
ご提案 構築 運用監視
20運用支援(オペレーション)
システムA
EB
CloudFormation
システムB
EC2
Terraform
システムC
EC2
-
オペレーション
システム毎の差分を吸収して標準化しないと死ねる
21くらめそオペチー社内試験あります
フェーズ1・受付・上限緩和
フェーズ2・ QA
フェーズ3・作業
社内試験SA アソシエイト
22Roadworker/Piculet のいいところ
• 使い方が簡単• --dry-run• どんな手法で構築した環境でも OK
23ansible
• 2013 年 5 月〜 2014 年夏chef ( knife-solo )
• chef-server 入れる程の規模でもない• 構築時だけ楽したいという需要が多い• なんか知らんけど chef-client が動かん
• 2014 年〜現在ansible
24ansible x PCIDSS
• 2016 年 2 月取得• 12 の要件• 作業用ログインサーバー(重要)
• sshd の設定とかパスワードポリシーとか自動アカウントロックとか作業の記録とかログイン時の MFA 設定とかアンチウイルスソフトのインストールとかファイルの改ざん検知とか通知とかそれらがちゃんと機能してるかの確認とか・・・要はくっそ面倒くさい
25ansible x PCIDSS
• 1個ずつ必要な設定を playbook に記述• 結構な頻度で ansible-playbook• 作業対象サーバーが変更されたタイミング• 作業アカウントが追加されたタイミング
• 常に「あるべき設定」になっている
26運用がちょっとダサイ
• 【いま】playbook 修正→ ansible-playbook→ git push
• 【理想】git push→ Git commit hook→ Jenkins (git pull)→ ansible-playbook
27ansible x PCIDSS x AWS
• Jenkins が PCIDSS の対象になるのはイヤ• Code Commit + Code Build でいけるカモ?
(いま検証中)
28【最後に】 piculet で困ってること1
• switchRole に対応してない• aws-sdk-v1 が対応してないため?
$ cat ~/.aws/config
[profile myaws]output = jsonrole_arn = arn:aws:iam::987654321098:role/ueki.kazukisource_profile = default
29【最後に】 piculet で困ってること2
• IAM Role → Role の assumeRole のクレデンシャルだとセキュリティーグル プに− AWS アカウント ID が付与される
• IAM User → Role の assumeRole だと OK
security_group "ueki-default-sg" do description "ssh and http" ingress do permission :any do groups( ["123456789012", "sg-63b4510c"] ) end end end
30まとめ
• 構築時はメンテナンス方法まで考えよう(植木との約束だよ)
• コードは信頼できる状態にしておこう
• 菅原さんに感謝っ!圧倒的感謝っ!!