クラメソ流
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/24
CM:
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
end
end
近日中に公開します
(今日作者の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 = json
role_arn = arn:aws:iam::987654321098:role/ueki.kazuki
source_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まとめ
• 構築時はメンテナンス方法まで考えよう
(植木との約束だよ)
• コードは信頼できる状態にしておこう
• 菅原さんに感謝っ!圧倒的感謝っ!!

20161208 Classmethod Codenize Tools