SlideShare a Scribd company logo
1 of 27
Download to read offline
サーバーレスを可能にする
AWSサービスの概要
2
当ドキュメントのスコープ
✓ AWSのサービスから、Webアプリケーションの構築に使えるサービスの紹介
✓ サービスをシステムアーキテクチャーの要素別に区分して機能の簡単な紹介と共にメ
リットとデメリットを提示し、比較できるようにする
※ただし、IoT、AIに関するAWSサービスは対象外(今後別文書として提示)
✓ 実際のWebサービスを作るために、AWSのサービスを組み合わせたアーキテクチャー例
を提示
✓ AWSのサービスから、Webアプリケーションの構築に
使えるサービスの紹介
✓ サービスをシステムアーキテクチャーの要素別に区分して
機能の簡単な紹介と共にメリットとデメリットを提示し、
比較できるようにする
※ただし、IoT、AIに関するAWSサービスは対象外(今後別文書として提示)
✓ 実際のWebサービスを作るために、AWSのサービスを組み
合わせたアーキテクチャー例を提示
目次
1. AWSサービス紹介
● ネットワーキング
● コンピューティング
● データベース
● ストレージ
● アプリケーション統合
● セキュリティ
● 開発者ツール・DevOps
● その他
2. サービス構成例
3. AWSにおける開発・デプロイ
4
1. AWSサービス紹介
5
ネットワーキング
サービス 区分・概要 メリット デメリット
VPC 仮想プライベート
クラウド
● 仮想ネットワークを簡単に構築可能
● 細かいセキュリティ設定が可能
● サブネット、ルートテーブルなど最低限のネットワーク
の知識が必要
VPN 仮想プライベート
ネットワーク
● オンプレミスネットワークとVPC間でセキュアな
接続が可能
● 専用線接続サービス(DirectConnect)も用意され
ている
● オンプレを外部ネットワークと接続する事になるのでセ
キュリティ設定を密に行う必要がある
Route 53 DNS ● DNSサーバ構築、管理が不要
● 可用性、拡張性に優れている
● AWSの他サービスとの連携が容易
● 利用料金が掛かる(ただし非常に安価)
CloudFront CDN(コンテンツ
デリバリーネット
ワーク)
● 世界中へ高速にコンテンツを配信可能
● エッジロケーションにより負荷が分散される
● キャッシュにより、オリジンサーバへの負荷を低
減する
● CloudFrontとは別にS3やEC2等、コンテンツを格納す
るサーバ・サービスが必要
6
ネットワーキング
サービス 区分・概要 メリット デメリット
Elastic Load
Balancing
ロードバランサー ● アプリのトラフィックを複数のターゲット(EC2、
ECS、Lambda等)に自動的に分散可能
● ELBをSSL終端とする事でサーバ(EC2等)のSSL対
応が不要となる
● Network Load Balancerを使用すれば固定IPでの
運用が可能
● (あえて書くなら)ELBの利用料金が掛かる
API Gateway サーバレスで
APIを公開
● RESTfulAPI、WebSocketAPIをサーバレスで公開
可能
● Lambdaと組み合わせて完全サーバレスのAPIを公
開できる
● スロットリング設定によりバックエンド側の負荷
を制御可能
● データ量等の制約を意識する必要がある
● Lambdaと組み合わせる場合、Lambda側の制限と合わ
せて設計する必要がある
7
コンピューティング
サービス 区分・概要 メリット デメリット
EC2 仮想サーバ ● オンプレミスからの移行が容易
● 既存資産を活かし易い
● スケーリングが容易
● サーバの管理を自前で行う必要がある
Lambda サーバレスで
コードを実行
● サーバ構築、管理が不要
● AWSの様々なサービスから呼び出せる
● APIGatewayやAppSyncと連携しサーバレスな
WebAPIを提供可能
● ステートレスなので、コネクションプールを使用できず
RDS(RDB)との相性が悪い。コネクションの枯渇が発生
しやすい。→ Aurora ServerlessであればOK。
● 既存資産を活かしにくい
ECS コンテナ ● 1サーバで複数のコンテナを起動できるのでマイク
ロサービスの提供が容易
● コンテナを動かす為のサーバ(EC2)が必要
● Docker等のコンテナを構築する知識が必要
Fargate コンテナ ● コンテナを動かすサーバの管理が不要
● マイクロサービスの提供が容易
● スケーリングが容易
● Docker等のコンテナを構築する知識が必要
● EC2の同一スペックに比べてコストが若干割高。ただし
FargateはAWSの重要サービスである為、値下げされる
事が多い。
AWS Batch バッチ処理 ● サーバの管理が不要(自動起動、停止)
● 必要な時に必要なリソースを利用可能
● JP1のようなサードパーティ製のようなリッチなジョブ
スケジューラ機能が無い
8
データベース
サービス 区分・概要 メリット デメリット
RDS RDB ● サーバ構築、管理が不要
● 様々なRDBMSから選択が可能
● Auroraに比べてフェイルオーバーに時間が掛かる
Aurora MySQL、
PostgreSQL互換
● パフォーマンス、可用性、信頼性に優れる
● MySQL、PostgreSQLと互換性がある
● コストが若干高い
● MySQL、PostgreSQLしか対応していない
Aurora
Serverless
Auroraの
サーバレス版
● インスタンス管理が不要で自動的にスケーリング
する
● 常時起動でも通常のAuroraに比べて料金が安い
● DataAPIを使う事でLambdaとの相性問題も改善さ
れる
● キャパシティが0の状態でアクセスすると30秒〜1分程
度の待ちが発生する(コールドスタート)
DynamoDB NoSQL ● サーバ構築、管理が不要
● スケーリングが容易
● Lambdaとの相性が良い
● RDBからの移行は設計からの見直しが必要
● 複雑なクエリが使えないので業務要件に合わせた採用検
討が必要
DocumentDB MongoDB互換 ● サーバ構築、管理が不要
● スケーリングが容易
● Lambdaとの相性が良い
● MongoDBと互換がある
● RDBからの移行は設計からの見直しが必要
● DynamoDBに比べる柔軟なクエリが使えるが、業務要件
に合わせた採用検討が必要
9
データベース
サービス 区分・概要 メリット デメリット
RedShift DWH
(データウェアハウス)
● 大量データの分析、集計を高速に行える
● S3上のデータを集計する事も可能
(RedShift Spectrum)
● RDBと比べ
● SQLの並列実行に弱い
● 頻繁に更新するデータには向かない
ElastiCache インメモリ
キャッシング
● サーバ構築、管理が不要
● 超高速アクセス
● 頻繁に更新されるセッション情報などに有用
(DynamoDBだと都度課金が発生する為)
● データの永続化ができない為、他のサービスとの併用な
ど検討が必要
10
ストレージ
サービス 区分・概要 メリット デメリット
S3 オブジェクト
ストレージ
● 99.999999999%の耐久性
● データ容量の制限なく保存が可能
● 静的Webホスティングが可能
● 非常に安価
● サーバサイド処理を含むサイト構築は不可
EBS EC2用ブロック
ストレージ
● 4つのボリュームタイプから用途に合わせて選択が
可能
● ボリュームサイズの増加が容易なので、最初から
最大サイズを確保する必要がない
● インスタンス間の共有ができない
● EBS内でデータを永続化すると、単一障害点となってし
まう
EFS ファイル
ストレージ
● EC2、ECS、Fargate間で共有が可能
● 自動で伸縮する為、容量を決める必要が無い
● EBSに比べてコストが高い
S3 Glacier アーカイブ用
オブジェクト
ストレージ
● アーカイブや長期バックアップを目的としている
為、S3より更に安価
● データ取得に数分〜数時間を要するので常時アクセスす
る用途では使用できない
● 3ヶ月未満のデータを削除すると早期削除料金が発生す
る
11
セキュリティ
サービス 区分・概要 メリット デメリット
IAM AWSの
アクセス管理
● AWSの各リソース(サービス)に対するアクセス管
理を行う事が可能
● ユーザー単位で細かい権限管理が可能
● アクセスエラーが発生した時に原因の究明が難しい(慣
れが必要)
Cognito アプリの
アクセス管理
● アプリのサインアップ、サインインを簡単に実現
できる
● Google、Facebook等のIDプロバイダと連携が可
能
● Oauth2.0、OpenIDConnect等のアクセス管理を
サポートしている
● バックエンドリソースのアクセス管理が可能
● (あえて書くなら)Cognitoに関する専門知識の習得が
必要
WAF Webアプリケー
ションファイア
ウォール
● SQLインジェクション、クロスサイトスクリプ
ティングなど一般的な攻撃をブロック可能
● 特定のトラックパターンを除外可能
● 事前設定済みのマネージドルールを利用可能
● マネージドルールはブラックボックス化されている為、
誤認識された時に対処が難しい。
ACM SSL証明書の
発行・管理
● ELB、CloudFrontで使用できるSSL証明書を無料
で発行できる
● SSL証明書が自動更新される
● 外部発行のSSL証明書を可能
● EC2では利用できない。(前段のELBで利用する事でセ
キュリティは担保可能)
12
開発者ツール・DevOps
サービス 区分・概要 メリット デメリット
CloudFormation コードによる
AWSリソース
の構築・管理
● コード(JSON/YAML)でAWSリソースを自動構築、
管理する事ができる
● コードをインフラの設計書とみなす事ができる
● 環境の複製が簡単に短時間で行える
● CloudFormation独自の記述方法にラーニングコストが
掛かる
CloudWatch リソース、ア
プリのモニタ
リング
● サーバ、コンテナのログをCloudWatchに出力可
能。ローカル保存しない事で、サーバ、コンテナ
のスケーリングが容易になる。(ログの消失を防
ぐ)
● ルールを使って各種処理の定期実行が可能
● 各リソースのメトリクスをグラフィカルに確認可
能
● アラームを設定し、メトリクスのしきい値を超え
た時にアクションを起こす事ができる(Lambdaを
使ってSlackに通知する等)
● 短時間に大量のログを出力(APIをCall)すると、スロッ
トリングが発生し、ログの抜けが発生する
● 大量のログを出力すると意外に料金が高い。
13
開発者ツール・DevOps
サービス 区分・概要 メリット デメリット
CodeCommit プライベート
Gitリポジトリ
● サーバ構築、管理が不要
● AWSならではのセキュリティ、高可用性を持つGit
リポジトリが使用できる
● ソースコード管理までAWSに依存してしまう。Lambda
のようにAWS有りきのプロジェクトであれば良いか。
CodePipeline 継続的デリバリー ● サーバ構築、管理が不要
● Gitリポジトリの更新をトリガーとして、ビルド、
テスト、デプロイまで自動化する事が可能
● 手動の承認を入れる事が可能なので、誤って本番
環境にリリースする事を防げる
● CodeBuild、CodeDeploy等、他のサービスと合わせて
知識が必要
CloudBuild ビルド、テストの
自動化
● サーバ構築、管理が不要
● ビルド、テストを自動で行う事が可能
● 並列ビルドが可能(自動スケール)
● CodeBuild、CodeDeploy等、他のサービスと合わせて
知識が必要
CodeDeploy 自動デプロイ ● サーバ構築、管理が不要
● EC2、Fargate、Lambda、オンプレミスサーバへ
アプリを自動デプロイ可能
● Blue/Greenデプロイが選択可能
● CodeBuild、CodeDeploy等、他のサービスと合わせて
知識が必要
14
開発者ツール・DevOps
サービス 区分・概要 メリット デメリット
Cloud9 ブラウザで
使用できるIDE
● サーバ構築、管理が不要
● コードエディタ、デバッガー、ターミナルをブラ
ウザ上で使用できる
● コードエディタを共有しペアプログラミングやリ
アルタイムレビューが可能
● Lambda関数のローカルテスト、デバッグが可能
● ローカル端末の性能に影響を受けない開発が可能
● 利用中はEC2の利用料金が掛かる
15
その他
サービス 区分・概要 メリット デメリット
SNS pub/sub
メッセージング
● サーバ構築、管理が不要
● HTTP、Email、SQS、Lambdaと簡単に連携が可能
● モバイル端末へのプッシュ通知が行える
● SQSとの連携で疎結合かつ、並列処理が簡単に行
える
● (あえて書くなら)クラウドネイティブな設計思想が必
要
SQS メッセージキュー ● サーバ構築、管理が不要
● 複雑な処理を分割しやすい(疎結合・マイクロ
サービス化)
● 大量データ処理のスケーリングが容易
● 標準キューでは順序保証が無く、複数回同じメッセージ
が配信される事がある。(要件に合わせてFIFOキュー
を検討すれば良い)
Kinesis データストリーム ● 複数のコンシューマ(読み込む側の処理)
● 大量のログ、イベントデータの収集、リアルタイ
ム解析等に向いている
● SQSと比べて読み書きの実装がやや煩雑
● スケーリングを自前で行う必要がある(ライブラリは公
開されている)
SES メールサービス ● サーバ構築、管理が不要
● SMTPインタフェースを使う事で既存のメール送信
ロジックを流用可能
● バウンス(配信障害)を放置するとSESの利用停止措置を
取られる事がある(適切な処理は必要)
● 送信済みメールを一覧表示するような機能が無い為、必
要であれば自前でアプリを構築する必要がある
16
その他
サービス 区分・概要 メリット デメリット
AppSync GraphQL ● サーバ構築、管理が不要
● アプリのオフライン対策を自前で行う必要がない
(オフライン時に発生した更新のみ自動同期す
る)
● DynamoDB、ElasticSearch、Lambda、外部
WebAPIといった複数データソースからのデータ取
得が可能
● GraphQL及びAppSyncの知識が必要
17
2. サービス構成例
18
オンプレからの移行が容易な構成 ※サーバレスではない
Public Subnet - A
VPC
Private Subnet - A
EC2
ALB
RDS(Master)
Client
✓ オンプレミスで稼働中のレガシーシステムの移行が容易
✓ 冗長化する事で可用性を高める(単一障害点を無くす)
✓ EC2は負荷に応じてオートスケーリングする
Public Subnet - C
EC2
Private Subnet - C
RDS(Slave)
Auto Scaling group
EC2をオートスケーリングに対応させるには
● EC2にアプリ情報を永続化させない
● EC2上にログを保持しない
● EC2上にセッション情報等を持たない
EC2を使い捨てできる状態にする事が重要!
障害発生時は自動的に
Masterに昇格
19
コンテナによるマイクロサービス化 ※サーバレスではない
Public Subnet - A
VPC
Private Subnet - A
Fargate
ALB
RDS(Master)
Client
✓ Fargate(コンテナ)でマイクロサービス化
✓ Fargateは負荷に応じてオートスケーリング可能(設定が容易)
Fargate
Public Subnet - C Private Subnet - C
Fargate
RDS(Slave)
Fargate
ALB
障害発生時は自動的に
Masterに昇格
20
レガシー構成から段階的にサーバレス化
VPC
Client
✓ APIのエンドポイントをAPI Gatewayに集約する事で、バックエンドに
異なるアーキテクチャを採用可能。フロントはバックエンドの構成を意
識する必要が無い
API Gateway
EC2
Fargate
Lambda
RDS
DynamoDB
Fargate
レガシー
SQS Lambda
※サブネットの
表記は割愛
機能単位で
段階的に移行が可能
コンテナ化
サーバレス
21
画像アップロード時にサーバレスでサムネイル自動作成
Client S3 Lambda
✓ S3に画像がアップロードされると、S3のトリガーで
Lambdaが起動される。
✓ Lambdaで、アップロードされた画像のサムネイル画像
を作成し、S3に保存する。
22
オンプレミス資産との連携
VPCOn-premise
Private Subnet
EC2
Public Subnet - C
EC2 Internet
Gateway
VPN
GatewayRouter
VPN
Connection
Internet
Server
RDS
✓ オンプレミス資産とAWSをVPNで繋げる
✓ 外部(インターネット)との接続を別サブネットにする事で
セキュリティを担保
23
AppSyncによる完全サーバレス化
Client
DynamoDB
AppSync
Aurora
Serverless
S3Cloud
Front
Cognito
✓ AppSync(GraphQL)を使用する事で単純なCRUDはLambda無しで可能
✓ 複雑な処理はLambdaで対応
Lambda Document
DB
フロントエンド
ユーザー管理認証
24
3. AWSにおける開発・デプロイ
25
DevOps
✓ コードがGithubにプッシュされると、自動的にビルド、デプロイが
実行される。 ※上図にはテストを含んでいない。
CodePipeline
CodeBuild
CodeDeploy
S3
ECR
Source Code Github
Fargate
Source Artifact
Build
Register
Deploy
(Pull)
Blue/Green
Deploy
26
Cloud9を使ったリモート開発
Cloud9 EC2
Lambda
Build
Client
Client Cloud9 EC2
Client
Build
ペアプログラミング
ペアプログラミング
✓ クライアントからブラウザ経由でコードエディタ等のIDEが使用可能
✓ 共同編集、ペアプログラミングが可能
✓ Cloud9からLambdaのローカルテストやデプロイが可能
サーバレスを可能にするAWSサービスの概要

