AWS Summit day3 report
AWS Summit day 3 レポートです。
2日目のレポートはこちら
基調講演
AWS
- セキュリティに関して、高い信頼度
- クラウド移行に関して、データ転送サービスも幅広くサポート
- 140,000以上のデータベース移行実績
- アプリケーション移行
- ハイブリッド
- シームレスにオンプレと連携できるサービス
- モノリシックからマイクロサービスへ
- インスタンス
- 200以上のインスタンスタイプ
- 新しいCPU、グラビトンにも対応
- コンテナ
- ECS
- Fargate
- EKS
mercari事例
ML
Image Search
AWSを使う理由
- 積み上がりつづける信頼・実績
- 無数の新機能が常にリリースされ続ける
- Customer Obsession
サーバレスアプリケーションアーキテクチャ
Database
Aurora
DynamoDB
- Global Table
- どんな規模でも信頼できるサービス
- Epic Game
- 1億単位を分析
Blockchain
契約管理
- 台帳システム
QLDB
- 透過的でイミュータブル。暗号的に検証可能なトランザクションログを提供するフルマネージドサービス。台帳データベース。
Amazon Manaed Blockchain
- スケーラブルなブロックチェーンネットワークの作成、構築
データレイク
- S3
AWS Lake Formation (Preview)
- 安全なデータレイクを数日で構築できるセキュアなサービス
IoT
- 同じデータモデルで同じエッジでつかえる
Panasonic
- vieureka
- 来客分析
機械学習
- P3dn Instance
G4 Instance
- 100GBネットワーク
SyntheticGestalt
- Amazon SageMakerで薬を設計
AWS DeepLens
- AWS DeepRacer
Amazon Pinpoint でユーザーを掴んで離すな
なぜデジタルエンゲージメントが重要なのか
ユーザの興味は多種多様
- 750億のエンドポイントが2025年までに相互に接続される
84%のユーザは数値ではなく人として扱われることを非常に重要視
51%のマーケットリーダはユーザの期待に完全には答えられていない
絶えず進化しつづけるユーザの期待値
- 単純な一括メッセージング -> 個人に最適化されたメッセージング(パーソナライズ)
- サイロ化(孤立)した体験 -> 連続性のあるつながった体験
- 形式的なコンタクト -> より自然なコンタクト
エンゲージメント向上に役立つAWSのサービス群
Amazon Pinpoint
- AWSによるユーザエンゲージメントプラットフォーム
- マーケターにもデベロッパーにも使いやすいプラットフォーム
- ダッシュボードは1分で反映
- 改善効果が大きいところがわかりやすい
- イベントベース通知機能
- 特定のアクションをしたユーザにメッセージをリアルタイムに送信
- Voiceチャネルサポート
- 電話をかけて自然な自動音声を届ける新しいチャネル
配信性能ダッシュボード
- Emailがちゃんと受信箱に届いているかをチューニング
インポート機能による柔軟なセグメンテーション
- イベントストリームを活用したより柔軟な分析
事例
Pinpoint + Amazon Personalize
- 予測的ユーザエンゲージメント
Pinpoint + QuickSight
QuickSight
- すべてのユーザのためのサービス
PinpointからQuickSightにデータをフィードする
- ユーザ数に関係なくスケールし、高速な計算エンジンSPICEがQuickSight
まとめ
- 適切なカスタマーエンゲージメントは今後より重要
- 機械学習、データ分析、可視化
Kubernetes on AWS(Amazon EKS実践入門)
コンテナ(Docker)
- ソフトウェアをOS内の独立した環境で実行する技術
- 名前空間でプロセス分離
- どこでも動く
いつでも作れて、いつでも捨てれる
Build : Image化 (Dockerfile作成 build)
- Share : Docker Hub等
- Run: オンプレ, EC2等
ユースケース
- マイクロサービスのアプリケーション
- ジョブ実行
- CI/CD
- 機械学習
Run時の課題
- 1台で動かせるリソースには限界がある
- 規模が大きくなると...
- 耐障害性
- コンテナのホストが停止したら全滅
- 運用性
- スケール
Kubernetes
人気の理由
- 活発なコミュニティ
- ポータビリティ(クラウドでもオンプレでも)
- 様々なエコシステムが利用できる
機能
公式pickup
- ノードにコンテナを自動配置
- 失敗したコンテナの自動フッキュ
- 手動すケース/オートスケール
- 自動ローリングアップデート
機密情報の設定
maser群 : コントロールプレーン
- node部分 : データプレーン
本番時には冗長構成にする
オブジェクト
- Pod : k8sの最小単位, Pod内コンってなはIPアドレス等共有
- Service : PodにDNSをつけてアクセスできる, ロードバランス(L3/L4)
- Deployment : Podを維持、レプリカセットの管理
マニフェスト
Amazon EKS
使う理由
提供する価値
- ビジネス価値の送出に集中出来る
デプロイ
eksctl
- IAM
- コマンドインストール
- eksctl
- kubectl
- eksctlコマンドで作成実行
- 裏でCloudFormation実行
ユースケースとAWS連携
HTTPS/HTTP対応のロードバランサを使いたい
ログを集約したい
- FluentdのDeamonsetを利用して、ログを集約
- CloudWath Container Insights(Preview)
- コンテナログ、メトリ空をCloudWatchに集約
- 数個のマニフェストを適用するだけの、簡単なセットアップ
オートスケールしたい
- 2種類の水平オートスケール
- Podレベル : 水平オートスケーリング
- Nodeレベル : クラスタオートスケーリング
デプロイ効率化したい
堅牢なデータストア
- Aurora, DynamoDB, ElasticCacheなどを利用
まとめ
- EKSはk8sの運用負担を大きく減らせる
次世代の分析プラットフォーム - Amazon Redshift - 最新アップデート
特徴
- 1万5千超える
- 1ネイtに2EBを超える
- 最速
- コスト効率
- データレイクと連携
歴史
- 元々はPostgreSQLのフォークだった
- 横にスケールアウトできる
- 2013年2月14日のバレンタインにローンチ
- 150バッチ適用, 240機能追加
アーキテクチャ
- JDBC/ODBC, Postgresql ドライバ
- コンピュートノードで分散処理していく
Redshift Spectrum
アップデート
パフォーマンスの向上
- 最新のRedshiftは2年前に比べて10倍高速
- 1日あたりのクラスターキュー待ち時間
- 87% : キューの待ち時間ほとんどない
- 13% : 平均10分待ち
Concurrency scaling
機械学習ベースのアクセラレーション
- クエリ実行時間予測
- ショートクエリは高速キューに
- クエリ結果がキャッシュされていない場合は、クエリの実行後にキャッシュする
結果セットのキャッシュ
- クエリをリーダーノードにうつす
- キャッシュにクエリ結果があれば、処理をせずに返却
その他パフォーマンス向上
- 繰り返しクエリ
- 一括削除
- 単一業の挿入
- コミット
スケールの向上
- Spectrum
データウェアハウスをS3データレイクに拡張
Elastic Resize
- 数分でクラスターの伸縮を実現
シンプル化
Redshiftクエリエディタ
- コンソール上で用意
Redshift Advisor
- 自動レコメンデーションの提供
メンテナンス自動実行
- ほぼメンテナンスフリー
Redshiftによる自動管理
- 自動分散キー
セキュリティの向上
オンプレ移行がより容易に
サーバーレスアプリケーションのためのセキュリティアーキテクチャ
サーバレスアプリケーションの構成要素を知る
- サーバ管理が不要
- 柔軟なスケーリング
- アイドル時リソース破棄不要
- 高可用性
開発者とAWSの役割分担
サーバレスなアプリケーションモデル
イベントソース > ファンクション > サービス呼び出し
基本的なサーバレスアーキテクチャ
Client > Amazon API Gateway -> AWS Lambda -> Amazon DynamoDB
AWS Lambda
サーバを気にすることのないアプリケーション開発・実行
インフラ管理不要
- 高いコスト効率
- 自分のコードを実行
API Gateway
どんな規模であっても、簡単にAPIの作成、配布、保守、監視、保護
ユースケース
- Web
- Backend
- Chatbots
- Alexa etc...
Data Processing
IoT -> Amazon Kinesis -> Lambda function -> Amazon DynamoDB
サーバレスアプリケーションを構成する要素
サーバレスアプリケーションをセキュアに設計する
Well Architected Serverless Application Lens
https://d1.awsstatic.com/whitepapers/architecture/AWS-Serverless-Applications-Lens.pdf
- ワークロード固有の考え方やベストプラクティスにフォーカスを当てたLens
セキュリティの柱
- IDとアクセス管理
- 発見的統制
- インフラストラクチャ保護
- データ保護
- インシデントレスポンス
IDとアクセス管理の考慮事項
Amazon Cognito User Pools
ウェブ/モバイルアプリケーションの認証、認可、ユーザ管理をサポート
API Gatewayアクセス認可の方法
- Cognit User Pools Authorizer
- 一般ユーザ認証/認可
- API GatewayはCognitoからのTokenをvalidate
- AWS IAM Authorization
- 管理ユーザ認証/認可
- Identity Pools
- Lambda Authorizer
- カスタム Authorizer lambda内でSocial IDを検証
発見的統制の考慮事項
ログの考慮
AWS X-Rayを使ったトラブルシューティング
- サービス感イベント繊維を可視化
- Lambdaファンクションから他のサービスに対する呼び出しと時間をトレース
- 消えたイベントのスロットルの監視
インフラストラクチャ保護の考慮事項
データ保護
- サーバレスアプリケーション内の機微な情報の保護
- 入力値チェック
保護すべきデータの外部化
AWS Secrets Manager
- 裏側でRDSの鍵をローテートしてくれる
インシデントレスポンス
めざせ!サーバレスプロフェッショナル
サーバレスとは
- サーバ管理が不要
- 柔軟なスケーリング
- アイドル時リソース破棄不要
- 高可用性
AWS Lambda
AWS サーバレスの核をなす
開発テスト・フレームワーク
AWS SAM Serverless Application Model
- 関数、API
- サーバレスアプリケーションのデプロイと管理を簡略化
- CloufFormationの拡張
- package
- deploy
DynamoDB
- Serverless;;SimpleTable
SAMのサンプルをもとにやるとよい
- awslabsのリポジトリにサンプルが用意してある
AWS AAM CLI
- ローカルでのテスト
- ローカルでのログ確認
複数環境 ・CI/CD
アカウント戦略
- 同じアカウントでスタックを分ける (小規模向け)
- 許可やアクセスn分離が難しい
- アカウントを分ける (大規模向け)
- 複数のアカウントとそれらの間のコントロールが難しい
Lambda ; 環境変数
- オプションでKMS経由で暗号化出来る
- ステージごとに環境分けるのに便利
Lambda+ バージョニング・エイリアス
- エイリアスは場ジョンに対するポインタ
API Gateway : ステージ
- 環境変数のように利用できる
- contextオブジェクトで利用できる
SAM
1つのテンプレートから複数の環境を構築
SAMについて今年調べた記事があるので参考までに
CI/CD
Codeサービスと組み合わせ - Code Commit - Code Pipeline - Code Build - Code deploy - Code Star
Hook
- 特定のLambdaをhook
API Gateway Canaryリリース
- デプロイにい進むトラフィックの割合を設定
再利用
- SAM
- CloudFormation
- Serverless Repository
監視・モニタリング
AWS X-Ray機能
- トレースレビュー
- サービスマップ
Going Deep on Amazon Aurora with MySQL Compatibility
Aurora
- パフォーマンス・スケーラビリティ
- 可用性と堅牢性
- 高セキュリティ
- フルマネージド
AWSサービスとの連携
- AWS Lambda
- IAM
- S3
- CloudWatch
パフォーマンス改善
パフォーマンス最適化に加えて、HWプラットフォームもアップグレード
ストレージ
- SSD
- 10GB ~ 64TBまでシームレスに自動でスケールアップ
- 実際に使った分だけ課金
- 3AZに6つのデータのコピーを作成
- Log structured
- redo logを複数の小さなセグメントに分割
- Log pageによってData pageを作成
I/O profile
ストレージクラスター
- Protection Group 枚に6つのストレージノードを使用
- 各ログレコードはLSN(Log sequence number)を持っていて不足・重複しているレコードを判別可能
ディスク障害検知と修復
- 2つのコピーに障害が起こっても、読み書きに影響は内
- 3つのコピー障害は読み込み可能
- 自動検知、修復
クォーラムモデル
- レプリケーション管理のためのクォーラム
- AZ + 1の障害を許容し、修復する必要がある
メンバーシップチェンジ
- Auroraはクォーラムセットとエポックを使用
- 停止なしのAZ+1のフォールトトレランス、積極的に障害を検出可能
- 一番復旧時間の早いものを自動に割合てる
クォーラムの効率化
- Auroraはどのノードが最新でレイテンシが少ないかの情報を持っている
- リードクォーラムは修理やクラッシュリカバリに必要
コストを抑えるための工夫
- 6つのコピーはすべて同一ではない
- 6つのコピーが必要だが、物理ストレージとして必要は6倍でなく3倍より少し多い程度
- ストレージ料金は、実際に使った容量のみ
レプリケーション
Auror lock mnagement
新機能
- Custom Endpoints
Global Database
Aurora Serverless
- 負荷の少ないアプリケーション
スケールアップ・ダウン
- リトライせずにAuroraのスケールアップ・ダウン可能
コンソール
- コンソール上からAuroraにクエリを投げることができる
Data API
- HTTP経由でデータベースに接続が出来るようになった
- Lambda等で利用しやすい
Parallel Query
- 複数の分析クエリを同時実行
- クエリをストレージのどの数千のCPUにプッシュダウン
Performance Insights
- slow query
- どれくらい負荷かかってた
Backtrak
- 瞬時に特定の時点へ巻き戻す
- 事故ったときとかに活用
Database cloning
- コストを増やすことなくDBのクローンを作る
- ストレージ料金は変わらず、インスタンス料金のみ
AuditログをCloudWatchで管理
- slowlog -> CloudWatch フィルタリング出来る
感想
AWS Summitは初参加でしたが、AWSを利用している企業の様々な事例や、どうビジネスをAWSで回しているかとかも知ることができ、充実した内容でした。