16
1 AWS Application Load Balancer Amazon ECS 2016年8⽉ 篠原英治 AWS Summit New York 2016 : Recap

AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

Embed Size (px)

Citation preview

Page 1: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

1

AWS Application Load BalancerAmazon ECS

2016年8⽉ 篠原英治

AWS Summit New York 2016 : Recap

Page 2: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

2

AWS Summit New York 2016 - KeynoteWerner Vogels が “Application Load Balancer” を発表!!

深夜に盛り上がった某チャット J

思わずTweet!https://www.youtube.com/watch?v=b7yqd7z1RBQ

Page 3: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

3

AWS Application Load Balancer• Load Balancer

– 負荷分散はVM Ecosystemにおいて鍵になるもの– AWSでは Elastic Load Balancingがその役割を担ってきた

Page 4: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

4

AWS Application Load Balancer• Classic Load Balancing

– ELBを使った典型的な負荷分散のアーキテクチャパターン– 基本的に全てのターゲットグループのノードにトラフィックを送信– アプリケーションレベルでFine-grainedな負荷分散をしたいと多くご要望を頂いていた

• 例えば、サインアップ/ログアウト/リスト表⽰といったそれぞれの機能を、全てのターゲットグループのノードに配置しなければならないのは頭が痛い…

• Service や Container という⽂脈では、より Controllable である必要がある

Page 5: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

5

AWS Application Load Balancer• Application Load Balancer

– Happy to announce “新しいロードバランサー” – その名も【Application Load Balancer】– AWS Summit New York 2016の会場からは多くの拍⼿と歓声!

Page 6: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

6

AWS Application Load Balancer• Application Load Balancer

– ハイパフォーマンス (Classic Load Balancingと⽐較しても)– コンテントレベルでターゲットグループを制御可能

• ターゲットグループ全てのサーバーに全ての機能のアプリケーションをデプロイする必要がない• Fine-grained な Content-based routing を実現!

Page 7: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

7

AWS Application Load Balancer• Application Load Balancer

– Content-based routing に加えて、– HTTP/2 (Formerly known as SPDY) のエンドポイントに利⽤可能で、– WebSocketをサポートしたことで接続状態を維持したストリーミング⽤途にも活⽤でき、– どのようにそれぞれのコンポーネントにトラフィックを流したか詳細なロギングを⾏う

ことができる

Page 8: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

8

Microservices Architecture• Amazon.com の 変遷

– 巨⼤なモノリシックなアプリケーションだった• 同じような実装が多く出現するなど、End of Lifeな状態に

– Service Oriented Architectureに移⾏する決断をした• DBへの直接アクセスを無くし、それぞれのコンポーネントはAPIを介してアクセス• Worked really well, but we made a mistake

– Data Drivenにdecompositionしたことで、⼤きなデータセットの周りに⼤量の実装が発⽣

– Item, Customer, and Order という3つの⼤きなデータセット– 例えば ”Customer” はマスターサービスだけでなく、多くのものを扱う。ログイン、

アドレスブック、、全てのお客様の⾏動に関連するもの• Data DrivenではなくFunctional Drivenなdecompositionを実施する必要性

– Function毎にスケーリング/信頼性/パフォーマンスに関する要求が⼤きく異る– ログインは頻繁に⾏われるがアドレスブックは購買が発⽣するときにしかアクセス

されない– 上記のような変遷を経て、現在ではPopularになったMicroservices Architectureへ

Page 9: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

9

Microservices Architecture with Amazon ECS• ”Monolithic→Microservices”な事例紹介

– AirtimeというNYの会社のエンジニアによる、(Werner⽈く)”Magnificent”なブログhttps://techblog.airtime.com/

– Airtimeの @abbyfuller さん

– Amazon ECSを活⽤したMicroservices化の実現

Page 10: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

10

Microservices Architecture with Container• コンテナ技術はMicroservices化を加速させる

– コンテナをImmutableにし、1つのタスクのみに専念させる

– 但し、そのままコンテナ技術を使うには、やらなければならないことが盛り沢⼭

Page 11: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

11

Amazon ECS• Cloud Native Container Service

– Container Managementを簡単にするだけでなく、複数のAvailability Zoneへの展開やAutoScalingもサポート。Production環境で稼働させるのにベストな選択肢

– ECS の container management は container scheduling から分離され、Batch jobsとLong-running appsの2つのスケジューラーがECSにより提供される

Page 12: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

12

Amazon ECS• Cloud Native Container Service

– ⾮常に重要な点として、AWSの他のサービスとの連携が可能であることが挙げられる

– VMの世界で培った経験を、Containerの世界に持ち込むことができる!• 例えばCloudWatch Logsを使ったLoggingは⾮常に容易。Amazon ESで可視化も可能

Page 13: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

13

Amazon ECS• セキュリティは常にナンバーワンのプライオリティ

– ECSであればコンテナでもSecurityに妥協する必要はない– 例えば、S3にはアクセスするが、DynamoDBにアクセスしない、といった制

御をIAMロールをコンテナに付与することで実現

Page 14: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

14

Amazon ECS• スケーリングもセキュリティと同様に重要な要素

– コンテナベースのアプリケーションもCloudWatchのメトリクスを活⽤してスケーリング• ビジネスロジックを活⽤したプライベートなメトリクスも利⽤可能

Page 15: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

15

Amazon ECS• 新しいApplication Load Balancerとのインテグレーション

– Content-based Routingでダイレクトにコンテナにトラフィックをお届け!

Page 16: AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS

16

AWS New York Summit 2016 Keynote• 是⾮ YouTube でもご覧ください J

https://www.youtube.com/watch?v=b7yqd7z1RBQ