More Related Content

What's hot

プロトコルから見るID連携
プロトコルから見るID連携プロトコルから見るID連携
プロトコルから見るID連携Naohiro Fujie
 
アイデンティティ管理の基礎~Fim adfsアーキテクチャ
アイデンティティ管理の基礎~Fim adfsアーキテクチャアイデンティティ管理の基礎~Fim adfsアーキテクチャ
アイデンティティ管理の基礎~Fim adfsアーキテクチャNaohiro Fujie
 
Share point における id管理と認証・認可
Share point における id管理と認証・認可Share point における id管理と認証・認可
Share point における id管理と認証・認可Naohiro Fujie
 
Azure AD x LINE x Auth0
Azure AD x LINE x Auth0Azure AD x LINE x Auth0
Azure AD x LINE x Auth0Naohiro Fujie
 
クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割junichi anno
 
AWS WAF を活用しよう
AWS WAF を活用しようAWS WAF を活用しよう
AWS WAF を活用しようYuto Ichikawa
 
Office365のIdentity管理
Office365のIdentity管理Office365のIdentity管理
Office365のIdentity管理Naohiro Fujie
 
jawsug_20210319_csc_ichikawa
jawsug_20210319_csc_ichikawajawsug_20210319_csc_ichikawa
jawsug_20210319_csc_ichikawaYuto Ichikawa
 
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018Shinichiro Kosugi
 
