Your SlideShare is downloading. ×

プログラマに贈るクラウドとの上手な付き合い方
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

プログラマに贈るクラウドとの上手な付き合い方

127
views

Published on

デブサミ2015 19-A-5の講演資料です

デブサミ2015 19-A-5の講演資料です

Published in: Technology

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

No Downloads
Views
Total Views
127
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. #devsumiA 19-A-5 プログラマに贈る クラウドとの上⼿手な付き合い⽅方 西谷圭介 アマゾンデータサービスジャパン株式会社
  • 2. ⾃自⼰己紹介 •  名前 ⻄西⾕谷  圭介 •  所属 アマゾンデータサービスジャパン   ソリューションアーキテクト •  ソーシャル –  @Keisuke69 –  https://www.facebook.com/keisuke69 •  主にウェブサービス、メディア、スタートアップのお客 様担当の技術職です •  モバイルなどアプリケーション寄りなサービスを担当し ています
  • 3. 初期投資が不不要 実際の使⽤用分 のみ⽀支払い セルフサービスな インフラ スケールアップ、 ダウンが容易易 ビジネススピード の改善   低額な利利⽤用価格 Deploy
  • 4. 今までできていたことを、 より早く、簡単に、安く実現できる 今までできなかったことを 実現できる 改善 ⾰革新
  • 5. クラウドは インフラエンジニア のもの?
  • 6. プログラマによるクラウドの活⽤用
  • 7. 何が嬉しいの?
  • 8. 解放
  • 9. 今までできなかったこと が可能
  • 10. プログラマのコンテキストでコントロール
  • 11. つまり全てを意のままに
  • 12. Android iOS Java NodeJS .NET PHP Python Ruby Javascript in   Browser
  • 13. クラウドならではの メリットを活かす
  • 14. 19 オンプレミス   新しいインフラの構築は 複雑かつ遅くなりがち クラウド   ワンクリックで新しい インフラを⽤用意 新しいデプロイ環境を構築 新しいテスト環境を構築 新しい環境を海外に構築 1,000  サーバ追加 1,000  サーバ削除 必要 調査 評価 計画 設計 エンジニア 調達 契約 コミッション デプロイ
  • 15. •  指定時刻にCIサーバを増やし、必要なくなったら⽌止 める 21 負荷テスト 性能テスト ユニットテスト 機能テスト 受け⼊入れテスト 結合テスト など…
  • 16. ブルーグリーン
  • 17. Webサーバー群 (Amazon  EC2) データベースサーバ群 (Amazon  RDS) ロードバランサー v1.1 v1.1 v1.1 v1.1 v1.2 v1.2 v1.2 v1.2 モニタリング (CloudWatch)
  • 18. Webサーバー群 (Amazon  EC2) データベースサーバ群 (Amazon  RDS) ロードバランサー v1.1 v1.1 v1.1 v1.1 v1.2 v1.2 v1.2 v1.2 モニタリング (CloudWatch) デプロイの後⼀一定期間たって戻すことがないと 判断できた時点で旧バージョン削除 クラウドの特性を活かしたデプロイ
  • 19. Amazon Route 53 EC2 Instances ELB EC2 Instances ELB 90% 10% DynamoDB MySQL RDS Instance ElastiCache Cache Node ⼀一部のユーザだけに公開 全てAPI の組み合わせで可能
  • 20. v1.1 v1.1 v1.1 v1.1 v1.1 v1.1 v1.1 v1.1 v1.2 v1.2 v1.2.1 v1.2.1 v1.2.2 v1.2.2 DNS (Amazon route 53) Webサーバー群 (Amazon  EC2) データベースサーバ群 (Amazon  RDS) ロードバランサー 90% 5% 3% 2% ブルーグリーンデプロイ
  • 21. EC2 RDS ELB Availability   Zone Web Availability   Zone RDS EC2 WebWeb
  • 22. 1 1 ELB(Elastic  Load  Balancing) ・GUIで操作出来るL4のロードバランサ ・プラスアルファで便便利利な機能 1c Amazon  EC2 ・⼀一般的なLinux/Windowsサーバ ・プラスアルファで便便利利な機能 Amazon  RDS ・⼀一般的なMySQLまたはPostgreSQL ・プラスアルファで便便利利な機能
  • 23. なぜコレがオススメか?
  • 24. オススメ構成にしておけば ELB + EC2 2台構成 編
  • 25. EC2 RDS ELB Availability   Zone Web Availability   Zone RDS EC2 WebWeb
  • 26. EC2 RDS ELB Availability   Zone Web Availability   Zone RDS EC2 WebWeb もう1台でサービスが継続できる!
  • 27. EC2 RDS ELB Availability   Zone Web Availability   Zone RDS EC2 WebWeb EC2 RDS ELB Availability   Zone Web Availability   Zone RDS Web EC2 Web EC2 Web EC2 Web
  • 28. EC2 RDS ELB Availability   Zone Web Availability   Zone RDS EC2 WebWeb EC2 RDS ELB Availability   Zone Web Availability   Zone RDS Web EC2 Web EC2 Web EC2 Web WebサーバーのEC2を増せば⼤大丈夫!
  • 29. Web AMI Web Web AMI作成 AMIからEC2 起動
  • 30. Auto  Scaling   Group EC2 Web EC2 Web ELB Auto  Scaling CloudWatch 負荷状況を監視 Web Web EC2 EC2 EC2を追加 ELBの振り分けに追加
  • 31. EC2 RDS ELB Availability   Zone Web Availability   Zone RDS EC2 WebWeb EC2 RDS ELB Availability   Zone Web Availability   Zone RDS Web EC2 Web EC2 Web EC2 Web 複数台前提なアーキテクチャであれば、 10台にするのも、50台にするのも、 やり⽅方は同じ
  • 32. オススメ構成にしておけば RDS 編
  • 33. EC2 RDS ELB Availability  Zone Web Availability  Zone RDS EC2 WebWeb EC2 RDS ELB Availability   Zone Web Availability   Zone RDS EC2 WebWeb
  • 34. EC2 RDS ELB Availability  Zone Web Availability  Zone RDS EC2 WebWeb EC2 RDS ELB Availability   Zone Web Availability   Zone RDS EC2 WebWeb 簡単にスペックを良良いものにしたり、 ストレージ容量量を⼤大きくしたりできる
  • 35. SnapShot (⾃自動/⼿手 動) Availability   Zone Availability   Zone RDS RDS 同期レプリケーション ⾃自動フェイル オーバー ログ (5分間隔)
  • 36. SnapShot (⾃自動/⼿手 動) Availability   Zone Availability   Zone RDS RDS 同期レプリケーション ⾃自動フェイル オーバー ログ (5分間隔) データセンター間での冗⻑⾧長構成 スナップショットとログからデータ復復元
  • 37. Availability   Zone Availability   Zone RDS RDS ⾮非同期レプリケー ション
  • 38. Availability   Zone Availability   Zone RDS RDS ⾮非同期レプリケー ション たくさんクエリ要求がきても⼤大丈夫!
  • 39. EC2 RDS ELB Availability   Zone Web Availability   Zone RDS EC2 WebWeb
  • 40. イイのあります
  • 41. AWS Elastic Beanstalk 定番構成の構築/デプロイを 自動化するサービス
  • 42. AWS  Elastic  Beanstalk •  ELB  +  Web+(DB)の定番構成 で利利⽤用 •  Auto  Scaling利利⽤用可能 •  ログやアプリはS3に
  • 43. AWS  Elastic  Beanstalk •  アプリケーションを簡単に デプロイ •  複数環境を切切り替え可能 (ブルーグリーンデプロイ)
  • 44. 対応している構成と⾔言語環境 Elastic   Load Balancing Web  Tier deploy! WAR Java Python PHP .NET Ruby nodeJS Docker Amazon   RDS Auto  scaling  Group … Auto  scaling  GroupQueue Async   Tasks Worker  Tier …
  • 45. •  ステート(状態)を 持たない スケールアウトが容易易
  • 46. 疎結合
  • 47. ⾃自動 化 ⼩小さなリ リースを⾼高頻度度で実⾏行行
  • 48. 11.6秒 1,079 10,000 30,000 AMAZON.COMにおけるデプロイ
  • 49. 11.6秒 1,079 10,000 30,000 AMAZON.COMにおけるデプロイ 1時間あたりの最 ⾼高デプロイ回数 1回のデプロイで 同時に変更更をうけ る平均ホスト数 1回のデプロイで 同時に変更更をうけ る最⾼高ホスト数 平⽇日の デプロイ間隔
  • 50. 2-‐‑‒Tier  Architecture
  • 51. 直接呼び出し
  • 52. *  EC2で同規模のサーバを⽴立立てる場合に⽐比べ
  • 53. 3.  認証・認可 ・  FBアプリと連携 Cognito DynamoDB S3 1.  HTTP(S)アクセス 2.  HTMLとJSをレスポンス JavaScript SDK 4.  データの読み書き
  • 54. App  with   AWS  Mobile   SDK JavaScript SDK S3 1.  HTTP(S)アクセス 2.  HTMLとJSをレスポンス Cognito  Identity 3.  認証・認可 ・  FBやGoogleのIDでログイン Cognito  Sync 4.  データの同期 ・  MobileSDK、ブラウザ間でデータ同期 5.  データのPush/Pull
  • 55. 1.  認証・認可 ・  FBアプリと連携 Cognito DynamoDBApp  with   AWS  Mobile   SDK 2.  ⼝口コミの投稿 ・  投稿内容とレーティング 4.  過去の全データを元に平均値の計算と     結果のDynamoDBへの登録等 3.  Lambda  functionの起動 Lambda
  • 56. Followers 4.  メタデータをDynamoDBに登録 -‐‑‒  タイトル、コメント等 1.  認証・認可 ・  FBアプリと連携 6.  Push通知 -‐‑‒  フレンドやフォロワーに通知 Cognito Mobile  Analytics DynamoDB S3 SNS7.  画像をポストしたことをAnalyticsに登録 3.  画像のリサイズ 2.  S3への画像アップロード 5.  結果をSNSへ通知 App  with   AWS  Mobile   SDK
  • 57. Amazon Cognito (AWS IAM / STS) Java Python (boto) PHP .NET Ruby iOS Android JavaScript Any SDK Authentication JavaScript Any Service
  • 58. Amazon  SNS Cross-‐‑‒ platform   Mobile  Push   Internet Apple  APNS Google  GCM Amazon  ADM Windows  WNS   and  MPNS Baidu  CP 業界初! Android  Phones  and  Tablets Apple  iPhones  and  iPads Kindle  Fire  Devices Android  Phones  and  Tablets  in  China iOS Windows  Desktop  and  Windows  Phone  Devices
  • 59. インフラの管理理作業が不不要
  • 60. http://codezine.jp/article/detail/8446
  • 61. Elastic  Beanstalk OpsWorks CloudFormation フレキシビリティ 導⼊入の容易易さ
  • 62. モニター プロビ ジョン デプロイテストビルド コーディ ング Cloud Watch Cloud Formati on
  • 63. モニター プロビ ジョン デプロイテストビルド コーディ ング Cloud Watch Cloud Formati on Code Deploy Code Commit Code Pipeline
  • 64. •  AWS  Black  Belt  Tech  Webinar  2015 –  毎週⽔水曜⽇日18時から –  申し込みサイト http://aws.amazon.com/jp/event_̲schedule/ •  AWS  クラウドサービス活⽤用資料料集 –  http://aws.amazon.com/jp/aws-‐‑‒jp-‐‑‒introduction/ •  AWS  SDK他 –  http://aws.amazon.com/jp/tools/
  • 65. @awscloud_jp 検索 最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを 日々更新しています! もしくは http://on.fb.me/1vR8yWm