20140621 july techfesta (JTF2014) 突発**むけAWS

2,353 views

Published on

AWS(Amazon Web Services)には30以上のサービスがあり、その組み合わせによって成り立っています。うまく使いこなすことで、「単なるサーバ」とは違った開発、運用が実現されます。新サービスや機能拡張により、その選択肢は広がりますが、使いこなしが大切になってきます。今回は、特に予期できる、あるいは予期できないイベントに対応できる開発からサービス運用のための様々なAWSサービスを特に新サービスに力をいれて紹介します。

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

No Downloads
Views
Total views
2,353
On SlideShare
0
From Embeds
0
Number of Embeds
59
Actions
Shares
0
Downloads
0
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide

  • 概要:
    AWSのサービスは30以上あり、その組み合わせによってなりたっています。うまくつかいこなすことで、「単なるサーバ」とは違った開発、運用が実現されます。
    新サービスや機能拡張により、その選択肢は広がりますが、使いこなしが大切になってきます。
    このセッションでは、特に予期できる、あるいは出来ないイベントに対応できる開発からサービス運用のための様々なAWSサービスを特に新サービスに力をいれて紹介します。
  • Need to insert AWS Storage Gateway?
  • 20140621 july techfesta (JTF2014) 突発**むけAWS

    1. 1. July Tech Festa 2014 突発イベント・突発開発をドンドン楽に するAWSの新サービスの紹介 2014年6月22日 荒木 靖宏 (@ar1 ) プリンシパルソリューションアーキテクト Amazon Web Services
    2. 2. 自己紹介 • 名前 – 荒木 靖宏(twitter: ar1) • 肩書 – JAWS-UG→AWSへ – プリンシパルソリューション アーキテクト • 好きなAWSサービス – Amazon Virtual Private Cloud – AWS Direct Connect
    3. 3. AWSの様々なサービス お客様のアプリケーション 認証 AWS IAM モニタリング Amazon CloudWatch Web管理画面 Management Console デプロイと自動化 AWS Elastic Beanstalk AWS CloudFromation IDEプラグイン Eclipse Visual Studio ライブラリ & SDKs Java, PHP, .NET, Python, Ruby Development & Administration AWS グローバルインフラ Geographical Regions, Availability Zones, Points of PresenceAZRegion ネットワーク & ルーティング Amazon VPC / Amazon Elastic Load Balancer / Amazon Route 53 /AWS Direct Connect Infrastructure Service コンピュータ処理 Amazon EC2 Auto Scale ストレージ Amazon S3 Amazon EBS Amazon Glacier AWS StorageGateway データベース Amazon RDS Amazon DynamoDB Amazon SimpleDB コンテンツ配信 Amazon CloudFront メッセージ Amazon SNS Amazon SQS Amazon SES 分散処理 Elastic MapReduce 検索エンジン Amazon Cloud Search キャッシング Amazon Elasticache ワークフロー管理 Amazon SWF Application Service
    4. 4. よく聞く話 • サービスが多くてよく分からない • 組み合わせ方が分からない • 使い方が正しいのか分からない • 書籍や日本語資料が少ない © MSクリップアート
    5. 5. 55 AWS Cloud Design Pattern Floating IP Bootstrap Job Observer Rewrite Proxy http://aws.clouddesignpattern.org
    6. 6. 6 AWSクラウドデザインパターンとは... AWSクラウドを使ったシステムアーキテクチャ設計を 行う際に発生する、典型的な問題とそれに対する解決策 ・設計方法を、分かりやすく分類して、ノウハウとして 利用できるように整理したもの。
    7. 7. うまく組み合わせると・・ • ピーク対応が楽 • セキュアなシステム構築 • 安価に世界展開 • 障害にも強い
    8. 8. 例えば... (Web Storage Archive) • 解決したい課題 サーバで大量に発生するログを一元管理 したい • クラウドでの解決 容量無制限ウェブストレージを利用し、 キャパシティを気にすることなく格納可能 • 実装 EC2上でローテートされたログをAPI等の ツールを利用しS3に転送 • 利点 ディスクスペース管理が不要になり、堅牢 性の高いストレージでログを管理 • 注意点 AutoScale時には、停止前に該当ログの 退避の仕組みを実装する必要がある  構造
    9. 9. Webでノウハウを共有 WIKI http://aws.clouddesignpattern.org/index.php FACEBOOK https://www.facebook.com/awscdp
    10. 10. 書籍でノウハウを共有 http://www.amazon.co.jp/dp/4822211967/ Amazon Web Services クラウドデザインパターン 設計ガイド
    11. 11. CDPカテゴリ • 基本 Snapshot Stamp Scale Up Ondemand Disk • 可用性を向上 Multi-Server Multi-Datacenter Floating IP Deep Health Check • 動的コンテンツを処理 Scale Out Clone Server NFS Sharing NFS Replica State Sharing URL Rewriting Rewrite Proxy Cache Proxy Scheduled Scale Out  静的コンテンツを処理 Web Storage Direct Hosting Private Distribution Cache Distribution Rename Distribution  データをアップロード Write Proxy Storage Index Direct Object Upload  リレーショナルデータベース DB Replication Read Replica In-memory DB Cache Sharding Write  バッチ処理 Queuing Chain Priority Queue Job Observer Scheduled Autoscaling  運用保守 Bootstrap Cloud DI Stack Deployment Server Swapping Monitoring Integration Web Storage Archive Weighted Transition Hybrid Backup  ネットワーク On-Demand NAT Backnet Functional Firewall Operational Firewall Multi Load Balancer WAF Proxy Cloud Hub
    12. 12. 突発**対応基本方針 データベースやサーバのスケールアップ CloundFront導入 ユーザ体験の向上とサーバ運用の省力化 コンテンツの動的・静的サーバの分離 静的なものはS3へ DNSをRoute53へ アーキテクチャの見直し
    13. 13. 13 運用がカバー
    14. 14. 突発イベント • いつやってくるかわからないイベントには – 逃げ方を 運用がカバー
    15. 15. • CDN(Contents Delivery Network)の技術を利用し た高速なデータ配信サービス – エッジにコンテンツをキャッシングし、アクセスユーザを最 も近いエッジに誘導 • 利用形態 – Webコンテンツの広範囲配信 – 動画コンテンツの広範囲配信 CloudFrontとは
    16. 16. サービス側のメリット サーバ台数、能力の削減 可用性向上 ユーザ体験の向上 ユーザ側のメリット ダウンロード総時間短縮、初期応答時間短縮 ダウンロード成功率の向上 CloudFront導入のメリット
    17. 17. Best Practices サイトまるごとCloudFront化 • サーバ台数削減、コスト削減 • エンドユーザ体験向上 • モデルのシンプル化 +
    18. 18. Best Practices 静的コンテンツの外出し • サーバ台数削減、コスト削減 • エンドユーザ体験向上 • 信頼性と安定性の向上 +
    19. 19. Elastic Load Balancing Amazon CloudFront www.mysite.com 19 Dynamic Content Amazon EC2 Static Content Amazon S3 Your Users ユーザはまず CloudFront へ 最低レイテンシへの誘導 TCP最適化 Persistent Connections CloudFront から Origin 動的/静的のコンテンツわけ オリジンへのPersistent connections 経路のモニタリング 配信最適化
    20. 20. London Paris NY RTMP Served from S3 /images/* 1 S3 オリジン Download distributions
    21. 21. London Paris NY RTMP Served from S3 /images/* 1 Served from EC2 *.php 2 S3オリジン +Dynamic EC2 オリジン (or オンプレ)
    22. 22. Best Practices DNSをRoute53でホスティング • DNS解決も高速化 • SLA100%の信頼性とスケーラビリティ • 速く、簡単に、安く • レイテンシベースのルーティング、ヘルスチェック Region 1 Region 2
    23. 23. London Paris NY RTMP Served from S3 /images/* 1 Served from EC2 *.php 2 S3オリジン +同一ドメイン EC2 オリジン (or オンプレ) Single CNAME www.mysite.com 3
    24. 24. London Paris NY Static and Dynamic Content Served from EC2 *.phpSingle CNAME www.mysite.com Served from S3 /images/*
    25. 25. http://aws.amazon.com/jp/architect ure/ AWS アーキテクチャセンター
    26. 26. 26 運用がカバー の 限界
    27. 27. 突発開発へ歩みをすすめよう • いつやってくるかわからないイベントには – 逃げ方を • いつやってくるかわからない開発には – 攻め方を
    28. 28. Job Observerパターン • キュー内のジョブを効 率よく処理するパター ン • 動的にリソースを調達
    29. 29. Webへの適用例 AWS Cloud Amazon Simple Queue Service (SQS)Instances Auto Scaling Auto Scaling ユーザ要求のうち非同期でいいものはSQSを バッファにつかう
    30. 30. AWS ElasticBeanstalk: 構築・デプロイの自動化サービス Instance Amazon RDSElastic Load Balancer Instance Auto scaling GroupCloudWatch deploy!WAR ZIP Java Python PHP .NET Ruby nodeJS Docker
    31. 31. ElasticBeanstalkの論理構成 Application Environment Version RespositoryURL Environment Configuration Configuration Template Environment URL Environment Configuration WAR/ZIP WAR/ZIP WAR/ZIP WAR/ZIP Environment URL Environment Configuration
    32. 32. ElasticBeanstalkのDockerサポート • ElasticBeanstalkで任意のDockerコンテナを実行可能に – Dockerコンテナとして構築できれば任意のDistribution・任意の 言語で構築した実行環境をElasticBeanstalkにデプロイ出来る • さらに、下記のような運用が可能 – ローカルのコンテナ上でコードを開発&テスト – 同じコンテナをElasticBeanstalk上の本番環境にデプロイ meets
    33. 33. 各環境の中には • 自動で構築されたDocker環境 – Load-balanced / Single Instance – 各インスタンスに1つの管理された コンテナ Application Environment URL Environment Configuration AWS Management Console Admin SSHUsers Developer ZIP Instance Amazon RDSElastic Load Balancer Instance Auto Scaling GroupCloudWatch AMI Dockerfile
    34. 34. Environment 各インスタンスの中には EC2 HM AutoScaling Nginx (tcp:80) Docker (tcp: xxxx) コンテナの上げ下げ コンテナとの 接続ポートの更新 コマンド 各インスタンス ・マネージされたコンテナ が1つ ・Host Manager (HM)が コマンドを実行
    35. 35. コンテナの設定記述の仕方 • 次の2種類の記述方式を利用可能 – Dockerfile • 一般的なコンテナの構築に使われるDockerfile • AWS特有ではないため、どこでも作成・編集・構築が可能 • コンテナの構築方法を指示するファイルなのでコンテナ起動オプションを指 定したい場合は不十分 – Dockerrun.aws.json • ElasticBeanstalk独自の形式 • 使用するコンテナイメージ、コンテナから参照するボリュームなどを指定 • コンテナの構築方法自体は指定できない(要Dockerfileと併用)
    36. 36. Dockerfileの例 • いわゆる普通のDockerfile – EXPOSEで指定したポートがnginxとの接続に使われる 注:nginx経由で外部に開けるポートは1つだけ • その他注意点 – FROMとEXPOSEは必須 – CMDとENTRYPOINTのどちらかは必須
    37. 37. Dockerrun.aws.jsonの例 プライベートレポジトリを使用する際に必要 S3バケット上に置いた認証情報ファイルを指定 使用すべきイメージ コンテナがEXPOSEするポートを指定 (ElasticBeanstalkが使用するのはContainerPortのみ) コンテナにマウントすべき EC2インスタンスのディレクトリを指定 コンテナ内のログディレクトリを指定
    38. 38. デプロイの仕方 • デプロイ時のファイル形式も2種類 – 単一ファイル • Dockerfile / Dockerrun.aws.jsonのみのデプロイの場合 • Pros: アーカイブを作る必要がなく簡便 • Cons: ElasticBeanstalkの環境カスタマイズやリソースファイルのデプロイ等は出 来ない – ZIPアーカイブ / gitでデプロイ • Dockerfile / Dockerrun.aws.jsonあるいは両方を含むアーカイブ • Pros: Dockerfileでイメージを構築して起動オプションを指定して起動したり、環境 カスタマイズを行ったりすることが可能 • Cons: アーカイブを作らないといけない 柔軟性とコンテナ記述ファイルのバージョン管理も考慮すると gitで管理してgit aws.pushでデプロイがおすすめ
    39. 39. デプロイ時の動作 (1/4) EC2 HM AutoScaling Nginx (tcp:80) Docker (current, ver 1) 1. Deploy指示 Version Respository Version 1 Version 2
    40. 40. デプロイ時の動作 (2/4) EC2 HM AutoScaling Nginx (tcp:80) Docker (current, ver 1) 1. Deploy指示 Docker (staging, ver 2) 3. Staging コンテナ作成 Version Respository Version 1 Version 2
    41. 41. デプロイ時の動作 (3/4) EC2 HM AutoScaling Nginx (tcp:80) Docker (old, ver 1) 1. Deploy指示 Docker (current, ver 2) 3. Staging コンテナ作成 4. Nginx設定変更 Version Respository Version 1 Version 2
    42. 42. デプロイ時の動作 (4/4) EC2 HM AutoScaling Nginx (tcp:80) Docker (current, ver 2) Version Respository Version 1 Version 2
    43. 43. S3をプライベートレポジトリとして利用 Developer 1. docker push4. docker pull 2. deploy registry registry registry registry Docker registry container with AWS credentials Region app app app registry app 3. docker run registry 5. docker stop registry 詳細: http://aws.typepad.com/sajp/2014/06/eb-docker-private-repo.html
    44. 44. CDPカテゴリ -基本パターン Snapshot Stamp Scale Up Ondemand Disk -可用性を高める Multi-Server Multi-Datacenter Floating IP Deep Health Check -動的コンテンツを処理 Scale Out Clone Server NFS Sharding NFS Replica State Sharing URL Rewriting Rewrite Proxy Cache Proxy -静的コンテンツを処理 Web Storage Direct Hosting Private Distribution Cache Distribution Rename Distribution -クラウドへのアップロード Write Proxy Storage Index Direct Object Upload -リレーショナル・データベース DB Replication Read Replica Inmemory DB Cache Sharding Write -バッチ処理 Queuing Chain Priority Queue Job Observer Scheduled Autoscaling -運用保守 Bootstrap Cloud DI Stack Deployment Server Swapping Monitoring Integration Web Storage Archive -ネットワーキング OnDemand NAT Backnet Functional Firewall Operational Firewall Multi Load Balancer WAF Proxy CloudHub
    45. 45. まとめ システム規模に合わせた可用性を持つシステムを 構築が可能に 低コストで耐障害性の高いシステムを簡単に構築 することが可能に システムが拡大しても、運用者の負担を削減する 仕組みづくりが可能に システム「試行」速度をあげることが可能に
    46. 46. まとめ (改善・革新) 今までできていたことを、 より早く、簡単に、安く実現できる 今までできなかったことが 実現できる 改善 革新
    47. 47. • CDPでAWSをもっと楽しく
    48. 48. 無料でAWSを30分で試せるようになりました 新しいビデオとLabでAWSについて無料で勉強! • http://bit.ly/aws30mTry • 新しいAWSの導入ビデオ "Introduction to AWS” を公開 • Introduction to Amazon Simple Storage Service (S3) • Introduction to Amazon Elastic Compute Cloud (EC2) • Introduction to AWS Identity and Access Management (IAM) • Introduction to Amazon Relational Database Service (RDS) • Introduction to Amazon Elastic Block Store (EBS) • Introduction to Elastic Load Balancing • ビデオに対応したlabを用意。 • 30分程度で完了するボリューム • 現在は英語版のみ。日本語対応中
    49. 49. ご清聴ありがとうございました。 https://www.facebook.com/awscdp

    ×