2014-08-30_aspnet-identity
2014-08-30_aspnet-identity2014-08-30_aspnet-identity
2014-08-30_aspnet-identitykumake
 
IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計Trainocate Japan, Ltd.
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現junichi anno
 
Cloud で Active Directory を活用するには
Cloud で Active Directory を活用するにはCloud で Active Directory を活用するには
Cloud で Active Directory を活用するにはjunichi anno
 
ADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep DiveADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep DiveSuguru Kunii
 
ID Managementワークショップ Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティング
ID Managementワークショップ  Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティングID Managementワークショップ  Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティング
ID Managementワークショップ Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティングID-Based Security イニシアティブ
 
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてAzure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてShinya Yamaguchi
 
Windows Azure Active Directory for your cloud applications
Windows Azure Active Directory for your cloud applicationsWindows Azure Active Directory for your cloud applications
Windows Azure Active Directory for your cloud applicationskekekekenta
 

What's hot (20)

Scim and or graph
Scim and or graphScim and or graph
Scim and or graph
 
プロトコルから見るID連携
プロトコルから見るID連携プロトコルから見るID連携
プロトコルから見るID連携
 
アイデンティティ管理の基礎~Fim adfsアーキテクチャ
アイデンティティ管理の基礎~Fim adfsアーキテクチャアイデンティティ管理の基礎~Fim adfsアーキテクチャ
アイデンティティ管理の基礎~Fim adfsアーキテクチャ
 
