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

Preview:

Citation preview

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

JAWS DAYS 20172017-03-11

Takahiro Ikeuchieurie Inc.

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

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

という話をします

2

自己紹介

Takahiro Ikeuchi @iktakahiro

Company / Community

eurie Inc. Founder & CEO

SQUEEZE Inc. 技術顧問

PyData.Tokyo Organizer

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

Go lang, Python, React

Cloud Infrastructure, UI Design etc...

3

最近 のマイブーム

Virginia Region

4

※ 今朝四時

5

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

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

6

https://eurie.io/ja/

7

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

React with TypeScript / SPA

Python

AWS

Aurora, Lambda, Elastic Beanstalk, SNS, SES

Elasticsearch

SendGrid

Code Ship など

8

Architecture

9

Client-Side の話

10

11

Client-Side の話Single Page Application かつ

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

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

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

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

12

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

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

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

13

Server-Side の話

14

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

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

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

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

16

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

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

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

障害率 No.1 ??

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

17

RDB の話

18

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

19

RDB の話Aurora はいいぞ

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

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

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

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

20

非同期処理の話

21

非同期処理の話

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

Elasticsearch への登録

Amazon SES, SendGrid への SMTP 処理

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

22

23

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

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

という話でした

24

Recommended