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