Share point における id管理と認証・認可
Share point における id管理と認証・認可Share point における id管理と認証・認可
Share point における id管理と認証・認可
 
Azure AD x LINE x Auth0
Azure AD x LINE x Auth0Azure AD x LINE x Auth0
Azure AD x LINE x Auth0
 
クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割
 
AWS WAF を活用しよう
AWS WAF を活用しようAWS WAF を活用しよう
AWS WAF を活用しよう
 
Office365のIdentity管理
Office365のIdentity管理Office365のIdentity管理
Office365のIdentity管理
 
Aws security part1
Aws security part1Aws security part1
Aws security part1
 
jawsug_20210319_csc_ichikawa
jawsug_20210319_csc_ichikawajawsug_20210319_csc_ichikawa
jawsug_20210319_csc_ichikawa
 
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
 
2014-08-30_aspnet-identity
2014-08-30_aspnet-identity2014-08-30_aspnet-identity
2014-08-30_aspnet-identity
 
IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
 
Cloud で Active Directory を活用するには
Cloud で Active Directory を活用するにはCloud で Active Directory を活用するには
Cloud で Active Directory を活用するには
 
ADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep DiveADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep Dive
 
ID Managementワークショップ Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティング
ID Managementワークショップ  Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティングID Managementワークショップ  Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティング
ID Managementワークショップ Azure AD SaaS 連携 Tips & Tricks_第2回全体ミーティング
 
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてAzure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
 
Windows Azure Active Directory for your cloud applications
Windows Azure Active Directory for your cloud applicationsWindows Azure Active Directory for your cloud applications
Windows Azure Active Directory for your cloud applications
 
20111203
2011120320111203
20111203
 

Similar to サーバレスを可能にするAWSサービスの概要

セキュリティ設計の頻出論点
セキュリティ設計の頻出論点セキュリティ設計の頻出論点
セキュリティ設計の頻出論点Tomohiro Nakashima
 
Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~
Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~ Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~
Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~ Daisuke Masubuchi
 
