More Related Content Similar to [20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
Similar to [20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介 (20) More from Amazon Web Services Japan
More from Amazon Web Services Japan (20) [20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介1. © 2022, Amazon Web Services, Inc. or its Affiliates.
Yasuhiro Araki
Specialist Solutions Architect, Containers
Amazon Web Services Japan
Jan, 2022
2022初頭までに葬った
AWSアンチパターン大紹介
https://bit.ly/awsxon19-antipt
テキストで一覧できます
2. © 2022, Amazon Web Services, Inc. or its Affiliates.
荒木靖宏 です。どうぞよろしく
AWSコンテナスペシャリスト
プリンシパルソリューションアーキテクト
2011年からAWSのソリューションアーキテクトです
10年間好きなサービスは AWS DirectConnect と EC2 Spot
https://bit.ly/awsxon19-antipt
テキストで一覧できます
3. © 2022, Amazon Web Services, Inc. or its Affiliates.
本日のお話
アンチパターンはリファクタリング方法が存在する
3つの避けるべき、タイミング別のメタアンチパターン
前回(2018年5月)から2022年初頭までに葬ったアンチパターン
新サービス紹介(だけ)ではありません
https://bit.ly/awsxon19-antipt
テキストで一覧できます
4. © 2022, Amazon Web Services, Inc. or its Affiliates.
アンチパターンの前に
https://bit.ly/awsxon19-antipt
テキストで一覧できます
6. © 2022, Amazon Web Services, Inc. or its Affiliates.
AWS Support
https://aws.amazon.com/jp/premiumsupport/tech-support-guidelines/
7. © 2022, Amazon Web Services, Inc. or its Affiliates.
AWSクラウドデザインパターンとは...
AWSクラウドを使ったシステムアーキテクチャ設計を行う際に発生す
る、典型的な問題とそれに対する解決策・設計方法を、分かりやすく
分類して、ノウハウとして利用できるように整理したもの。
https://bit.ly/awsxon19-antipt
テキストで一覧できます
8. © 2022, Amazon Web Services, Inc. or its Affiliates.
アンチパターンの紹介
https://bit.ly/awsxon19-antipt
テキストで一覧できます
9. © 2022, Amazon Web Services, Inc. or its Affiliates.
アンチパターン
失敗に陥るパターンを類型化し、事例の早期
発見と対応策に関しての提案を目的とする
動作やプロセス、構造について、当初は妥当
であったのに、最終的に悪い結果が繰り返さ
れるパターン
リファクタリングするための方法が存在する
パターン
https://bit.ly/awsxon19-antipt
テキストで一覧できます
10. © 2022, Amazon Web Services, Inc. or its Affiliates.
タイミング別の「メタ」アンチパターン
https://bit.ly/awsxon19-antipt
テキストで一覧できます
11. © 2022, Amazon Web Services, Inc. or its Affiliates.
机上の空論アンチパターン
塩漬けアンチパターン
TCO無視アンチパターン
https://bit.ly/awsxon19-antipt
テキストで一覧できます
12. © 2022, Amazon Web Services, Inc. or its Affiliates.
サービスアップデートにより
アンチパターンとなったパターン
の紹介
13. © 2022, Amazon Web Services, Inc. or its Affiliates.
サービスアップデートによりアンチパターンとなったパター
ン項目
• Cost and Usage
• Analytics
• CloudOps
• Compute
• Database
• Network
• Serverless
• Storage
• Security
15. © 2022, Amazon Web Services, Inc. or its Affiliates.
Computeにおけるアンチパターン打破例
• EC2
• スポットインスタンスの「中断」を任意に発生させられるようになり
ました。Fault Injection Simulatorから実施できます(2021-10). 2017-12
以前は「入札」だったので指値を安くして中断を期待していた。
• タグ取得はrate limit考慮が必要だったが、インスタンスメタデータを使
えるようになった(2022-01)
16. © 2022, Amazon Web Services, Inc. or its Affiliates.
Computeにおけるアンチパターン打破例
• Container
• Fargateでもコンテナに入れるようになった(ECS exec)。ECS(EC2)で
EC2に入って、コンテナ探して、コンテナに入って、をしないでよく
なった(2021-03)
• Docker Hubのスロットリング回避のために、ECRに手動更新していた
が、pull-through-cacheによりシンプルに(2021-12)
17. © 2022, Amazon Web Services, Inc. or its Affiliates.
Computeにおける耳寄りupdate(アンチパターン外)
• EC2
• send-diagnostic-interrupt のAPI call。EC2に最上位のNMI割り込みをあ
たえて好きなタイミングでメモリダンプが吐ける。強制的な中止から
の再起動が高速にできることも(2019-08)
• IPv6 only subnetの導入と同時に、EC2 インスタンス ID で名前解決が
できる(i-0123456789abcdef.region.compute.internal)ように(2021-
11)
18. © 2022, Amazon Web Services, Inc. or its Affiliates.
Cost and Usage
19. © 2022, Amazon Web Services, Inc. or its Affiliates.
購買におけるアンチパターン打破例
• Cost and Usage Report
• AWS Organization のアカウントで、それぞれのコストと使用状況レポートを
セットアップできるように。以前は管理アカウントが必要。
• Reserved Instance
• 日時を指定してリザーブドインスタンスが購入できるようになった(2019-10).
以前は切れ目なく重複なく購入するのが難しかった。
• Savings Plan
• Savings Planにより、1年間または3年間の利用料をコミットするだけで割引
をEC2、Fargate,Lambda, SagaMakerに適用されるようになった(2019-
11)。RI購入のための精緻なプランが不要に。
• CloudFront Security Savings Bundle
• 1年間、月間最低使用料をコミットする前提で、Lambda@EdgeやCloudFront
Functionsの利用分を含む全てのCloudFrontの利用が対象となるため、あらゆ
るユースケースにおいて有効。待つこと無く最大 30% 節約できる柔軟なセル
フサービス(2021-02)
20. © 2022, Amazon Web Services, Inc. or its Affiliates.
利用選択におけるアンチパターン打破例
• S3 Intelligent Tiering
• コスト節約のために、精緻にストレージクラスを検討してもよいが、
S3 Intelligent Tiering の活用により、ある程度 S3側におまかせする事
が可能に(2018-11)
• Redshift
• RA3ではストレージとCPUのスケールが分離された。ストレージ起因
でむやみにインスタンスコストが嵩むのをかなり抑えられるように
(2019-12)
• OpenSearch
• UltraWarm。RedshiftのRA3と同様、ストレージ起因でむやみにインス
タンスコストが嵩むのをかなり抑えられるように (2020-05)
22. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Redshift フルマネージドのデータウェアハウスサービス
Amazon
Redshift
JDBC/ODBC
広帯域ネットワーキング
Redshift マネージドストレージ
特徴 (http://aws.amazon.com/jp/redshift/)
• 最小 160GB から最大 8.0PB まで拡張可能
• 分析ワークロード向けに特化した超並列 (MPP),
カラムナ型 DB エンジンによる高速処理
• データレイク/他 AWS サービスとの高い親和性
• 従来のデータウェアハウスの1/10のコスト
価格体系 (http://aws.amazon.com/jp/redshift/pricing/)
• Redshift インスタンス起動時間 (1秒単位)
• ストレージ使用量 (RA3 インスタンスのみ)
• S3 データレイクへのクエリ Scan 容量 ($5/TB)
• Concurrency Scaling 追加クラスターでの
クエリ実行時間 (1秒単位)
23. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
契約・環境面でもデータのやり取りには様々な障壁が
!
煩雑な契約と承認
の時間
!
データ取得
インフラの構築
!
受信・保存するHWを
用意
!
支払いスキームの
構築
!
複雑な契約書
を用意
!
顧客獲得にかかる
費用
データ提供を
断念
データ取得を
断念
購読者 データプロバイダー
24. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Data Exchange
AWS Data Exchange Private Products
データ提供者
社外向けデータ販売
社外パートナー企業向け
データ提供
社内間
データ配信
AWS
Data Exchange
2019-11
2020-11
25. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon AppFlow
特徴
• SalesforceやGoogle AnalyticsといったSaaSアプ
リケーションとネイティブに連携
• 送信元/送信先、多数のSaaSと連携可能
• フルマネージドサービスの為、サーバー管理不要
• GUI操作、かつノンコーディングでデータのマッ
ピングやフローを定義することが可能
• AWS PrivateLink、AWS Key Management
Serviceを使ってセキュアにデータ転送が可能
AWSサービスとSaaS間のデータフローを自動化
送信先
Amazon Redshift
Amazon S3
Amazon AppFlow
送信元
Amazon S3
2020-04
26. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
データの抽出・変換・ロード (ETL)、カタログ化をオールインワンで実施
特徴 (https://aws.amazon.com/jp/glue/)
• サーバレスで稼働し、ジョブが使用するリソースに対してのみお支払い
• Glue データカタログでメタデータの保存・管理を実施可能
• 多様なデータソースへのアクセスを可能にするコネクタ機能
• ワークフロー管理、モニタリングなどの運用管理機能も充実
価格体系 (https://aws.amazon.com/jp/glue/pricing/)
• ETLジョブ
Apache Spark:$0.44 DPU/時 (秒単位)
Python Shell :$0.44 DPU/時 (秒単位)
または 1/16 DPU:$0.0275 DPU/時(秒単位)
• データカタログ
ストレージ:100 万オブジェクトまで無料
リクエスト:100 万リクエスト/月まで無料
• クローラー
$0.44 DPU/時 (秒単位)
AWS Glue
データソース
クローラ データカタログ
サーバーレス
エンジン
①データをクロール
②メタデータ
を管理
AWS Glue
③手動、スケジュール、イベントで起動
⑤変換ジョブを実行して
データをターゲットに
ロード
④変換対象の
データを抽出
スケジューラ
データソース
他のAWSサービス
27. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
利用者のスキルセットやユースケースにあわせて適切な開発ツールを選択可能
AWS Glue Studio
• Glueジョブを構築するGUI
• データ抽出、出力、ジョイン等の汎用的な
処理はノンコーディング
• 変形処理をSQLで記述することも可能
AWS Glue DataBrew
(https://aws.amazon.com/jp/glue/features/databrew/)
• コードを記述することなく分析や機械学習のた
めのデータ準備が可能
• 250以上のビルトイン変換機能を備えており、
効率的に異常値の排除やフォーマットの整理を
行うことができる
AWS Glue
価格体系(https://aws.amazon.com/jp/glue/pricing/)
• DataBrewジョブ $0.48/ノード/時(60分単位)
• DataBrewインタラクティブセッション 1$/30分
※初めての利用40分は無料
2020-11
2020-09
28. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
セキュアなデータレイクを数日で構築
特徴 ( https://aws.amazon.com/jp/lake-formation/ )
• データレイクをすばやく構築:データソー
スからのデータ認識・取込・クレンジン
グ・カタログ化・変換を容易に実行
• セキュリティ管理を簡素化:データレイク
にアクセスする複数サービスに対し、横断
的にセキュリティポリシーを適用可能
• リアルタイム監査、モニタリングへの対応
価格体系
• Lake Formation 自体の利用は無償
• Lake Formation で利用されるサービス
にかかる費用のみのお支払い
新しいインサイトの
獲得と管理
複数サービス横断
セキュリティ
ポリシー適用
データの認識、取込、
クレンジング、変換
AWS Lake Formation
データ取込みと
構造化
• 自動的にデータ取込
み、成形、暗号化し
て、既存のAmazon
S3バケットに登録
セキュリティ&
コントロール
• 適切なユーザー、グ
ループに正しいデー
タへのアクセス制御
を定義
• データベース、表、
列の単位の粒度で制
御可能
利用の促進
• メタデータカタログ
を利用した検索と定
義確認
• 新しいデータ取り込
み時のポリシーを定
義可能
モニタリングと
監査
• アクセス要求や発生
したポリシー例外を
記録
• アクティビティ履歴
で詳細に変更ログや
データの入手経路を
レビュー
2018-11
29. © 2022, Amazon Web Services, Inc. or its Affiliates.
Amazon Managed Streaming for Kafka (MSK)
特徴 ( https://aws.amazon.com/jp/msk/features/ )
− ネイティブな Apache Kafka API をそのままサポート
− フルマネージドなサービスとして提供
(クラスター管理の Apache Zookeeper も内包)
オープンソースの分散ストリーミングプラットフォームである
Apache Kafka をフルマネージドで提供するサービス
Producer
お客さまのVPC
Consumer
Broker Nodes
Amazon MSK
Zookeeper Nodes
Topic Creator
Native Kafka API
30. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK public access
Service VPC
Customer VPC
Amazon Managed
Streaming for Apache Kafka
Elastic network
interface
• インターネット経由で MSK クラスターへの接続が可能 (デフォルトは VPC 内からの接続のみ)
• 外部からのデータ移行などに活用可能
• セキュリティグループ、認証設定、暗号化などセキュアな設定が必須。また作成時に有効化することはで
きない
Public subnet
31. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK Serverless Cluster (Public Preview)
Service VPC
Customer VPC
AWS PrivateLink Amazon Managed
Streaming for Apache Kafka
Elastic network
interface
• 事前見積もり不要で利用可能。最大 200 MB/s (書き込み)、400 MB/s(読み取り) まで動的にスケール
• ブローカーインスタンス管理は不要。トピックのパーティション配置も自動で最適化される
• ブローカーインスタンス毎の課金は発生しない。保持データおよび書き込み、読み取りに対する課金。
クライアントは broker を意識する必要は無く、単一の
bootstrap エンドポイントを指定して接続する。
boot-xxxxxxxx.cN.kafka-
serverless.us-east-
2.amazonaws.com:9098
32. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon EMR
Spark, Hadoop, Hive, Presto, HBase などのビッグデータフレームワークを
簡単に低コストで実行可能
AWS サービスとの連携
❏フルマネージド:クラスター構築から構成変更、破棄まで
❏自動化:ライフサイクル(起動/実行/終了) を API で制御可能
❏コンピュートとストレージの分離 (EMRFS):
❖Amazon S3 上のデータを直接読み書き
❖必要な時だけクラスターを利用することでコスト削減
❏オートスケーリング: クラスターサイズをワークロードに応じて
自動変更
❏インスタンスフリート:スポット/オンデマンドキャパシティーを
組合せて クラスターコストを最適化
❏性能向上: 最適化された Spark / Presto ランタイムを利用可能
❏多様なデプロイメントモデル: on EC2 / on EKS / on Outpost
❏EMR Studio: フルマネージド型 Jupyter Notebooks を利用した統
合開発
Amazon EKS
新しいデプロイメント
(EMR on EKS)
Hadoop
Hadoop/Spark
Amazon EMR クラスタ
Amazon EC2
34. © 2022, Amazon Web Services, Inc. or its Affiliates.
プロビショニング |
オペレーション |
AWS の マネジメントとガバナンスサービス
準備 |
ビジネスアジリティ + ガバナンスコントロール
AWS
OpsWorks
AWS
Marketplace
AWS
CloudFormation
AWS
Service Catalog
拡張とインテグレーション
AWS
CloudTrail
AWS Systems
Manager
AWS
Config
AWS
Cost Explorer
AWS Trusted
Advisor
Amazon
CloudWatch
AWS Cost and
Usage Report
AWS
Control
Tower
AWS
Organizations
AWS
Budgets
AWS
License Manager
35. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Systems Manager 全体像
AWS および オンプレミス のサーバー群を管理する多機能なツールセット
スケジューリング
構成検証・監査
オペレーション(操作)
ログ/メトリクス
CloudWatch
SSM
Maintenance
Window
CloudWatch
Events
SSM
State Manager
SSM
Inventory
SSM
Patch Manager
SSM
Session Manager
SSM
RunCommand
SSM
Automation
SSM
Distributor
対話型アクセス
Logs Metrics
ランブック実行 スクリプト実行
パッケージ配布
EC2インスタンス群
SSM
Change
Calendar
設定/ドキュメント
SSM OpsCenter
Dashboard/作業管理
SSM
Parameter
Store
SSM
Document
要対応作業
確認
インベントリ
情報
OS
パッチ
適用
定期
Automation
実行
SSM Agent
(SSMマネージド
インスタンス化の前提)
SSM Explorer
マネージド
ノード概観
SSM
Compliance
Compliance
準拠情報
SSM
Fleet Manager
SSM
Change
Manager
OS内
情報
管理された
変更操作
エンジニア
インシデント管理
SSM
Incident Manager
インシデント
対応
36. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CloudShell
38. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon DynamoDB
どんな規模にも対応する高速で柔軟な キーバリュー データベース
高いセキュリティ
デフォルトですべての
データを暗号化
堅牢なセキュリティのためAWS
Identity and Access
Managementと完全に統合
スケールに応じた
パフォーマンス
規模に関係なく、一貫した
数ミリ秒台の応答時間を実現
事実上無制限のスループットで
アプリケーションを構築可能
グローバルデータベース
複数のAWSリージョンにまたがりテーブルを
簡単に複製することで、ローカルデータに
素早くアクセスできるグローバルアプリケー
ションを構築
サーバーレス
サーバーのプロビジョニング、ソフト
ウェアのパッチ適用、アップグレードは
不要
自動スケールアップ/ダウン
データの継続的なバックアップ
39. © 2022, Amazon Web Services, Inc. or its Affiliates.
Amazon RDS Custom の位置付け
On-premises
Scaling
Patching
Backups
High availability
Hardware
EC2
Scaling
Patching
Backups
High availability
Hardware
RDS
Scaling
Patching
Backups
High availability
Hardware
ユーザー管理
RDS Custom
Scaling
Hardware
High availability
Backups
Patching
AWS 管理
共有管理
全てユーザー管理 フルマネージド
RDS Custom
• インスタンス / OS に対する Full control 権限
• ユーザー管理のパッチ適用
• 3rd Party アプリケーションの利用
• RDS で利用できない機能 の利用
• ユーザーの責任範囲は増える
40. © 2022, Amazon Web Services, Inc. or its Affiliates.
RDSと RDS Custom の主な違い
Amazon RDS Amazon RDS Custom
OSはAWSによって完全に
マネージされるため、データ
ベースへのアクセスが一部
限定される
データベースに接続する
ためのエンドポイントを
AWSが提供する
一貫した提供モデル
99.95 SLA を提供
データベースとOSへの完全な
アクセスを提供
全てのリソースがお客様の
AWSアカウント内に維持される
所有モデルと共有モデルが
混合された提供モデル
SLAの提供はなし
42. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Elastic Load Balancing (ELB)
特徴 (http://aws.amazon.com/jp/elasticloadbalancing/)
• 複数の EC2 インスタンスに負荷分散
• 複数の AZ に跨って高レベルの耐障害性を実現
• ELB 自体が自動的にキャパシティを増減
4 種類のロードバランサーを提供
• Application Load Balancer(ALB)
• Network Load Balancer(NLB)
• Gateway Load Balancer (GWLB)
• Classic Load Balancer(CLB)
→ 基本的に ALB (L7) か NLB (L4) の利用を
クラウドネットワークのロードバランサー
アベイラビリティ ゾーン a
ユーザー
アベイラビリティ ゾーン b
ELB
EC2 EC2
myLB-xxx.elb.amazonaws.com
43. © 2022, Amazon Web Services, Inc. or its Affiliates.
AWS Region 1 AWS Region 2
3.10.3.125
3.10.3.125
同一IPでアクセス
リージョンに誘導
される
44. © 2022, Amazon Web Services, Inc. or its Affiliates.
1. Private DNS
DNS Resolver 1
DNS Resolver 2
Route 53 Resolver
45. © 2022, Amazon Web Services, Inc. or its Affiliates.
AWS Network Firewall
VPCのサブネットに配置するマネージドファイアウォールサービス
Firewall subnet
Firewall endpoint
Public Subnet
NAT Gateway
Private Subnet
EC2
Internet gateway
• スケーラブル
• 45Gbps超
• マネージド
AWS Network Firewall
46. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Transit Gateway+DirectConnectでAWS経由のインターネット接
続
• 既設のインターネット回線と比べて高品質 / 低コスト化に繋が
る可能性
• セキュリティ:全インターネットトラフィックの記録 / 制限 /
監査も可能
オフィス
192.168.0.0/16
AWS リージョン
Transit VIF
Direct
Connect
Gateway
Attach
Direct Connect 接
続
Transit
Gateway
AWS
ルーター
Attach
Attach
Attach
Route Destination
192.168.0.0/16 Office
0.0.0.0/0 VPC-O
TGW route table に
インターネット用の
VPC 向けの経路
Internet
Gateway
Internet
Route Destination
0.0.0.0/0 IGW
10.1.0.0/16 local
192.168.0.0/16 TGW
VPC の Route Table
に戻りの経路
NAT
Gateway
47. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
PrivateLinkによるサービス利用
Service Consumer Service Provider
NL
B
VPCE
サービス提
供側
サービス利
用側
region
VPC VPC
48. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Direct Connect SiteLink
• AWSグローバルネットワークバックボーンを介してオンプレミスネットワーク間を接続
• 32カ国、108箇所の DX ロケーション間で直接通信可能
• 東京、大阪を含む中国を除くすべての DX ロケーション、リージョンで利用可能
50. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon SNSがFIFOをサポート
• 順序性が大事なビジネスロジックの処理に、Amazon SQSのFIFOキューと
組み合わせて実行可能
• こちらのBlogもご参照ください。
https://aws.amazon.com/jp/blogs/news/introducing-amazon-sns-fifo-first-in-
first-out-pub-sub-messaging/
51. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Step Functions
コンソールで視覚化
JSONで定義(Amazon States Language) 実行結果をモニタリング
52. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon EventBridge アーキテクチャ
AWS services
Custom events
SaaS apps
Partner event
source Rules
Default event bus
Custom event bus
SaaS event bus
Amazon EventBridge
53. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS LambdaのVPCリソースアクセス
• Blog記事 [発表] Lambda 関数が VPC 環境で改善されます
https://aws.amazon.com/jp/blogs/news/announcing-improved-vpc-
networking-for-aws-lambda-functions/
• ネットワークインターフェイス
の作成はLambda関数の作成時
• アカウント内のセキュリティ
グループ、サブネット単位に
ENIを共有
54. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon RDS Proxy 全体像
AWS Lambda
Ruby, PHP, …
接続プーリング
シームレス
フェイルオーバー
アプリケーション
セキュリティの向上
アプリケーション RDS Proxy RDS
AWS IAM AWS Secrets Manager
Amazon RDS
Amazon Aurora
55. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
接続プーリング
接続プーリング
• 接続の開閉に伴うデータベースの負荷 (TLS/SSL のハンドシェイク、認証、ネゴシ
エーション機能などのCPU負荷など) を削減
接続の多重化
• 接続の再利用により、データベース接続に必要なコンピューティングリソース (主
にメモリ) を削減
• max_connections エラーの発生頻度の抑制。
アプリケーション RDS
RDS
Proxy
大量の接続要求に対する
データベース負荷を削減
より多くの処理が
実行可能になる
57. © 2022, Amazon Web Services, Inc. or its Affiliates.
Amazon EBS イノベーション
2008 2010 2012 2014 2016 2018 2020
スタンダードと
スナップショット
io1
Amazon EBS
最適化
io2
sc1/st1
暗号化
ボリューム
高速スナップ
ショット復元
Direct
APIs
Data Lifecycle
Manager
マルチ
アタッチ
gp2
エラスティック
ボリューム
256,000 IOPS
4,000MB/s
EBS Block
Express
と SRD
58. © 2022, Amazon Web Services, Inc. or its Affiliates.
© 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
S3を中心としたデータ連携
Amazon S3
データ分析 コンテンツ配信
機械学習
ストリームデータ
BI
Amazon Personalize Amazon Polly
Amazon Rekognition Amazon SageMaker
AWS Glue Amazon
Redshift
Amazon
Athena
Amazon
QuickSight
Amazon EMR Amazon
EMR
Amazon
Kinesis
AWS IoT
Analytics
AWS IoT
Core
Amazon
CloudFront
AWS Elemental
MediaLive
Amazon Kinesis
Data Analytics
Amazon
Glacier
ETL
データレイク管理
AWS Lake Formation
データ転送
AWS
Backup
AWS
Transfer for SFTP
バックアップ&
アーカイブ
AWS Snowball
59. © 2022, Amazon Web Services, Inc. or its Affiliates.
Amazon S3 のネーミングスキーマ
S3: //ExampleAWSbucket/Logistics/packing-list.pdf
オブジェクトはバッケット内にフラットに格納される。
キーのパス指定でフォルダ階層のように表示も可能。「/」を区切り記号として、
マネジメントコンソールでは、フォルダ構造を表現する。
A
B
C
D
E
A B C D E
60. © 2022, Amazon Web Services, Inc. or its Affiliates.
S3 バッチオペレーション
数千、数百万、数十億のオブジェクトに対するAPIアクションを一括実行
- S3 インベントリ(CSV)
- CSVファイル
- COPY (PUT Object Copy)
- S3 Glacierからのリストア
- PUT ObjectACL
- PUT Object Tagging
- Lambda関数の呼び出し
- オブジェクトレベルの進捗
- ジョブの通知・状態
- 完了レポート
オブジェクトの選択 オペレーションの選択 進捗の確認
61. © 2022, Amazon Web Services, Inc. or its Affiliates.
Amazon S3 – 強力な書き込み後の読み取り整合性
• Amazon S3 が従来の結果整合性モデルから、強力な書き込み後の読み取り整合性
を提供するモデルに Update
• すべてのリージョンで自動で有効化されており追加料金なしで利用可能
既存ファイル
This is a pen
PUT File A
I love you
GET File A
I love you
または
This is a pen
GET File A
I love you
結果整合性により
古いデータが読める
可能性がある区間
既存ファイル
This is a pen
PUT File A
I love you GET File A
I love you
GET File A
I love you
強力な書き込み後の読み取り整合性
書き込み後には
常に新しいデータを
読み取ることを保証
62. © 2022, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
想定される課題と対策 => ベストプラクティス
課題 対策
偶発的な情報の開示
IAMによる適切な権限管理
VPCネットワークの理解
Block Public Access / Owner Enforce
暗号化
データの不整合
IAMによる適切な権限管理
データの整合性チェック
バージョニング / Object Lock
過失による削除
バージョニング/ Object Lock
MFA Delete
証跡の取得、ユーザー行動の変化を観察
AWS CloudTrail によるログ取得
Amazon Macie の利用
インフラストラクチャの可用性
S3の耐久性、ストレージクラスの理解
クロスリージョンレプリケーション
63. © 2022, Amazon Web Services, Inc. or its Affiliates.
S3のSecurityにおけるアンチパターン打破例
• S3のSecurity関連
• Block Public Accessにより、意図しないバケットの公開設定を防ぐことが可
能に(2018-11)
• アクセスポイントの活用で、バケットポリシーなどの記載を簡素化。ポリ
シーを記述できるサイズ上限等に到達しないようにデザインしやすくなった
(2019-12)
• S3バケットキーにより、暗号化時のKMSへのリクエストコスト&スロットリ
ング懸念が不要になった(2020-12)
• オンプレから閉域でS3にアクセスするときにEC2上にProxyをおいていたが、
S3 Interface endpointにより不要に(2021-02)
• S3 Bucket Owner Enforced により、 AWS サービスアカウントなど別アカウ
ントから配信されるオブジェクトのオーナーを, バケット所有アカウントに変
更するために Lambda で処理する必要が無くなった(2021-12)
65. © 2022, Amazon Web Services, Inc. or its Affiliates.
New Amazon Inspector
ソフトウェアの脆弱性や意図しないネットワ
ーク露出領域を継続的なスキャンで検知する
脆弱性管理サービス
以下のサービスに対応
• Amazon Elastic Compute Cloud
(Amazon EC2)
• Amazon Elastic Container Registry
(Amazon ECR)
Amazon EC2 Amazon ECR
Amazon Inspector
66. © 2022, Amazon Web Services, Inc. or its Affiliates.
AWS Security Hub
• アラートを集約して時間を節約
• 脅威検出結果、脆弱性スキャン結果、機密データ識別結果など、
お客様の環境で発見された
セキュリティサービスから結果を集約
• 優先順位付けの問題の概要を表示
• AWS Security Hub は数分以内に、すべての調査結果を統合ダッ
シュボードに関連付け、現在の
セキュリティとコンプライアンスの状態を視覚化
• コンプライアンスチェックの自動化
• 業界標準やベストプラクティスに基づいて、継続的なアカウン
トレベルの設定とコンプライアンスチェックを実行
68. © 2022, Amazon Web Services, Inc. or its Affiliates.
まとめ
https://bit.ly/awsxon19-antipt
テキストで一覧できます
69. © 2022, Amazon Web Services, Inc. or its Affiliates.
アンチパターンまとめ
アンチパターンはリファクタリング方法が存在する
3つの避けるべき、タイミング別のメタアンチパターン
机上の空論アンチパターン
塩漬けアンチパターン
TCO無視アンチパターン
前回(2018年5月)から2022年初頭までに葬ったアンチパターン
いくつあるのか誰もわからない。。
https://bit.ly/awsxon19-antipt
テキストで一覧できます
Editor's Notes Observability等AppRunner or ProtonSecurity? AWS サポートのアンチパターンと言えば「技術的なお問い合わせに関するガイドライン」ですかね。おそらく、2019 年の頭に公開されているようです。 これまで、数多くのAWS成功例がうまれていった。。
その成功例は「パターン」として受け継がれ。。
そして、それらは時に「秘伝のたれ」「さわってはいけないもの」とされてきた。。
メタデータについてやむを得ない事情があることは承知の上でいうけど, それが必要なアーキテクチャー自体がアンチパターンな気もする
2020/02/21: 更新。新たにLambdaが割引対象に追加。
2020/04/06: 更新。Organizationsのメンバーアカウントから推奨事項が確認可能に。
2020/05/10: 更新。価格改定により、EC2 Instance Savings Plansの一部のEC2インスタンスタイプで、従前に比べて最大18%の値下げ。
2020/08/11: 更新。新たにFargate (for EKS) が割引対象に追加。
2020/09/25: 更新。Savings Plansの予約が可能に。
2020/11/09: 更新。Savings Plansの有効期限前と予約購入前にアラート発報が可能に。
2021/01/26: 更新。Wavelength ZonesにおけるEC2 Instance Savings Plansの記述を追記。
2021/04/23: 更新。新たにSageMaker Savings Plansが購入可能に。
S3を直接検索できるRedshift Spectrum によりS3のデータの事前ロード不要に(2017-04)
ピーク需要に備えるためにデータマートを作るなど複雑なシステムが不要に。Concurrency Scalingにより同時ユーザとクエリからの一時的な大量使用要求に対応(2019-03)
RA3登場。ストレージとコンピュートどちらかだけの理由でのスケール調整が不要に(2019-12)
クラスタ再配置機能がRA3に実装され、AZ障害対応のためにスナップショットを使った別AZ復元等が不要に(2020-12)
Redshift Spectrum で読み込むS3データをクリーンに維持する必要があったが、予期せぬ値があっても処理可能とするカスタムデータ検証で不要に(2022-01)
仮に両者がミートアップしても、ビジネスの成立には様々な障壁がある
DataExchangeにより
データ流通基盤を自前で作る必要がなくなった(2019-11)
特定のクローズな社内・社外対象者に対してのみデータを提供、販売する作り込みが、Private Productで不要に(2020-11)
昨年新たにPrivate Productsという機能が搭載された。
これにより、社外向けに広くデータを販売・提供する以外に、特定のクローズな社内・社外対象者に対してのみデータを提供、販売することが可能になっている。
この場合のADXを活用する利点として、データ提供者は全てのデータをどのユーザーが取得したのかがレポートとなって閲覧できるため、データのガバナンスが聞きやすくなることが挙げられる。
なお、ADXでのデータ出品は無償でのサンプルデータの提供も可能となっている。 AppFlow にイマイチな部分が多くアンチパターン滅ぼすとまではいかないのですが
SaaSなどの外部サービス、AWSサービス間のデータ連携作り込みが不要に(2020-04)
Glue 2.0 (現在の最新版は3.0) でジョブの起動にかかる時間が1分以内になり、それを待てない場合のワークアラウンドとしてなされていたクラスタを再利用するための定期実行が不要になった(2020-08)
AthenaがGlueのパーティションインデックスをサポートした。これで、時単位などの大量パーティションでクエリー劣化を心配する必要がほぼなくなった(2021-12)
Interactive Sessionsが登場したことにより、インタラクティブな開発やアドホッククエリがEphemeralなクラスタで利用できるようになり、Development endpointを常時起動する必要がなくなった。(2021-12)
データベースやテーブルの粒度でアクセス権限を制御できるようになり、IAMポリシーやS3バケットポリシーでS3オブジェクトレベルで細かく許可・拒否する必要がなくなった(2019-08)
Lake Formationで管理したテーブルとそのデータを別のアカウントに共有できるようになり、アカウントごとにデータを複製する必要がなくなった(2020-10)
行レベルセキュリティに対応したことで、行を絞り込んだデータを二重持ちする必要がなくなった(2021-12)
複数AZにデータを複製して高い耐久性を提供
クラスターを監視して障害復旧やパッチ適用を自動化
VPCによる隔離と保存データ暗号化によるセキュリティ
Public Accessがサポートされ、MSK clusterに対するNLB不必要に(2021-11)
Serverless Clusterにより事前クラスタ準備不要に (Public Preview)
https://docs.aws.amazon.com/msk/latest/developerguide/serverless-config.html
Public Accessがサポートされ、MSK clusterに対するNLB不必要に(2021-11)
https://docs.aws.amazon.com/msk/latest/developerguide/serverless-config.html
Serverless Clusterにより事前クラスタ準備不要に (Public Preview)
EMR Serverless Clusterにより事前クラスタ準備不要に(2021-12 Preview)
EMR Studio SQL Explorer で、データカタログを表示および閲覧することが可能に。そのための自前での準備不要に。(2022-01)
2021の最大のリリース!
CloudFormationの rollback disable機能。CFn作成時のトライアンドエラーにかかる時間が劇的に短くなります。https://aws.amazon.com/jp/blogs/news/new-for-aws-cloudformation-quickly-retry-stack-operations-from-the-point-of-failure-2/
Control Towerのアカウントを払い出し機能が便利。事前に承認されたアカウント設定で新規アカウントのプロビジョニングができる(2019-06)
容易に利用開始できるが、既存アカウントへの適用やカスタマイズに制限あり
これからAWSを利用する場合に利用
「独自の再発明をCTつかってやめにしましょう」
踏み台サーバー を用意していたのが、AWS Systems Manager Session ManagerでLinux用が不要に(2018-09)
踏み台WindowsやSSMポートフォワーディングなく、FleetMangerがGUI接続を可能に(2021-11)
そこで、AWS は AWS CloudShell を開発しました
AWS CloudShell はマネージメントコンソール上部のアイコンから起動を行え
このようなシェルがブラウザ上に表示され、ターミナルとしてコマンドを実行できます
CloudShell
手元のsshできる端末不要に。Webブラウザで済む(2020-12)
そういった課題を解決できるのがAmazon DynamoDB
こういった特徴がある、次のスライドからDynamoDBの特徴について触れて行く
Amazon DynamoDB Continuous Backups. Streams経由でデータとっておいたりとかDataPipelineとかそういうのが必要なくなった(2018-03)
DynamoDBのキャパシティ管理がオンデマンドモードで解消(2018-11)
DynamoDB の Adaptive Capacity で, アクセスが集中するアイテムを分離するためのパーティション分割が自動的に行われるようにホットパーティションを特定して手動で対処する必要が無くなった (2019-11)
DynamoDBのS3エクスポートネイティブ対応。EMRとかDataPipelineなどが必要なくなった(2020-11)
RDS
RDS CustomによりDB on EC2の必要性が減る。Oracle既存ユーザーで諸々構成やOSカスタムしたいお客様の選択肢が拡がった(2021-10) MSSQLも(2021-12)
Gravition2対応
Graviton2対応。マネージドなのでミドルウェアの影響を心配する必要もなく、シンプルにコスト性能比が上がった。ElastiCacheやOpenSearchなども同様。コストを気にしたアンダーサイジング減少(2021-03)
Network Load Balancerの登場により、prewarm不要に(2017-09)
NLBがIPv6サポート。Classic Load Balancerが不要に(2020-11)
Gateway Loadbalancerでアプライアンスを使うためのTransit GatewayやNLB+GRE構成が不要に(2020-11)
NLBのターゲットにALBが指定できるようになり, PrivateでもALBの固定IP実現のためのlambdaなどが不要に(2021-09)
Application Load BalancerのIPv6サポートと、ターゲットのIPv6サポート。ターゲットにIPv4が不要に(2021-11)
Application Load Balancer(ALB)がgRPCプロトコルをサポート。gRPCのトラフィックについてもルーティングや負荷分散が可能になった
ALBでこの機能を利用するためにはリスナープロトコルとしてHTTPSを選択肢、ターゲットグループのプロトコルバージョンとしてgRPCを選択する
今回のアップデートではターゲットグループのプロトコルとしてHTTP/2を設定することも可能に
クライアントからターゲットに対してエンドツーエンドでHTTP/2による通信が可能になった
Global Accelerator
DNSのみだったALBが、Global Acceleratorと組み合わせたPublic IP固定が可能に(2018-11)
Route53 resolver
オンプレミスやVPCで構成される場合に自前のDNS転送用のインスタンスが必要だったがAmazon Route 53 Resolver Endpoints for Hybrid Cloudで不要に(2018-11)
悪意のあるDNSクエリブロックにも自前のDNSが必要だったが、Amazon Route 53 Resolver DNS Firewallで不要に(2021-03)
アプライアンスを導入しなくてもVPC全体にファイアウォールを導入(2020-11)
オンプレミスからVPN/Direct ConnectでつなげたVPCを経由してインターネットに出るには、EC2上のアプリケーションプロキシが必要だったが、Transit Gatewayでインターネット用のVPCとつないで経路設定すれば不要に(2018-11)
PrivateLink
VPCピアリング/TransitGateway/VPN/DXなどで多数のネットワークを接続するとIPアドレスの重複に注意が必要だったが、PrivateLinkで調整不要に(2017-11)
これは先月のre:Invent 2021で発表された機能でして、AWSグローバルネットワークバックボーンを介してオンプレミスネットワーク間を接続するものです。
つまり、東京のオンプレミスデータセンター、オフィスと、アメリカのオフィスとを、Direct Connect で利用するバックボーンを経由して接続できるというものです。
これまではこういったオンプレミス間の折り返し通信に関しては、VPC=Virtual Private Cloud,灰色の部分、を経由する必要があったのですが、今回より簡単に、バックボーンを生かす形でできるようになりました、というもの。
通信としては、オンプレミスからは最寄りのDXロケーションにつながって、そこから先はAWSのグローバルなバックボーンですのえ、
この機能に関しては、オンプレミスのグローバル拠点同士を低遅延で繋ぎたいというお客様から現在複数お問い合わせいただいています。
SNS
SNSに順序付けと重複排除機能がなかったのでDynamoDBなど併用するケースが対応したため不要に(2020-10)
StepFunctions
StepFunctionsの使うAmazon States Languageが難しかったが、Workflow Studioの登場により視覚的に構築、調整できるように(2021-06)
StepFunctionsをLambdaから呼び出していたが、StepFunctionsがNativeなAPI呼び出しに対応したため不要に(2021-09)
外部イベントソースからの情報を受けるためにAPIGWなどが必要だったが、EventBridgeにより不要に(2019-07)
VPC内部リソースへのアクセス時のコールドスタート問題が大幅改善(2019-09)
VPC Lambda起動時のENI作成時にIP枯渇の恐れがあったが、subnet x security group単位の共有化により払拭(2019-09)
LambdaからRDS/Aurora呼び出しのコネクション枯渇の恐れがあったが、RDS Proxy利用で払拭(2020-06)
max connections 自体を向上するソリューションではない
アプリケーションはRDS Proxy のエンドポイントに接続する
( 今までのエンドポイントも引き続き利用可能)
RDS Proxy に対する接続確立は必要なので、接続確立の時間が速くなるというメッセージは危険。
あくまでも データベースのCPUオーバーヘッドが削減される
レイテンシーは5ms程度乗る、というのが公式メッセージ
「Q: データベースには、Amazon RDS プロキシの使用ではなく直接接続をいつする必要がありますか?
ワークロードに応じて、Amazon RDS プロキシはクエリまたはトランザクションの応答時間に平均 5 ミリ秒のネットワークレイテンシーを追加できます。アプリケーションが 5 ミリ秒のレイテンシーを許容できない場合、またはRDS プロキシによって有効になっている接続管理やその他の機能が必要ない場合、アプリケーションをデータベースエンドポイントに直接接続することが可能です。」
https://aws.amazon.com/jp/rds/faqs/
Share database connections between transactions
Detection of session state altering operations causes pinning
Sets of system variables, sets of user-defined variables, calls of locking functions, tables locks, creates of temporary tables, prepares statement prepare call
Exclude specific variable sets from pinning
max_connection 自体を増やす機能ではない
not 一気型 but 段階型
要調査
・多分、その場型 (not 先回り型)
・最大物理接続数を超える場合 → エラー max_connections を超える or 待ち行列で待たせる?
・80%を指定した場合は80%を超えられる???
・アイドル状態 → 再利用 & プールに戻す (タイムアウト) EBS
EBSの1st touchペナルティを気にしてボリュームアクセスをするスクリプト等を使っていたが、EBS Fast Snapshot Restoreで払拭(2019-11)
S3のサービス紹介から、分析基盤、AI/ML基盤の話に戻します。各種サービスと3と連携しているのがこちらの絵となります。 ご覧の通り、各種データ分析、機械学習サービスの連携ができ、可視化をする意味ではBIのサービスにも連携ができます。
分析や機械学習をするにあたって、まずはデータを欠損させないようにすることは大変重要になっており、S3を中心に連携するのは鉄板の構成です。
Transfer Family
SFTPサーバのIPを固定化+特定外部IPのみ許可のために、NACLとNLBを使う方法があるが、セキュリティグループとEIPに対応したことで不要に(2020-01)
S3でパフォーマンス低下を防ぐためにプレフィクス名を変えるなどして分散させる必要があったが、不要に(2018-07)
S3バッチオペレーションにより、個別オブジェクト単位でのAPI Callが不要に(2019-04)
S3 が結果整合性から強い整合性へとなり、アプリケーション側でDynamo DBを併用するのが定石だったが、不要に(2020-12)
Block Public Accessにより、意図しないバケットの公開設定を防ぐことが可能に(2018-11)
アクセスポイントの活用で、バケットポリシーなどの記載を簡素化。ポリシーを記述できるサイズ上限等に到達しないようにデザインしやすくなった(2019-12)
S3バケットキーにより、暗号化時のKMSへのリクエストコスト&スロットリング懸念が不要になった(2020-12)
オンプレから閉域でS3にアクセスするときにEC2上にProxyをおいていたが、S3 Interface endpointにより不要に(2021-02)
S3 Bucket Owner Enforced により、 AWS サービスアカウントなど別アカウントから配信されるオブジェクトのオーナーを, バケット所有アカウントに変更するために Lambda で処理する必要が無くなった(2021-12)
OrganizationsでもSecurityHub、GuardDuty、Macie、Inspector、Detectiveが管理・統制できるようになった Private Subnet 内で Inspector (Classic) Agent を利用するために NAT GW が必要だったが、Inspector が刷新されたため NAT GW 不要に (SSM Agent むけのVPC-e経由で取得したインベントリ情報が使われる)(2021-11)
Security Hub
スクリプトなどが必要だったクロスリージョンのfindings集約がSecurity Hubによって集約できるように。全アカウント、全リージョンのGuardDuty、Inepctor、Macie等のFindinsを一つのコンソールから確認できるようになった(2021-10)