JAWS-UG初心者支部第4回 Simple Front 53

3,845 views

Published on

2016.02.16に開催されたJAWS-UG初心者支部 第4回勉強会での発表資料です。著書で担当したS3/CloudFront/Route 53についての発表です。

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

No Downloads
Views
Total views
3,845
On SlideShare
0
From Embeds
0
Number of Embeds
2,758
Actions
Shares
0
Downloads
5
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

JAWS-UG初心者支部第4回 Simple Front 53

  1. 1. JAWS-UG 初心者支部 第4回勉強会 Simple Front 53 @matetsu
  2. 2. 私は誰? • 間瀬 哲也 / matetsu • 名刺管理アプリEightのインフラを担当 • https://8card.net/p/matetsu • JAWS-UG京王線 • Amazon Web Services実践入門 共著
  3. 3. 本日の内容 • 本の紹介 • 本題 • S3 • CloudFront • Route 53
  4. 4. 本の紹介
  5. 5. Amazon Web Services 実践入門 • サーバーワークス(?)の
 リーダーを始め6人で共著 • Route 53とS3/CloudFrontの
 章を担当 • 結構売れてるはず • みなさんも買ってください!
 買ってくださった方、ありがとうございます!
  6. 6. Amazon Web Services 実践入門 裏話 • githubをほぼ初利用だったのでとまどった • Management Consoleの日本語対応は焦った • おかげで売りの一つにはなった • 本当は半年くらい前に出ていたかもw • この時も一時的にS3コンソールの日本語化が 出ちゃって焦りまくり
  7. 7. 本題
  8. 8. S3
  9. 9. S3 • Amazon Simple Storage Service • みんなに愛されるオブジェクトストレージ • 3つ以上のDCに保存して99.999999999%の耐 久性 • 可用性は設計上99.99%、SLAでは99.9% • 安い
  10. 10. S3の利用例 • ログの保存 • ローテート後 • fluentd • 静的ファイルの配信 • 静的ウェブサイトの配信 • ユーザコンテンツの保存 EC2 EC2 S3 EC2 S3 S3 S3
  11. 11. ログの保存 • ログローテート時にSDKやCLIを利用 • fluentdのS3 pluginで定期的に • ライフサイクルの利用で財布にも優しく • より安いストレージへ移動/アーカイブ • 標準-低頻度アクセス / Amazon Glacier • 削除
  12. 12. 静的ウェブサイトホスティング • 安く手間なくウェブサイト/静的ファイルの運用 • デフォルトでSSL/TLS利用可能 • S3のサブドメインドメイン • 独自ドメインも利用可能 • バケット名をFQDNに • 独自ドメインのSSL/TLSはS3単独では不可
  13. 13. S3 応用例 • 静的ウェブサイトホスティング+ JavaScript + Cognito • AWSの他サービスと連携 • 流行りのサーバーレス • 実際は裏でたくさんのサーバが(ry • オブジェクト登録時のEvent発火 • Lambdaを使って画像のリサイズ
  14. 14. Event Event サーバレス的な S3(静的Webサイト) + SDK for JavaScript in the browser Cognito STS (時限式認証情報) SES DynamoDB S3 POSTデータを メールで送信 POSTデータを
 NoSQLに格納 POSTデータを
 S3に格納
  15. 15. 画像のリサイズ S3 画像が 登録される Event発火 Lambda S/M/Lに リサイズ S3保存 S3
  16. 16. CloudFront
  17. 17. CloudFront • Amazon CloudFront • 便利なCDN • 動的なコンテンツでも使うと良い • 独自のDDoS監視システム • レポート機能が便利 • アクセスログはKinesisで集められている
  18. 18. CloudFrontの利用例 • CDN • ウェブサイトのSSL/TLS対応 • 地域に応じたレスポンス/制限 • Geo Targeting • Geo Restriction • AWS WAFとの統合でセキュリティ向上
  19. 19. CDN (Contents Delivery Network) • キャッシュによるオリジンの負荷低減 • 世界中のエッジでレイテンシ低下 • コネクションの最適化 • 動的コンテンツでもKeepAliveで3way handshakeのオーバーヘッドを低減
  20. 20. CDN CloudFront エッジロケーション EC2 ELB S3 オンプレミスなど
  21. 21. ウェブサイトのSSL/TLS対応 • CloudFront+S3で最強静的ウェブサイト • CMSでHTML生成しているようなサイトなどで有用 • 残念ながらHTTP/2には未対応 • Certificate Managerで無料+更新不要の証明書 • 東京リージョン未対応(ELBで使えない) • admin@などのメール受信はSESのInbound Emailで
  22. 22. HTML等出力
 + Sync カスタム証明書 設定 証明書発行 オリジン(S3)へのアクセスは CloudFrontに限定 HTTPS ACM (AWS Certificate Manager) 低コストウェブサイト運用 ドメイン所有確認 SES inbound 更新時以外は 停止 S3 CloudFront SSL/TLS証明書 EC2
  23. 23. Geo Targeting/Restriction • HTTPヘッダにアクセスされた国を保持 • CloudFront-Viewer-Country • 同一URLで国別のコンテンツ • 国別URLへのリダイレクトも(実装/設定しだ い) • ホワイトリスト/ブラックリスト
  24. 24. Geo Targeting From A国 From B国 From C国 Cloudfront-Viewer-Country: AA Cloudfront-Viewer-Country: BB Cloudfront-Viewer-Country: CC Contents A Contents B Contents C From B国 From C国 Type: blacklist Country: BB, CC From A国 Geo Restriction return 403 EC2 EC2 ELB ELB CloudFront CloudFront エッジロケーション エッジロケーション
  25. 25. AWS WAFとの統合 • セキュリティ対策 • IPアドレスマッチ • SQLインジェクション • 文字列マッチ • リクエストサイズ制限
  26. 26. WAF + CloudFront IP Address not match: 192.0.2.0/24 192.0.2.0/24 198.51.100.0/24 203.0.113.0/24 CloudFront AWS WAF ELB EC2 ルールに応じて アクセスを制限したり、 SQL Injectionの検知で ブロックしたり
  27. 27. Route 53
  28. 28. Route 53 • Amazon Route 53 • 安くて手間いらずのDNSサービス • SLAで可用性100% • サーバがオンプレでも使っておくべき • VPC内PrivateDNSはホント助かる
  29. 29. Route 53利用時の注意点 • DNSキャッシュサーバではないです • AWS CLIでの管理は苦行 • 簡単な操作ならマネージメントコンソール • 自動化などはAWS SDKのほうがよい • JSON大好きっ子はどうぞ
  30. 30. { "Comment": "Create records set.", "Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name": "jawsug-beginner.example.com.", "Type": "A", "TTL": 3600, "ResourceRecords": [ { "Value": "192.0.2.1" } ] } } ] } Aレコード登録したいだけなんです!!
  31. 31. Route 53の利用例 • DNSフェイルオーバー • 加重ラウンドロビン • レイテンシベースルーティング • Geo DNS • ドメイン登録
  32. 32. Primary Health Checkで NGになったら Secondary Failoverして Secondaryに アクセスが行くようになる DNS Failover EC2 ELB RDS S3 Route 53 障害発生!!
  33. 33. Weighted Round Robin 重み:90 重み:10 AZ-a AZ-b RDS EC2 ELB ELB EC2 重みづけに応じて振り分けの 割合を変えられる。 サイトの移行などでも使える。
  34. 34. Region A Region B Latency Based Routing 50ms 100ms ELBELB EC2 EC2 RDSRDS レイテンシが一番小さくなる リージョンへ振り分けられる
  35. 35. eu-west-1 ap-northeast-1 Geo DNS(Geo Routing) From Europe From Japan ELB ELB EC2EC2 RDS RDS レイテンシではなく、地理的な場所で リージョンなどの振り分けを行う
  36. 36. まとめ • 3サービスとも手がかからない • 使い方いろいろ • 安い • 料金だけでなく運用コスト全体で見て • わからないことがあったら
 『Amazon Web Services 実践入門』を読んでみよう
  37. 37. ご清聴ありがとうございました
  38. 38.    のインフラ やりませんか! ステッカーほしい方、差し上げます

×