Azure と MT のフシギな関係
Azure と MT のフシギな関係Azure と MT のフシギな関係
Azure と MT のフシギな関係Six Apart KK
 
Open棟梁 v02-00 コンセプト
Open棟梁 v02-00 コンセプトOpen棟梁 v02-00 コンセプト
Open棟梁 v02-00 コンセプトDaisuke Nishino
 
【Microsoft Build Recap!】 Azure Hybrid周りの注目Update + α
【Microsoft Build Recap!】 Azure Hybrid周りの注目Update + α【Microsoft Build Recap!】 Azure Hybrid周りの注目Update + α
【Microsoft Build Recap!】 Azure Hybrid周りの注目Update + αMasahiko Ebisuda
 
Apps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウドApps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウドHirotada Watanabe
 
01_2021年上半期 AWS IoT サービスアップデート
01_2021年上半期 AWS IoT サービスアップデート01_2021年上半期 AWS IoT サービスアップデート
01_2021年上半期 AWS IoT サービスアップデートAmazon Web Services Japan
 
AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門Amazon Web Services Japan
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon CognitoAmazon Web Services Japan
 
AWS Introduction for Startups
AWS Introduction for StartupsAWS Introduction for Startups
AWS Introduction for Startupsakitsukada
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Microsoft Azure Japan
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architectureIssei Hiraoka
 
.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化Takeshi Fukuhara
 
Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築ryosuke matsumura
 
Windows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSWindows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSAmazon Web Services Japan
 
Azure activedirectoryの最新機能の概要紹介
Azure activedirectoryの最新機能の概要紹介Azure activedirectoryの最新機能の概要紹介
Azure activedirectoryの最新機能の概要紹介Tsukasa Kato
 
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた日本マイクロソフト株式会社
 
Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築ryosuke matsumura
 
AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現HIRA
 

Similar to サーバレスを可能にするAWSサービスの概要 (20)

セキュリティ設計の頻出論点
セキュリティ設計の頻出論点セキュリティ設計の頻出論点
セキュリティ設計の頻出論点
 
Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~
Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~ Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~
Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~
 
Azure と MT のフシギな関係
Azure と MT のフシギな関係Azure と MT のフシギな関係
Azure と MT のフシギな関係
 
Open棟梁 v02-00 コンセプト
Open棟梁 v02-00 コンセプトOpen棟梁 v02-00 コンセプト
Open棟梁 v02-00 コンセプト
 
【Microsoft Build Recap!】 Azure Hybrid周りの注目Update + α
【Microsoft Build Recap!】 Azure Hybrid周りの注目Update + α【Microsoft Build Recap!】 Azure Hybrid周りの注目Update + α
【Microsoft Build Recap!】 Azure Hybrid周りの注目Update + α
 
Apps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウドApps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウド
 
01_2021年上半期 AWS IoT サービスアップデート
01_2021年上半期 AWS IoT サービスアップデート01_2021年上半期 AWS IoT サービスアップデート
01_2021年上半期 AWS IoT サービスアップデート
 
AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
 
AWS Introduction for Startups
AWS Introduction for StartupsAWS Introduction for Startups
AWS Introduction for Startups
 
AWS の IoT 向けサービス
AWS の IoT 向けサービスAWS の IoT 向けサービス
AWS の IoT 向けサービス
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
 
.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化
 
Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築
 
Windows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSWindows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWS
 
Azure activedirectoryの最新機能の概要紹介
Azure activedirectoryの最新機能の概要紹介Azure activedirectoryの最新機能の概要紹介
Azure activedirectoryの最新機能の概要紹介
 
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
 
Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築
 
AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現
 

More from Fixel Inc.

元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」
元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」
元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」Fixel Inc.
 
業務システムにおけるインタラクションとアニメーション
業務システムにおけるインタラクションとアニメーション業務システムにおけるインタラクションとアニメーション
業務システムにおけるインタラクションとアニメーションFixel Inc.
 
新サービス活用おけるUXの活用事例
新サービス活用おけるUXの活用事例新サービス活用おけるUXの活用事例
新サービス活用おけるUXの活用事例Fixel Inc.
 
HT Itoi_sama UX
HT Itoi_sama UXHT Itoi_sama UX
HT Itoi_sama UXFixel Inc.
 
ITにおけるデザイン活用の課題と対応策ーデザインシステムでできること
ITにおけるデザイン活用の課題と対応策ーデザインシステムでできることITにおけるデザイン活用の課題と対応策ーデザインシステムでできること
ITにおけるデザイン活用の課題と対応策ーデザインシステムでできることFixel Inc.
 
明日から使える業務向けデザインシステムのご紹介
明日から使える業務向けデザインシステムのご紹介明日から使える業務向けデザインシステムのご紹介
明日から使える業務向けデザインシステムのご紹介Fixel Inc.
 
AWSを利用したアプリ開発
AWSを利用したアプリ開発AWSを利用したアプリ開発
AWSを利用したアプリ開発Fixel Inc.
 

More from Fixel Inc. (7)

元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」
元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」
元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」
 
業務システムにおけるインタラクションとアニメーション
業務システムにおけるインタラクションとアニメーション業務システムにおけるインタラクションとアニメーション
業務システムにおけるインタラクションとアニメーション
 
新サービス活用おけるUXの活用事例
新サービス活用おけるUXの活用事例新サービス活用おけるUXの活用事例
新サービス活用おけるUXの活用事例
 
HT Itoi_sama UX
HT Itoi_sama UXHT Itoi_sama UX
HT Itoi_sama UX
 
