20161208 Classmethod Codenize Tools

30
ククククク Codenize Tools ククク 2016 ク 12 ク 8 ク

Transcript of 20161208 Classmethod Codenize Tools

Page 1: 20161208 Classmethod Codenize Tools

クラメソ流Codenize Tools 活用術

2016 年 12 月 8 日

Page 2: 20161208 Classmethod Codenize Tools

2本日の内容

• Roadworker• Piculet• ansible

それと・・・

Page 3: 20161208 Classmethod Codenize Tools

菅原さんに感謝の意

Page 4: 20161208 Classmethod Codenize Tools

4自己紹介

名前 : 植木 和樹(うえき かずき)年齢 :40 歳出身 : 新潟県妙高市

IT サービスマネージャーAWS コンサルティング部オペレーショングループ長オペレーション部長IT 推進室室長

@czkuk

Page 5: 20161208 Classmethod Codenize Tools

5Roadworker との出会い

2013 年 8 月 23 日cloudpack Night #7

Page 6: 20161208 Classmethod Codenize Tools
Page 7: 20161208 Classmethod Codenize Tools

7早速活用

• Route53 への DNS 移行• 20 ゾーン• 最大 500 レコード / ゾーン• (が CSV ファイルで提供される)

• CSV ファイルを Roadworker ファイルに変換• 数時間で作業完了

Page 8: 20161208 Classmethod Codenize Tools

8Piculet との出会い

• 数ヶ月後 某ブログで存在を知る

Page 9: 20161208 Classmethod Codenize Tools
Page 10: 20161208 Classmethod Codenize Tools

10Piculet を便利にする補助スクリプト

• 課題• IP アドレスの目的が分からない• お客さまも結構忘れてる• 事務所移転による IP アドレス変更が結構多い

IP→ 名前変換があると便利だよね

Page 11: 20161208 Classmethod Codenize Tools

11inject_definition.rb• address_list.yml にマッピング定義• piculet --export 後に IP アドレスを名前変換

Page 12: 20161208 Classmethod Codenize Tools

---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

Page 13: 20161208 Classmethod Codenize Tools

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

Page 14: 20161208 Classmethod Codenize Tools

近日中に公開します

(今日作者の OK もらいました)

Page 15: 20161208 Classmethod Codenize Tools
Page 16: 20161208 Classmethod Codenize Tools

AWS 総合支援サービス:メンバーズ大幅割引、請求書送付、付帯損害保険、AWSサポートを標準セットにして無料提供

AWS 利用料金( 従量課金 )

AWS エンタープライズサポート$15,000 〜

損害保険 5%請求代行手数料 10%

AWS 利用料金 ( 従量課金 )+請求代行手数料 無料+損害保険 無料+

AWS エンタープライズサポート 無料+

Amazon EC2 オンデマンド対象インスタンス 10% オフ+

Amazon CloudFront 64% オフ+フルサポート 10%

自社契約または他社サービスの利用例 クラスメソッド メンバーズ利用例

お得!

Page 17: 20161208 Classmethod Codenize Tools

AWS 総合支援サービス:メンバーズ

AWS 総合支援サービスメンバーズコンサルティング

構築支援

24/365 無人監視セキュリティ監視

運用支援TAM

ご提案 構築 運用監視

Page 18: 20161208 Classmethod Codenize Tools

以上宣伝でした

Page 19: 20161208 Classmethod Codenize Tools

AWS 総合支援サービス:メンバーズ

AWS 総合支援サービスメンバーズコンサルティング

構築支援

24/365 無人監視セキュリティ監視

運用支援TAM

ご提案 構築 運用監視

Page 20: 20161208 Classmethod Codenize Tools

20運用支援(オペレーション)

システムA

EB

CloudFormation

システムB

EC2

Terraform

システムC

EC2

-

オペレーション

システム毎の差分を吸収して標準化しないと死ねる

Page 21: 20161208 Classmethod Codenize Tools

21くらめそオペチー社内試験あります

フェーズ1・受付・上限緩和

フェーズ2・ QA

フェーズ3・作業

社内試験SA アソシエイト

Page 22: 20161208 Classmethod Codenize Tools

22Roadworker/Piculet のいいところ

• 使い方が簡単• --dry-run• どんな手法で構築した環境でも OK

Page 23: 20161208 Classmethod Codenize Tools

23ansible

• 2013 年 5 月〜 2014 年夏chef ( knife-solo )

• chef-server 入れる程の規模でもない• 構築時だけ楽したいという需要が多い• なんか知らんけど chef-client が動かん

• 2014 年〜現在ansible

Page 24: 20161208 Classmethod Codenize Tools

24ansible x PCIDSS

• 2016 年 2 月取得• 12 の要件• 作業用ログインサーバー(重要)

• sshd の設定とかパスワードポリシーとか自動アカウントロックとか作業の記録とかログイン時の MFA 設定とかアンチウイルスソフトのインストールとかファイルの改ざん検知とか通知とかそれらがちゃんと機能してるかの確認とか・・・要はくっそ面倒くさい

Page 25: 20161208 Classmethod Codenize Tools

25ansible x PCIDSS

• 1個ずつ必要な設定を playbook に記述• 結構な頻度で ansible-playbook• 作業対象サーバーが変更されたタイミング• 作業アカウントが追加されたタイミング

• 常に「あるべき設定」になっている

Page 26: 20161208 Classmethod Codenize Tools

26運用がちょっとダサイ

• 【いま】playbook 修正→ ansible-playbook→ git push

• 【理想】git push→ Git commit hook→ Jenkins (git pull)→ ansible-playbook

Page 27: 20161208 Classmethod Codenize Tools

27ansible x PCIDSS x AWS

• Jenkins が PCIDSS の対象になるのはイヤ• Code Commit + Code Build でいけるカモ?

(いま検証中)

Page 28: 20161208 Classmethod Codenize Tools

28【最後に】 piculet で困ってること1

• switchRole に対応してない• aws-sdk-v1 が対応してないため?

$ cat ~/.aws/config

[profile myaws]output = jsonrole_arn = arn:aws:iam::987654321098:role/ueki.kazukisource_profile = default

Page 29: 20161208 Classmethod Codenize Tools

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

Page 30: 20161208 Classmethod Codenize Tools

30まとめ

• 構築時はメンテナンス方法まで考えよう(植木との約束だよ)

• コードは信頼できる状態にしておこう

• 菅原さんに感謝っ!圧倒的感謝っ!!