これが aws ネイティブアーキテクチャだ! 2017年・春

24
AWS ! - 2017 - JAWS DAYS 2017 2017-03-11 Takahiro Ikeuchi eurie Inc.

Upload: takahiro-ikeuchi

Post on 19-Mar-2017

812 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: これが AWS ネイティブアーキテクチャだ! 2017年・春

これが AWS ネイティブアーキテクチャだ!- 2017年 春 -

JAWS DAYS 20172017-03-11

Takahiro Ikeuchieurie Inc.

Page 2: これが AWS ネイティブアーキテクチャだ! 2017年・春

アーキテクチャをスクラッチで設計するなら

こんな感じでやるといいんじゃない

という話をします

2

Page 3: これが AWS ネイティブアーキテクチャだ! 2017年・春

自己紹介

Takahiro Ikeuchi @iktakahiro

Company / Community

eurie Inc. Founder & CEO

SQUEEZE Inc. 技術顧問

PyData.Tokyo Organizer

得意 (あるいは下手の横好き

Go lang, Python, React

Cloud Infrastructure, UI Design etc...

3

Page 4: これが AWS ネイティブアーキテクチャだ! 2017年・春

最近 のマイブーム

Virginia Region

4

Page 5: これが AWS ネイティブアーキテクチャだ! 2017年・春

※ 今朝四時

5

Page 6: これが AWS ネイティブアーキテクチャだ! 2017年・春

eurie Inc.B2B 向け SaaS 事業 (https://eurie.io/ja/)

Launched : カスタマーサポート支援クラウド "eurie Desk"

6

Page 7: これが AWS ネイティブアーキテクチャだ! 2017年・春

https://eurie.io/ja/

7

Page 8: これが AWS ネイティブアーキテクチャだ! 2017年・春

採用技術やサービスGo 言語 / RESTFul API

React with TypeScript / SPA

Python

AWS

Aurora, Lambda, Elastic Beanstalk, SNS, SES

Elasticsearch

SendGrid

Code Ship など

8

Page 9: これが AWS ネイティブアーキテクチャだ! 2017年・春

Architecture

9

Page 10: これが AWS ネイティブアーキテクチャだ! 2017年・春

Client-Side の話

10

Page 11: これが AWS ネイティブアーキテクチャだ! 2017年・春

11

Page 12: これが AWS ネイティブアーキテクチャだ! 2017年・春

Client-Side の話Single Page Application かつ

RESTful API のクライアントとして実装すれば、静的ファイルのみで構成される (はず

S3 + CloudFront で Application を配布 => Serverless !!

SSL証明書 も無料でついてくる

サイズが大きくなりがちな JavaScript を CDN 経由で配布するメリットはある

12

Page 13: これが AWS ネイティブアーキテクチャだ! 2017年・春

余談: Cache どうしてるの ?Deployment プロセスの中に Invalidation を組み込む

更新頻度が高いなら TTL 極小でも OK

REST API からフロントエンドアプリのバージョン情報を動的にfetch して古ければユーザーにリロードを促す とかやってます

13

Page 14: これが AWS ネイティブアーキテクチャだ! 2017年・春

Server-Side の話

14

Page 15: これが AWS ネイティブアーキテクチャだ! 2017年・春

Server-Side の話RESTful API を前提に設計するとして

Application/Classic Load Balancer の前に CloudFront を置くのが鉄板

Latency 改善が見込める (Slack 社の資料参照:http://www.slideshare.net/AmazonWebServices/secured-api-acceleration-with-engineers-from-amazon-cloudfront-and-slack

WAF を Attach できちゃう

SSL証明書 も無料でついてくる (2回目)

15

Page 16: これが AWS ネイティブアーキテクチャだ! 2017年・春

Container 使わないの?Go 言語の場合、1バイナリをデプロイすれば動くので依存関係に苦労することが (比較的) ない

ので、Container 管理するメリットがそこまで大きくない

もちろん使ってもいいです

16

Page 17: これが AWS ネイティブアーキテクチャだ! 2017年・春

Virginia Region がいま (さら) アツイ 理由新サービスが最速で投入される

料金が安い (思いのほか安い)

Latency 問題は 実装と CloudFront で緩和できる(※ もちろん Tokyo よりは遅延でます)

障害率 No.1 ??

AWS でいままで起きた大規模障害を振り返る - Qiitahttp://qiita.com/saitotak/items/07931343bcb703b101f8

17

Page 18: これが AWS ネイティブアーキテクチャだ! 2017年・春

RDB の話

18

Page 19: これが AWS ネイティブアーキテクチャだ! 2017年・春

Aurora 使いましょう- おわり -

19

Page 20: これが AWS ネイティブアーキテクチャだ! 2017年・春

RDB の話Aurora はいいぞ

Multi-AZ 構成にしておけばダウンタイム短し

Maintenance Window も (そんなに) 怖くない

PostgreSQL 互換 (preview) も追加されて選択の幅も広がりましたし

MySQL 5.7 Compatible / Multi Master 構成待ってます!!

20

Page 21: これが AWS ネイティブアーキテクチャだ! 2017年・春

非同期処理の話

21

Page 22: これが AWS ネイティブアーキテクチャだ! 2017年・春

非同期処理の話

"非同期処理でよい処理系" の Hub として AWS Lambda を利用

Elasticsearch への登録

Amazon SES, SendGrid への SMTP 処理

Slack など外部システムへの通知

22

Page 23: これが AWS ネイティブアーキテクチャだ! 2017年・春

23

Page 24: これが AWS ネイティブアーキテクチャだ! 2017年・春

アーキテクチャをスクラッチで設計するなら

こんな感じでやるといいんじゃない

という話でした

24