現場的!オンプレとAWSの違い

3,425 views

Published on

2013.7.31 JAWS-UG熊本で発表した資料です

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

No Downloads
Views
Total views
3,425
On SlideShare
0
From Embeds
0
Number of Embeds
595
Actions
Shares
0
Downloads
0
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

現場的!オンプレとAWSの違い

  1. 1. 2013.7.31 JAWS-UG 熊本 吉田真吾 @yoshidashingo 現場的! AWSとオンプレの違い の説明
  2. 2. 自己紹介だモン! 名前:吉田真吾 アイレット株式会社 cloudpack エバンジェリスト JAWS-UG 横浜 代表 好きなAWSサービス:Amazon S3 好きなAWSクラウドデザインパターン:Direct Hostingパターン
  3. 3. アジェンダ 設計編 構築・運用編 CloudFormation 事例 保守編 cloudpack のご紹介
  4. 4. Confidential 設計編
  5. 5. 物理サーバーでクラスタリング している(HAあるいはN+1) H/Wレベルでの「可用性」向上 フォールトイントレランス→フォール トトレラント(Design for failure) Web/APサーバ→Multi-Serverパター ン、Multi-Datacenterパターン DBサーバ→DB Replicationパターン
  6. 6. DB Replication Multi-Server Multi-Datacenter
  7. 7. 共有ディスク 極力使わない GlusterFS、NFSサーバー 参照コンテンツだけなら S3 アプライアンスもある
  8. 8. Confidential 構築・運用編
  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. Confidential AWS CloudFormation Tips
  18. 18. Tips テンプレートを再利用可能なモジュ ール分割(パラメータ、アウトプッ ト)してチェーン実行しよう 同じ役割のサーバーを複数作成する ならオートスケーリングで管理しよう (可用性の観点からも Good!)
  19. 19. テンプレートのチェーン "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"  ]  }       }     }   } }, 親テンプレートの定義
  20. 20. 同一レイヤーは 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
  21. 21. Confidential 保守編
  22. 22. EC2の障害復旧フロー
  23. 23. EC2の障害復旧フロー 障害は起きるもの 復旧ファースト
  24. 24. Confidential エンジニア 世界共通の夢?
  25. 25. 夜はぐっすり眠りたいモン! そんなときは... 自主規制
  26. 26. AWS運用をアウトソースしたい企業向けの 月額費用固定型フルマネージドホスティング 24時間365日サーバー運用・保守 •電話/メールによるサポート 初期費用なし(基本移行作業含む) 月額5万円からのスタート 日本円で請求書発行
  27. 27. フルマネージド サービス/リソース監視 ディスク使用量、メモリ使用量、プロセス数、 Webサーバー・DBサーバー死活... バックアップ/リストア EBSスナップショットを利用した二世代(過去 二日分)バックアップ アクセス制御(ファイアーウォール) 適切なセキュリティグループを設定、OS・ミド ルウェアレベルでさらに細かな設定も対応可能
  28. 28. 定額課金・請求書払い 従量課金では予算計画が立てられない クレジットカードでUSドル決済では利用料の予測が難しい Amazon Web Servicesでは... 月額固定+日本円請求書発行
  29. 29. バースト保障 キャンペーンなど急激なアクセス増加へ合わせてインフラ 準備するのは不可能 いつあるかわからないピークのために予め準備できない 追加料金無しでスケールアウト (7インスタンス日まで)
  30. 30. 日本初のAPNプレミア コンサルティングパートナーの 一社として認定されました。
  31. 31. まとめ 設計:Design for failure 運用:サービスを利用 保守:サービス継続優先 それでも障害は起きるので、頼れる パートナーを
  32. 32. Thanks! http://www.cloudpack.jp/ suuport@cloudpack.jp @cloudpack_jp
  33. 33. Confidential Save the date !! 2013.9.28 sat
  34. 34. Confidential 人生が変わるその日
  35. 35. http://jfk2013.jaws-ug.jp/
  36. 36. 1000+ エンジニア http://jfk2013.jaws-ug.jp/
  37. 37. 『ドーム球場』で ITイベント http://jfk2013.jaws-ug.jp/
  38. 38. 50+アンカンファレンス、 Game Day、CDP道場 セッション、ハンズオン、html5、 WordPress、etc... http://jfk2013.jaws-ug.jp/
  39. 39. スピーカー/モデレーター(一部) 大規模分散システムの現在 ゼロからはじめるnode.js AWS であった 本当に怖い話 HTML5 Caravan CDP道場 スタートアップは AWSで加速する 日本のクラウド普及シナリオ とビジネスチャンス カンファレンスアンカンファレンスカンサイ クラウド時代のソフトウェアベンダーのあり方 AWS で大規模 WEB サービスを 実際に運用してみるということ クラウドセキュリティのためのセキュリティ原則 レスポンシブ+フラットデザインで WordPressテーマを作ってみよう
  40. 40. モデレータ募集中 企業サポーター募集中 当日スタッフ募集中 http://jfk2013.jaws-ug.jp/
  41. 41. http://jfk2013.jaws-ug.jp/

×