ITにおけるデザイン活用の課題と対応策ーデザインシステムでできること
ITにおけるデザイン活用の課題と対応策ーデザインシステムでできることITにおけるデザイン活用の課題と対応策ーデザインシステムでできること
ITにおけるデザイン活用の課題と対応策ーデザインシステムでできること
 
明日から使える業務向けデザインシステムのご紹介
明日から使える業務向けデザインシステムのご紹介明日から使える業務向けデザインシステムのご紹介
明日から使える業務向けデザインシステムのご紹介
 
AWSを利用したアプリ開発
AWSを利用したアプリ開発AWSを利用したアプリ開発
AWSを利用したアプリ開発
 

サーバレスを可能にするAWSサービスの概要

  • 2. 2 当ドキュメントのスコープ ✓ AWSのサービスから、Webアプリケーションの構築に使えるサービスの紹介 ✓ サービスをシステムアーキテクチャーの要素別に区分して機能の簡単な紹介と共にメ リットとデメリットを提示し、比較できるようにする ※ただし、IoT、AIに関するAWSサービスは対象外(今後別文書として提示) ✓ 実際のWebサービスを作るために、AWSのサービスを組み合わせたアーキテクチャー例 を提示 ✓ AWSのサービスから、Webアプリケーションの構築に 使えるサービスの紹介 ✓ サービスをシステムアーキテクチャーの要素別に区分して 機能の簡単な紹介と共にメリットとデメリットを提示し、 比較できるようにする ※ただし、IoT、AIに関するAWSサービスは対象外(今後別文書として提示) ✓ 実際のWebサービスを作るために、AWSのサービスを組み 合わせたアーキテクチャー例を提示
  • 3. 目次 1. AWSサービス紹介 ● ネットワーキング ● コンピューティング ● データベース ● ストレージ ● アプリケーション統合 ● セキュリティ ● 開発者ツール・DevOps ● その他 2. サービス構成例 3. AWSにおける開発・デプロイ
  • 5. 5 ネットワーキング サービス 区分・概要 メリット デメリット VPC 仮想プライベート クラウド ● 仮想ネットワークを簡単に構築可能 ● 細かいセキュリティ設定が可能 ● サブネット、ルートテーブルなど最低限のネットワーク の知識が必要 VPN 仮想プライベート ネットワーク ● オンプレミスネットワークとVPC間でセキュアな 接続が可能 ● 専用線接続サービス(DirectConnect)も用意され ている ● オンプレを外部ネットワークと接続する事になるのでセ キュリティ設定を密に行う必要がある Route 53 DNS ● DNSサーバ構築、管理が不要 ● 可用性、拡張性に優れている ● AWSの他サービスとの連携が容易 ● 利用料金が掛かる(ただし非常に安価) CloudFront CDN(コンテンツ デリバリーネット ワーク) ● 世界中へ高速にコンテンツを配信可能 ● エッジロケーションにより負荷が分散される ● キャッシュにより、オリジンサーバへの負荷を低 減する ● CloudFrontとは別にS3やEC2等、コンテンツを格納す るサーバ・サービスが必要
  • 6. 6 ネットワーキング サービス 区分・概要 メリット デメリット Elastic Load Balancing ロードバランサー ● アプリのトラフィックを複数のターゲット(EC2、 ECS、Lambda等)に自動的に分散可能 ● ELBをSSL終端とする事でサーバ(EC2等)のSSL対 応が不要となる ● Network Load Balancerを使用すれば固定IPでの 運用が可能 ● (あえて書くなら)ELBの利用料金が掛かる API Gateway サーバレスで APIを公開 ● RESTfulAPI、WebSocketAPIをサーバレスで公開 可能 ● Lambdaと組み合わせて完全サーバレスのAPIを公 開できる ● スロットリング設定によりバックエンド側の負荷 を制御可能 ● データ量等の制約を意識する必要がある ● Lambdaと組み合わせる場合、Lambda側の制限と合わ せて設計する必要がある
  • 7. 7 コンピューティング サービス 区分・概要 メリット デメリット EC2 仮想サーバ ● オンプレミスからの移行が容易 ● 既存資産を活かし易い ● スケーリングが容易 ● サーバの管理を自前で行う必要がある Lambda サーバレスで コードを実行 ● サーバ構築、管理が不要 ● AWSの様々なサービスから呼び出せる ● APIGatewayやAppSyncと連携しサーバレスな WebAPIを提供可能 ● ステートレスなので、コネクションプールを使用できず RDS(RDB)との相性が悪い。コネクションの枯渇が発生 しやすい。→ Aurora ServerlessであればOK。 ● 既存資産を活かしにくい ECS コンテナ ● 1サーバで複数のコンテナを起動できるのでマイク ロサービスの提供が容易 ● コンテナを動かす為のサーバ(EC2)が必要 ● Docker等のコンテナを構築する知識が必要 Fargate コンテナ ● コンテナを動かすサーバの管理が不要 ● マイクロサービスの提供が容易 ● スケーリングが容易 ● Docker等のコンテナを構築する知識が必要 ● EC2の同一スペックに比べてコストが若干割高。ただし FargateはAWSの重要サービスである為、値下げされる 事が多い。 AWS Batch バッチ処理 ● サーバの管理が不要(自動起動、停止) ● 必要な時に必要なリソースを利用可能 ● JP1のようなサードパーティ製のようなリッチなジョブ スケジューラ機能が無い
  • 8. 8 データベース サービス 区分・概要 メリット デメリット RDS RDB ● サーバ構築、管理が不要 ● 様々なRDBMSから選択が可能 ● Auroraに比べてフェイルオーバーに時間が掛かる Aurora MySQL、 PostgreSQL互換 ● パフォーマンス、可用性、信頼性に優れる ● MySQL、PostgreSQLと互換性がある ● コストが若干高い ● MySQL、PostgreSQLしか対応していない Aurora Serverless Auroraの サーバレス版 ● インスタンス管理が不要で自動的にスケーリング する ● 常時起動でも通常のAuroraに比べて料金が安い ● DataAPIを使う事でLambdaとの相性問題も改善さ れる ● キャパシティが0の状態でアクセスすると30秒〜1分程 度の待ちが発生する(コールドスタート) DynamoDB NoSQL ● サーバ構築、管理が不要 ● スケーリングが容易 ● Lambdaとの相性が良い ● RDBからの移行は設計からの見直しが必要 ● 複雑なクエリが使えないので業務要件に合わせた採用検 討が必要 DocumentDB MongoDB互換 ● サーバ構築、管理が不要 ● スケーリングが容易 ● Lambdaとの相性が良い ● MongoDBと互換がある ● RDBからの移行は設計からの見直しが必要 ● DynamoDBに比べる柔軟なクエリが使えるが、業務要件 に合わせた採用検討が必要
  • 9. 9 データベース サービス 区分・概要 メリット デメリット RedShift DWH (データウェアハウス) ● 大量データの分析、集計を高速に行える ● S3上のデータを集計する事も可能 (RedShift Spectrum) ● RDBと比べ ● SQLの並列実行に弱い ● 頻繁に更新するデータには向かない ElastiCache インメモリ キャッシング ● サーバ構築、管理が不要 ● 超高速アクセス ● 頻繁に更新されるセッション情報などに有用 (DynamoDBだと都度課金が発生する為) ● データの永続化ができない為、他のサービスとの併用な ど検討が必要
  • 10. 10 ストレージ サービス 区分・概要 メリット デメリット S3 オブジェクト ストレージ ● 99.999999999%の耐久性 ● データ容量の制限なく保存が可能 ● 静的Webホスティングが可能 ● 非常に安価 ● サーバサイド処理を含むサイト構築は不可 EBS EC2用ブロック ストレージ ● 4つのボリュームタイプから用途に合わせて選択が 可能 ● ボリュームサイズの増加が容易なので、最初から 最大サイズを確保する必要がない ● インスタンス間の共有ができない ● EBS内でデータを永続化すると、単一障害点となってし まう EFS ファイル ストレージ ● EC2、ECS、Fargate間で共有が可能 ● 自動で伸縮する為、容量を決める必要が無い ● EBSに比べてコストが高い S3 Glacier アーカイブ用 オブジェクト ストレージ ● アーカイブや長期バックアップを目的としている 為、S3より更に安価 ● データ取得に数分〜数時間を要するので常時アクセスす る用途では使用できない ● 3ヶ月未満のデータを削除すると早期削除料金が発生す る
  • 11. 11 セキュリティ サービス 区分・概要 メリット デメリット IAM AWSの アクセス管理 ● AWSの各リソース(サービス)に対するアクセス管 理を行う事が可能 ● ユーザー単位で細かい権限管理が可能 ● アクセスエラーが発生した時に原因の究明が難しい(慣 れが必要) Cognito アプリの アクセス管理 ● アプリのサインアップ、サインインを簡単に実現 できる ● Google、Facebook等のIDプロバイダと連携が可 能 ● Oauth2.0、OpenIDConnect等のアクセス管理を サポートしている ● バックエンドリソースのアクセス管理が可能 ● (あえて書くなら)Cognitoに関する専門知識の習得が 必要 WAF Webアプリケー ションファイア ウォール ● SQLインジェクション、クロスサイトスクリプ ティングなど一般的な攻撃をブロック可能 ● 特定のトラックパターンを除外可能 ● 事前設定済みのマネージドルールを利用可能 ● マネージドルールはブラックボックス化されている為、 誤認識された時に対処が難しい。 ACM SSL証明書の 発行・管理 ● ELB、CloudFrontで使用できるSSL証明書を無料 で発行できる ● SSL証明書が自動更新される ● 外部発行のSSL証明書を可能 ● EC2では利用できない。(前段のELBで利用する事でセ キュリティは担保可能)
  • 12. 12 開発者ツール・DevOps サービス 区分・概要 メリット デメリット CloudFormation コードによる AWSリソース の構築・管理 ● コード(JSON/YAML)でAWSリソースを自動構築、 管理する事ができる ● コードをインフラの設計書とみなす事ができる ● 環境の複製が簡単に短時間で行える ● CloudFormation独自の記述方法にラーニングコストが 掛かる CloudWatch リソース、ア プリのモニタ リング ● サーバ、コンテナのログをCloudWatchに出力可 能。ローカル保存しない事で、サーバ、コンテナ のスケーリングが容易になる。(ログの消失を防 ぐ) ● ルールを使って各種処理の定期実行が可能 ● 各リソースのメトリクスをグラフィカルに確認可 能 ● アラームを設定し、メトリクスのしきい値を超え た時にアクションを起こす事ができる(Lambdaを 使ってSlackに通知する等) ● 短時間に大量のログを出力(APIをCall)すると、スロッ トリングが発生し、ログの抜けが発生する ● 大量のログを出力すると意外に料金が高い。
  • 13. 13 開発者ツール・DevOps サービス 区分・概要 メリット デメリット CodeCommit プライベート Gitリポジトリ ● サーバ構築、管理が不要 ● AWSならではのセキュリティ、高可用性を持つGit リポジトリが使用できる ● ソースコード管理までAWSに依存してしまう。Lambda のようにAWS有りきのプロジェクトであれば良いか。 CodePipeline 継続的デリバリー ● サーバ構築、管理が不要 ● Gitリポジトリの更新をトリガーとして、ビルド、 テスト、デプロイまで自動化する事が可能 ● 手動の承認を入れる事が可能なので、誤って本番 環境にリリースする事を防げる ● CodeBuild、CodeDeploy等、他のサービスと合わせて 知識が必要 CloudBuild ビルド、テストの 自動化 ● サーバ構築、管理が不要 ● ビルド、テストを自動で行う事が可能 ● 並列ビルドが可能(自動スケール) ● CodeBuild、CodeDeploy等、他のサービスと合わせて 知識が必要 CodeDeploy 自動デプロイ ● サーバ構築、管理が不要 ● EC2、Fargate、Lambda、オンプレミスサーバへ アプリを自動デプロイ可能 ● Blue/Greenデプロイが選択可能 ● CodeBuild、CodeDeploy等、他のサービスと合わせて 知識が必要
  • 14. 14 開発者ツール・DevOps サービス 区分・概要 メリット デメリット Cloud9 ブラウザで 使用できるIDE ● サーバ構築、管理が不要 ● コードエディタ、デバッガー、ターミナルをブラ ウザ上で使用できる ● コードエディタを共有しペアプログラミングやリ アルタイムレビューが可能 ● Lambda関数のローカルテスト、デバッグが可能 ● ローカル端末の性能に影響を受けない開発が可能 ● 利用中はEC2の利用料金が掛かる
  • 15. 15 その他 サービス 区分・概要 メリット デメリット SNS pub/sub メッセージング ● サーバ構築、管理が不要 ● HTTP、Email、SQS、Lambdaと簡単に連携が可能 ● モバイル端末へのプッシュ通知が行える ● SQSとの連携で疎結合かつ、並列処理が簡単に行 える ● (あえて書くなら)クラウドネイティブな設計思想が必 要 SQS メッセージキュー ● サーバ構築、管理が不要 ● 複雑な処理を分割しやすい(疎結合・マイクロ サービス化) ● 大量データ処理のスケーリングが容易 ● 標準キューでは順序保証が無く、複数回同じメッセージ が配信される事がある。(要件に合わせてFIFOキュー を検討すれば良い) Kinesis データストリーム ● 複数のコンシューマ(読み込む側の処理) ● 大量のログ、イベントデータの収集、リアルタイ ム解析等に向いている ● SQSと比べて読み書きの実装がやや煩雑 ● スケーリングを自前で行う必要がある(ライブラリは公 開されている) SES メールサービス ● サーバ構築、管理が不要 ● SMTPインタフェースを使う事で既存のメール送信 ロジックを流用可能 ● バウンス(配信障害)を放置するとSESの利用停止措置を 取られる事がある(適切な処理は必要) ● 送信済みメールを一覧表示するような機能が無い為、必 要であれば自前でアプリを構築する必要がある
  • 16. 16 その他 サービス 区分・概要 メリット デメリット AppSync GraphQL ● サーバ構築、管理が不要 ● アプリのオフライン対策を自前で行う必要がない (オフライン時に発生した更新のみ自動同期す る) ● DynamoDB、ElasticSearch、Lambda、外部 WebAPIといった複数データソースからのデータ取 得が可能 ● GraphQL及びAppSyncの知識が必要
  • 18. 18 オンプレからの移行が容易な構成 ※サーバレスではない Public Subnet - A VPC Private Subnet - A EC2 ALB RDS(Master) Client ✓ オンプレミスで稼働中のレガシーシステムの移行が容易 ✓ 冗長化する事で可用性を高める(単一障害点を無くす) ✓ EC2は負荷に応じてオートスケーリングする Public Subnet - C EC2 Private Subnet - C RDS(Slave) Auto Scaling group EC2をオートスケーリングに対応させるには ● EC2にアプリ情報を永続化させない ● EC2上にログを保持しない ● EC2上にセッション情報等を持たない EC2を使い捨てできる状態にする事が重要! 障害発生時は自動的に Masterに昇格
  • 19. 19 コンテナによるマイクロサービス化 ※サーバレスではない Public Subnet - A VPC Private Subnet - A Fargate ALB RDS(Master) Client ✓ Fargate(コンテナ)でマイクロサービス化 ✓ Fargateは負荷に応じてオートスケーリング可能(設定が容易) Fargate Public Subnet - C Private Subnet - C Fargate RDS(Slave) Fargate ALB 障害発生時は自動的に Masterに昇格
  • 21. 21 画像アップロード時にサーバレスでサムネイル自動作成 Client S3 Lambda ✓ S3に画像がアップロードされると、S3のトリガーで Lambdaが起動される。 ✓ Lambdaで、アップロードされた画像のサムネイル画像 を作成し、S3に保存する。
  • 22. 22 オンプレミス資産との連携 VPCOn-premise Private Subnet EC2 Public Subnet - C EC2 Internet Gateway VPN GatewayRouter VPN Connection Internet Server RDS ✓ オンプレミス資産とAWSをVPNで繋げる ✓ 外部(インターネット)との接続を別サブネットにする事で セキュリティを担保
  • 26. 26 Cloud9を使ったリモート開発 Cloud9 EC2 Lambda Build Client Client Cloud9 EC2 Client Build ペアプログラミング ペアプログラミング ✓ クライアントからブラウザ経由でコードエディタ等のIDEが使用可能 ✓ 共同編集、ペアプログラミングが可能 ✓ Cloud9からLambdaのローカルテストやデプロイが可能