2013.7.6
第2回 JAWS-UG神戸 OpsWorks (Chef) 特集!
吉田真吾 @yoshidashingo
CloudFormation
自己紹介
プロフィール
名前:吉田真吾
アイレット株式会社 cloudpack エバンジェリスト
JAWS-UG 横浜 代表
好きなAWSサービス:Amazon S3
好きなAWSクラウドデザインパターン:Direct
Hostingパターン
アジェンダ
AWS CloudFormation の説明
AWS CloudFormation Tips
AWS CloudFormation 実例
まとめ
Confidential
AWS
CloudFormation
説明
AWS CloudFormation
JSON形式で記述したテンプレートを利用する
ことで、システムのスタックを「一撃」でデプ
ロイ・更新・削除できるサービス
テンプレートのパート
Resources:作成したいリソースの定義
Paramete...
{
	
  	
  "Parameters"	
  :	
  {
	
  	
  	
  	
  "KeyName"	
  :	
  {
	
  	
  	
  	
  	
  	
  "Description"	
  :	
  "Name	
...
 	
  "Outputs":	
  {
	
  	
  	
  	
  "InstallURL":	
  {
	
  	
  	
  	
  	
  	
  "Value":	
  {
	
  	
  	
  	
  	
  	
  	
  ...
Confidential
AWS
CloudFormation
Tips
Tips
テンプレートを再利用可能なモジュ
ール分割(パラメータ、アウトプッ
ト)してチェーン実行しよう
同じ役割のサーバーを複数作成する
ならオートスケーリングで管理しよう
(可用性の観点からも Good!)
テンプレートのチェーン
"Resources":	
  {
  "CloudFormationStackVPCBasic"	
  :	
  {
    "Type":	
  "AWS::CloudFormation::Stack",
    "...
同一レイヤーは Auto Scaling で
"Resources":	
  {
	
   "AutoScalingLaunchConfig"	
  :	
  {
	
   	
   "Type"	
  :	
  "AWS::AutoScali...
Confidential
AWS
CloudFormation
事例
インフラ設計・構築
インターネット公式サイト
月間1億PV 45億ヒット、
新車発表時3倍のアクセス
すべて冗長化
オンプレに環境再生可能な
バックアップ
東京リージョン障害時に
シンガポールで復旧可能
DR用CloudFormation
CloudFormationでシンガポールリージョ
ンに環境構築
テンプレートから一発で構築可能
Tokyo Region Singapore Region
CloudForma*on,
Template, ...
どこまで一撃?
CloudFormation で構築したインフ
ラはダイレクトにsshログインして変
更可能なので運用フェーズでの構成情
報の保全はできない→なんか組み合
わせるツールが必要
UserData(CloudInit)で色々
Boo...
Bootstrap パターン
Bootstrap パターン
あとは待つだけ...
AWSのみでクレジット決済の
インフラを構築
→PCI DSS審査合格
AWSのみでクレジット決済の
インフラを構築
→PCI DSS 審査合格
AWSのみでクレジット決済の
インフラを構築
→PCI DSS審査合格
PCI DSS 環境構築用
CFn テンプレート
https://github.com/suz-lab/suz-lab-cloudformation/blob/
maste...
PCI DSS要件
要件1: カード会員データを保護するために、ファイアウォールをインストールして構成を維持する
要件2: システムパスワードおよび他のセキュリティパラメータにベンダ提供のデフォルト値を使用しな
い
要件3: 保存されるカード会...
脆弱性対策
ミドルウェア最新化
Apacheはパッケージでは不可だったため、最新版ソー
スをコンパイル
• IPA(独立行政法人 情報処理推進機構)の定めるCVSS 4.0以上(レベ
ルIII危険+レベルII警告)はすべて対策必須のため
まとめ
CloudFormation で「誰でも」「再
現性の高い」インフラの構築が可能
ノードの設定以降について、Chef な
どを活用しましょう
Thanks!
http://www.cloudpack.jp/
suuport@cloudpack.jp
@cloudpack_jp
20130706 JAWS-UG神戸 一撃CloudFormation
20130706 JAWS-UG神戸 一撃CloudFormation
20130706 JAWS-UG神戸 一撃CloudFormation
Upcoming SlideShare
Loading in …5
×

20130706 JAWS-UG神戸 一撃CloudFormation

2,608 views

Published on

2013.7.6 CloudFormationのTips系の話。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,608
On SlideShare
0
From Embeds
0
Number of Embeds
1,195
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

20130706 JAWS-UG神戸 一撃CloudFormation

  1. 1. 2013.7.6 第2回 JAWS-UG神戸 OpsWorks (Chef) 特集! 吉田真吾 @yoshidashingo CloudFormation
  2. 2. 自己紹介 プロフィール 名前:吉田真吾 アイレット株式会社 cloudpack エバンジェリスト JAWS-UG 横浜 代表 好きなAWSサービス:Amazon S3 好きなAWSクラウドデザインパターン:Direct Hostingパターン
  3. 3. アジェンダ AWS CloudFormation の説明 AWS CloudFormation Tips AWS CloudFormation 実例 まとめ
  4. 4. Confidential AWS CloudFormation 説明
  5. 5. AWS CloudFormation JSON形式で記述したテンプレートを利用する ことで、システムのスタックを「一撃」でデプ ロイ・更新・削除できるサービス テンプレートのパート Resources:作成したいリソースの定義 Parameters:画面から指定する引数 Mappings:条件に応じて入替える引数リスト Outputs:結果の出力
  6. 6. {    "Parameters"  :  {        "KeyName"  :  {            "Description"  :  "Name  of  an  existing  EC2  KeyPair  to  enable  SSH  access  to  the  instance",            "Type"  :  "String"        }    },    "Mappings"  :  {        "RegionMap"  :  {            "us-­‐east-­‐1"  :  {                    "AMI"  :  "ami-­‐76f0061f"            },            "us-­‐west-­‐1"  :  {                    "AMI"  :  "ami-­‐655a0a20"            },            "eu-­‐west-­‐1"  :  {                    "AMI"  :  "ami-­‐7fd4e10b"            },            "ap-­‐southeast-­‐1"  :  {                    "AMI"  :  "ami-­‐72621c20"            },            "ap-­‐northeast-­‐1"  :  {                    "AMI"  :  "ami-­‐8e08a38f"            }        }    },    "Resources"  :  {        "Ec2Instance"  :  {            "Type"  :  "AWS::EC2::Instance",            "Properties"  :  {                "KeyName"  :  {  "Ref"  :  "KeyName"  },                "ImageId"  :  {  "Fn::FindInMap"  :  [  "RegionMap",  {  "Ref"  :  "AWS::Region"  },  "AMI"  ]},                "UserData"  :  {  "Fn::Base64"  :  "80"  }            }        }    } }
  7. 7.    "Outputs":  {        "InstallURL":  {            "Value":  {                "Fn::Join":  [                    "",                    [                        "http://",                        {                            "Fn::GetAtt":  [                                "ElasticLoadBalancer",                                "DNSName"                            ]                        },                        "/wp-­‐admin/install.php"                    ]                ]            },            "Description"  :  "Installation  URL  of  the  WordPress  website"        },        "WebsiteURL":  {            "Value":  {                "Fn::Join":  [                    "",                    [                        "http://",                        {                            "Fn::GetAtt":  [                                "ElasticLoadBalancer",                                "DNSName"  ]                        }                    ]                ]            }        }    }
  8. 8. Confidential AWS CloudFormation Tips
  9. 9. Tips テンプレートを再利用可能なモジュ ール分割(パラメータ、アウトプッ ト)してチェーン実行しよう 同じ役割のサーバーを複数作成する ならオートスケーリングで管理しよう (可用性の観点からも Good!)
  10. 10. テンプレートのチェーン "Resources":  {   "CloudFormationStackVPCBasic"  :  {     "Type":  "AWS::CloudFormation::Stack",     "Properties":  {       "TemplateURL":  "https://s3-­‐ap-­‐northeast-­‐1.amazonaws.com/template.suz-­‐lab.com/template/suz-­‐lab_vpc-­‐ basic-­‐0.0.1.json", "TimeoutInMinutes":  "60"     }   },   "CloudFormationStackOnDemandNAT"  :  {     "Type":  "AWS::CloudFormation::Stack",     "Properties":  {       "TemplateURL"  :  "https://s3-­‐ap-­‐northeast-­‐1.amazonaws.com/template.suz-­‐lab.com/template/suz-­‐ lab_ondemand-­‐nat-­‐0.0.1.json",       "Parameters"  :  {         "KeyName":  {  "Ref":  "KeyName"  },         "ImageId":  {  "Ref":  "OnDemandNATImageId"  },         "InstanceType":  {  "Ref":  "OnDemandNATInstanceType"  },         "Name":  {  "Ref":  "OnDemandNATName"  },         "RouteTableId":  {  "Fn::GetAtt"  :  [  "CloudFormationStackVPCBasic",   "Outputs.RouteTableIdProtected"  ]  },         "SecurityGroupId":  {  "Fn::GetAtt"  :  [  "CloudFormationStackVPCBasic",   "Outputs.SecurityGroupIdCommon"  ]  },         "SubnetId":  {  "Fn::GetAtt"  :  [  "CloudFormationStackVPCBasic",  "Outputs.SubnetIdPublicVarA00"  ]  },         "VpcId":  {  "Fn::GetAtt"  :  [  "CloudFormationStackVPCBasic",  "Outputs.VpcIdBasic"  ]  }       }     }   } }, 親テンプレートの定義
  11. 11. 同一レイヤーは Auto Scaling で "Resources":  {   "AutoScalingLaunchConfig"  :  {     "Type"  :  "AWS::AutoScaling::LaunchConfiguration",     "Properties"  :  {       "KeyName"                :  {  "Ref"  :  "KeyName"  },       "ImageId"                :  {  "Ref"  :  "ImageId"  },       "SecurityGroups"  :  {  "Ref"  :  "SecurityGroups"  },       "InstanceType"      :  {  "Ref"  :  "InstanceType"  }     }   },   "AutoScalingAutoScalingGroup"  :  {     "Type"  :  "AWS::AutoScaling::AutoScalingGroup",     "Properties"  :  {       "DesiredCapacity"                  :  {  "Ref"  :  "CapacitySize"  },       "LaunchConfigurationName"  :  {  "Ref"  :  "AutoScalingLaunchConfig"  },       "MaxSize"                                  :  {  "Ref"  :  "CapacitySize"  },       "MinSize"                                  :  {  "Ref"  :  "CapacitySize"  },       "AvailabilityZones"  :  [         {  "Fn::FindInMap"  :  [  "AzMap",  {  "Ref"  :  "AWS::Region"  },  "Az1"  ]  },         {  "Fn::FindInMap"  :  [  "AzMap",  {  "Ref"  :  "AWS::Region"  },  "Az2"  ]  }       ],     "Tags"  :  [       {  "Key"  :  "Name",  "Value"  :  {  "Ref"  :  "Name"  },  "PropagateAtLaunch"  :  true  }     ]     }   } }, Parameters
  12. 12. Confidential AWS CloudFormation 事例
  13. 13. インフラ設計・構築 インターネット公式サイト 月間1億PV 45億ヒット、 新車発表時3倍のアクセス すべて冗長化 オンプレに環境再生可能な バックアップ 東京リージョン障害時に シンガポールで復旧可能
  14. 14. DR用CloudFormation CloudFormationでシンガポールリージョ ンに環境構築 テンプレートから一発で構築可能 Tokyo Region Singapore Region CloudForma*on, Template, Stack,
  15. 15. どこまで一撃? CloudFormation で構築したインフ ラはダイレクトにsshログインして変 更可能なので運用フェーズでの構成情 報の保全はできない→なんか組み合 わせるツールが必要 UserData(CloudInit)で色々 Bootstrap 処理させるの超大変
  16. 16. Bootstrap パターン
  17. 17. Bootstrap パターン
  18. 18. あとは待つだけ...
  19. 19. AWSのみでクレジット決済の インフラを構築 →PCI DSS審査合格 AWSのみでクレジット決済の インフラを構築 →PCI DSS 審査合格
  20. 20. AWSのみでクレジット決済の インフラを構築 →PCI DSS審査合格 PCI DSS 環境構築用 CFn テンプレート https://github.com/suz-lab/suz-lab-cloudformation/blob/ master/pattern/suz-lab_0302_admin_firewall.json
  21. 21. PCI DSS要件 要件1: カード会員データを保護するために、ファイアウォールをインストールして構成を維持する 要件2: システムパスワードおよび他のセキュリティパラメータにベンダ提供のデフォルト値を使用しな い 要件3: 保存されるカード会員データを保護する 要件4: オープンな公共ネットワーク経由でカード会員データを伝送する場合、暗号化する 要件5: アンチウィルスソフトウェアまたはプログラムを使用し、定期的に更新する 要件6: 安全性の高いシステムとアプリケーションを開発し、保守する 要件7: カード会員データへのアクセスを、業務上必要な範囲内に制限する 要件8: コンピュータにアクセスできる各ユーザに一意の ID を割り当てる 要件9: カード会員データへの物理アクセスを制限する 要件10: ネットワークリソースおよびカード会員データへのすべてのアクセスを追跡および監視する 要件11: セキュリティシステムおよびプロセスを定期的にテストする 要件12: すべての担当者の情報セキュリティポリシーを整備する
  22. 22. 脆弱性対策 ミドルウェア最新化 Apacheはパッケージでは不可だったため、最新版ソー スをコンパイル • IPA(独立行政法人 情報処理推進機構)の定めるCVSS 4.0以上(レベ ルIII危険+レベルII警告)はすべて対策必須のため
  23. 23. まとめ CloudFormation で「誰でも」「再 現性の高い」インフラの構築が可能 ノードの設定以降について、Chef な どを活用しましょう
  24. 24. Thanks! http://www.cloudpack.jp/ suuport@cloudpack.jp @cloudpack_jp

×