一撃 CloudFormationとJAWS FESTAへのお誘い(JAWS-UG島根20130726)

1,046 views
965 views

Published on

2013.7.26 JAWS-UG島根 第0回勉強会で発表した資料です。

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,046
On SlideShare
0
From Embeds
0
Number of Embeds
295
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

一撃 CloudFormationとJAWS FESTAへのお誘い(JAWS-UG島根20130726)

  1. 1. 2013.7.26 JAWS-UG 島根 吉田真吾 @yoshidashingo BCPに活かせ! CloudFormation
  2. 2. 自己紹介 名前:吉田真吾 アイレット株式会社 cloudpack エバンジェリスト JAWS-UG 横浜 代表 好きなAWSサービス:Amazon S3 好きなAWSクラウドデザインパターン:Direct Hostingパターン
  3. 3. ただいま!大東町!
  4. 4. AWS運用をアウトソースしたい企業向けの 月額費用固定型フルマネージドホスティング 24時間365日サーバー運用・保守 •電話/メールによるサポート 初期費用なし(基本移行作業含む) 月額5万円からのスタート 日本円で請求書発行
  5. 5. フルマネージド サービス/リソース監視 ディスク使用量、メモリ使用量、プロセス数、 Webサーバー・DBサーバー死活... バックアップ/リストア EBSスナップショットを利用した二世代(過去 二日分)バックアップ アクセス制御(ファイアーウォール) 適切なセキュリティグループを設定、OS・ミド ルウェアレベルでさらに細かな設定も対応可能
  6. 6. 定額課金・請求書払い 従量課金では予算計画が立てられない クレジットカードでUSドル決済では利用料の予測が難しい Amazon Web Servicesでは... 月額固定+日本円請求書発行
  7. 7. バースト保障 キャンペーンなど急激なアクセス増加へ合わせてインフラ 準備するのは不可能 いつあるかわからないピークのために予め準備できない 追加料金無しでスケールアウト (7インスタンス日まで)
  8. 8. 日本初のAPNプレミア コンサルティングパートナーの 一社として認定されました。
  9. 9. アプリケーション管理サービス AWS CloudFormation テンプレートベースで柔軟な設定 AWS Elastic Beanstalk Webアプリケーション向け 障害の起きたEC2を自動復旧 ELBのURLを入替えて環境の切替が瞬時にできる AWS OpsWorks Chefレシピベース → v.11 (New!) カスタムAMI (New!) RDS 未対応 → 使う方法あり
  10. 10. Confidential AWS CloudFormation 説明
  11. 11. AWS CloudFormation JSON形式で記述したテンプレートを利用する ことで、システムのスタックまるごとデプロ イ・更新・削除できるサービス テンプレートのパート Resources:作成したいリソースの定義 Parameters:画面から指定する引数 Mappings:条件に応じて入替える引数リスト Outputs:結果の出力
  12. 12. {    "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"  }            }        }    } }
  13. 13.    "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"  ]                        }                    ]                ]            }        }    }
  14. 14. Confidential AWS CloudFormation 事例
  15. 15. インフラ設計・構築 インターネット公式サイト 月間1億PV 45億ヒット、 新車発表時3倍のアクセス すべて冗長化 オンプレに環境再生可能な バックアップ 東京リージョン障害時に シンガポールで復旧可能
  16. 16. DR用CloudFormation CloudFormationでシンガポールリージョ ンに環境構築 テンプレートから一発で構築可能 Tokyo Region Singapore Region CloudForma*on, Template, Stack,
  17. 17. ベストプラクティスの集大成 CloudFront Clone Server Multi-Datacenter Cache Distribution DB Replication Bootstrap Stack Deployment HA NAT DR
  18. 18. リリース時のバースト 公開時、想定を超えるアクセスが集中 スケールアウト、そしてスケールアップ を同時に スケールアウト スケールアップ
  19. 19. ポイント 大規模プロジェクトでのスケジュール管理 インフラ構築フェーズの位置、前後のタスク Bプランをいつも準備されている AWSすら信頼しない前提でのリスク管理 オンプレ環境へのデータバックアップ シンガポールリージョンの準備
  20. 20. Confidential AWS CloudFormation Tips
  21. 21. Tips テンプレートを再利用可能なモジュ ール分割(パラメータ、アウトプッ ト)してチェーン実行しよう 同じ役割のサーバーを複数作成する ならオートスケーリングで管理しよう (可用性の観点からも Good!)
  22. 22. テンプレートのチェーン "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"  ]  }       }     }   } }, 親テンプレートの定義
  23. 23. 同一レイヤーは 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
  24. 24. AWSのみでクレジット決済の インフラを構築 →PCI DSS審査合格 AWSのみでクレジット決済の インフラを構築 →PCI DSS 審査合格
  25. 25. AWSのみでクレジット決済の インフラを構築 →PCI DSS審査合格 PCI DSS 環境構築用 CFn テンプレート https://github.com/suz-lab/suz-lab-cloudformation/blob/ master/pattern/suz-lab_0302_admin_firewall.json
  26. 26. PCI DSS要件 要件1: カード会員データを保護するために、ファイアウォールをインストールして構成を維持する 要件2: システムパスワードおよび他のセキュリティパラメータにベンダ提供のデフォルト値を使用しな い 要件3: 保存されるカード会員データを保護する 要件4: オープンな公共ネットワーク経由でカード会員データを伝送する場合、暗号化する 要件5: アンチウィルスソフトウェアまたはプログラムを使用し、定期的に更新する 要件6: 安全性の高いシステムとアプリケーションを開発し、保守する 要件7: カード会員データへのアクセスを、業務上必要な範囲内に制限する 要件8: コンピュータにアクセスできる各ユーザに一意の ID を割り当てる 要件9: カード会員データへの物理アクセスを制限する 要件10: ネットワークリソースおよびカード会員データへのすべてのアクセスを追跡および監視する 要件11: セキュリティシステムおよびプロセスを定期的にテストする 要件12: すべての担当者の情報セキュリティポリシーを整備する
  27. 27. 脆弱性対策 ミドルウェア最新化 Apacheはパッケージでは不可だったため、最新版ソー スをコンパイル • IPA(独立行政法人 情報処理推進機構)の定めるCVSS 4.0以上(レベ ルIII危険+レベルII警告)はすべて対策必須のため
  28. 28. まとめ データとシステムの保全方法は別々に考 える→システムの保全は CloudFormation+AMI で可能 「誰でも」「再現性の高い」インフラ の構築が可能 Bootstrap 処理を煩雑にしないため に、AMI化およびバージョン管理が重要
  29. 29. Confidential Save the date !! 2013.9.28 sat
  30. 30. Confidential 人生が変わるその日
  31. 31. http://jfk2013.jaws-ug.jp/
  32. 32. 1000+ エンジニア http://jfk2013.jaws-ug.jp/
  33. 33. 『ドーム球場』で ITイベント http://jfk2013.jaws-ug.jp/
  34. 34. 50+アンカンファレンス、 Game Day、CDP道場 セッション、ハンズオン、html5、 WordPress、etc... http://jfk2013.jaws-ug.jp/
  35. 35. スピーカー/モデレーター(一部) 大規模分散システムの現在 ゼロからはじめるnode.js AWS であった 本当に怖い話 HTML5 Caravan CDP道場 スタートアップは AWSで加速する 日本のクラウド普及シナリオ とビジネスチャンス カンファレンスアンカンファレンスカンサイ クラウド時代のソフトウェアベンダーのあり方 AWS で大規模 WEB サービスを 実際に運用してみるということ クラウドセキュリティのためのセキュリティ原則 レスポンシブ+フラットデザインで WordPressテーマを作ってみよう
  36. 36. モデレータ募集中 企業サポーター募集中 当日スタッフ募集中 http://jfk2013.jaws-ug.jp/
  37. 37. http://jfk2013.jaws-ug.jp/
  38. 38. Thanks! http://www.cloudpack.jp/ suuport@cloudpack.jp @cloudpack_jp

×