Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 29 Publicité

Plus De Contenu Connexe

Similaire à AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現 (20)

Plus par TIS Inc. (18)

Publicité

Plus récents (20)

AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現

  1. 1. © 2022 TIS Inc. AWSマネージドサービスとOSSによる ミッションクリティカルなシステムの実現 ・DXビジネスユニット ペイメントサービスユニット ペイメントプラットフォームサービス部 ・テクノロジー&イノベーション本部 開発基盤センター
  2. 2. © 2022 TIS Inc. 2 目次 はじめに 1 プロジェクト概要 2 SLO実現のためのアプローチ1:ソフトウェア 3 SLO実現のためのアプローチ2:AWS 4 さいごに 5
  3. 3. © 2022 TIS Inc. 3 目次 はじめに 1 プロジェクト概要 2 SLO実現のためのアプローチ1:ソフトウェア 3 SLO実現のためのアプローチ2:AWS 4 さいごに 5
  4. 4. © 2022 TIS Inc. 4 本セッションの想定対象者 ➢ 想定対象者 ✓ 金融・決済をはじめとするミッションクリティカルなサービスを モダンなアーキテクチャで構築したい ➢ 想定課題 ✓ 高可用サービスを実現するサーバーが高価でサービスの維持が困難 ✓ ハードウェア調達のリードタイムが事業成長スピードを阻害している ✓ 上記の課題を解決すべく、クラウドへシフトしたいがSLOの達成が困難 Design For Failure ってどうすればいいの?
  5. 5. © 2022 TIS Inc. 5 プロジェクト概要 ➢ 対象プロジェクト ✓ クレジットカード会社向けの決済系APIを処理するシステムの構築 ➢ 特徴 ✓ 高可用サーバーで稼働する既存サービスに対する大幅な機能強化とクラウド化 ➢ クラウド化におけるモチベーション ✓ ランニングコストを削減をしたい ✓ サービスの変化が早く拡張性を高めたい ✓ 運用ライフサイクルを効率化したい ➢ サービスレベル目標(抜粋) 項目 目標 想定処理件数 秒間 100リクエスト 日次 約200万リクエスト 月次 約6,000万リクエスト 目標レスポンスタイム レスポンスタイム 1秒以内 遵守率 99% 稼働率 99.99%(年間約52分程度の停止) お客様へ提供するサービス品質向上など より本質的な部分へ注力したい
  6. 6. © 2022 TIS Inc. 6 目次 はじめに 1 プロジェクト概要 2 SLO実現のためのアプローチ1:ソフトウェア 3 SLO実現のためのアプローチ2:AWS 4 さいごに 5
  7. 7. © 2022 TIS Inc. 7 高可用性と高スループットの実現手段 【従来】 ハイスペック かつ 高価なサーバー 【今回】 オープン環境 = 分散システム 『安価』かつ『スピーディー』に柔軟なサービスを提供するため ソフトウェアレイヤーで高可用性と高スループットを実現
  8. 8. © 2022 TIS Inc. 8 『Lerna』とは MW Application HW Public Cloud Business Application MariaDB Keepalived HAProxy Project template Akka Terraform script A toolkit for building highly concurrent, distributed, and resilient message-driven applications Lerna Apache Cassandra Library guides Reference Code Learning content Private Cloud VM OS VM OS オープンな環境で高可用・高スループットなシステムを実現するソフトウェアスタック ✓ クラウド・オンプレ等、プラットフォーム依存なし ✓ 「アクターモデル」「CQRS」「イベントソーシング」のアーキテクチャ ✓ TISでは決済サービス等のミッションクリティカルなシステムの構築に活用 ➢ ベンチマークスコア
  9. 9. © 2022 TIS Inc. 9 Lernaのアーキテクチャ Web AP DB ✓ 状態を持つAPとDBはネットワーク障害やDC障害 に耐性を持つ3ノード以上のクラスタリング構成 状態保持 状態保持 ✓ Keepalivedによる仮想IPアドレスの割り当 て、Master/Backupの切り替え ✓ SSL復号化はHAProxyで行いスケールアウ ト可能に アクターモデル ステートフルな アプリケーションで 高いスループットを実現 CQRS+イベントソーシング 2つのデータベースを利用 ・コマンドサイド:Cassandra ・クエリサイド:RDBMS ✓ 全レイヤを冗長化し、高速なフェイルオーバーを実現 ✓ サービスの成長に合わせて全レイヤがスケールアウト可能
  10. 10. © 2022 TIS Inc. 10 東京データセンター Lernaを適用したシステムの構成:プライベートクラウド版 VM 大阪データセンター Akkaクラスタ Apache Cassandraクラスタ RDB RDB ➢ コスト削減 ✓ 高価なハードウェアからの開放 ✓ HAProxy・アプリ・Apache Cassandraを同一VMに配置 ➢ 障害への備え ✓ 自社で運用するプライベートクラウドでマルチDC運用 ✓ VM停止時は瞬時にフェイルオーバー、VMは手動起動 ✓ Apache CassandraとRDBは非同期にDC間でデータ同期、 DC障害時は手動切替
  11. 11. © 2022 TIS Inc. 11 Lernaを適用したシステムの構成:AWS版? Amazon EC2 Akkaクラスタ Apache Cassandraクラスタ RDB RDB ➢ コスト削減 ✓ HAProxy・アプリ・Cassandraを同一VMに配置 ➢ 障害への備え ✓ 自社で運用するプライベートクラウドでマルチDC運用 ✓ VM停止時は瞬時にフェイルオーバー、VMは手動起動 ✓ CassandraとRDBは非同期にDC間でデータ同期、 DC障害時は手動切替 Lernaはプラットフォーム依存がなく、単純にAmazon EC2に置き換えることでAWS上へ構築可能 AWS Cloud Tokyo Region Osaka Region
  12. 12. © 2022 TIS Inc. 12 課題は解決したか? ➢ 当初の課題 ✓ 高可用サービスを実現するサーバーが高価でサービスの維持が困難 ◎ ソフトウェアレイヤーで実現することでハードウェア費用を削減 ✓ ハードウェア調達のリードタイムが事業成長スピードを阻害している ◎ AWSにより調達スピードアップ ✓ 上記の課題を解決すべく、クラウドへシフトしたいがSLOの達成が困難 ◎ 障害時、高速にフェイルオーバーする「Lerna」により達成 モダンなアーキテクチャとは!? コスト削減 拡張性 高可用性
  13. 13. © 2022 TIS Inc. 13 もうひとつの課題 クラウドのメリットを享受し運用作業を軽減することで よりお客様向けのサービス品質向上に努めたい 可用性 スループット 運用コスト 評価 ◎ ◎ △ Lerna 99.9999% 1,000TPS - PJ 99.99% 100TPS - ハードウェア/ソフトウェア 人件費 ○ △ すべてAmazon EC2上に構築するとミドルウェアの運用負荷が高く、かつ、有識者のアサインが必要
  14. 14. © 2022 TIS Inc. 14 ➢ 運用負荷軽減 ✓ 可用性を維持しつつ積極的にマネージドサービスを活用 ➢ 障害頻度増への備え ✓ アプリ、Cassandra停止時はAWSの機能により自動復旧 ➢ 大規模障害への備え ✓ マルチAZ、マルチリージョン構成 ✓ リージョン障害時は1時間以内で切替 Lernaを適用したシステムの構成:AWS版<改> AWS Cloud Tokyo Region AZa AZd AZc アプリ AWS Fargate Cassandra RDB Amazon Aurora Auto Scaling group Amazon EC2 API Gateway Network Load Balancer Osaka Region AZa AZc AZb アプリ AWS Fargate Cassandra RDB Amazon Aurora Auto Scaling group Amazon EC2 API Gateway Network Load Balancer Route 53 外部接続先 東京 データ センター AWS Cloud 外部 システム Design for Failure
  15. 15. © 2022 TIS Inc. 15 Akkaクラスタ ポイント 1/2:アプリケーションを Amazon EC2 から コンテナへ AZa ECS サービス Tokyo Region AWS Fargate AZc AWS Fargate AZd AWS Fargate ➢ アプリケーションがダウンしたときにECSサービスを自動回復 ✓ 回復後にAZの偏りが発生しない ✓ Akkaクラスタへの再ジョインとApache Cassandraからの状態回復はアプリレイヤで行う
  16. 16. © 2022 TIS Inc. 16 ポイント 2/2:Apache CassandraをAWS上で運用 ➢ Amazon DynamoDB/Amazon Keyspaces の導入は断念 ➢ Amazon EC2停止時はAuto Scaling Groupで自動復旧 ✓ IP変更なし ✓ ディスクアタッチ
  17. 17. © 2022 TIS Inc. 17 解決した課題 ➢ 当初の課題 ✓ 高可用サービスを実現するサーバーが高価でサービスの維持が困難 ◎ ソフトウェアレイヤーで実現することでハードウェア費用を削減 ✓ ハードウェア調達のリードタイムが事業成長スピードを阻害している ◎ AWSにより調達スピードアップ ✓ 上記の課題を解決すべく、クラウドへシフトしたいがSLOを達成できない ◎ 障害時、高速にフェイルオーバーする「Lerna」により達成 ➢ もうひとつの課題 New! ✓ ミドルウェアの運用負荷が高く、かつ、有識者のアサインが必要 ◎ マネージドサービスの活用と自動復旧により運用負荷を削減 LernaによりSLOを実現し、AWSを活かし運用負荷を最適化 コスト削減 拡張性 高可用性 運用負荷軽減
  18. 18. © 2022 TIS Inc. 18 ➢ Lernaをはじめるには ✓ TISインテックグループの開発ノウハウ集約サイト『Fintan』へ AWSに関するノウハウ多数公開中! https://fintan.jp/page/503/ ➢ (事例)決済統合GW ✓ さまざまな決済手段へ、スピーディーに接続できるゲートウェイサービス ✓ QR決済など大量アクセスが発生しかつ高可用性が求められるサービス向けAPI提供 現在、外部公開に向けて準備中! OSS Lerna の活用に向けて 決済事業者A 各種サービス 決済事業者C 決済統合GW 決済事業者B 銀行 クレジット
  19. 19. © 2022 TIS Inc. 19 目次 はじめに 1 プロジェクト概要 2 SLO実現のためのアプローチ1:ソフトウェア 3 SLO実現のためのアプローチ2:AWS 4 さいごに 5
  20. 20. © 2022 TIS Inc. 20 ✓ 東阪マルチリージョン構成とすることで高可用なシステムを実現 リージョン障害が発生した際にも安定して稼働 AWS Cloud Tokyo Region AZa AZd AZc アプリ AWS Fargate Cassandra RDB Amazon Aurora Auto Scaling group Amazon EC2 API Gateway Network Load Balancer Osaka Region AZa AZc AZb アプリ AWS Fargate Cassandra RDB Amazon Aurora Auto Scaling group Amazon EC2 API Gateway Network Load Balancer Route 53 外部接続先 東京 データ センター AWS Cloud 外部 システム ①東阪で同等の構成 (Act-Stb構成) ②Cassandraの機能でデータ同期 ・AZ間はリアルタイム ・リージョン間は非同期 ③Aurora Global Databaseで リージョン間でのデータ同期 マルチリージョン構成
  21. 21. © 2022 TIS Inc. 21 AWSを活用して、以下の保守運用作業の効率化を実現 ➢ PCI DSS準拠 PAYCIERGE 高セキュリティクラウド基盤サービスを利用することで実現 ➢ AWSのマネージドサービスを活用することで安価に自動運用を実現 ✓ 無停止ローリングアップデートツール ✓ リージョン切り替え・切り戻しツール 保守運用作業の高度化
  22. 22. © 2022 TIS Inc. 22 ✓ ミドルウェアの運用負荷が高く、かつ、有識者のアサインが必要 例えば、Cassandraの無停止ローリングアップデートやリージョン切り替えでは それぞれ以下の作業が必要 ①AMIの取得 ②起動テンプレート新規バージョンの 作成 ③既存EC2インスタンスの停止 ④新規インスタンスの状態確認 Cassandra無停止ローリングアップデート ①東阪NW分離 ※東京リージョンの状態が不明のため 強制的に分離 ②東阪Cassandraの分離 ③東阪Auroraの分離 ④アプリ起動 ⑤DNS切り替え リージョン切り替え AWSを活用して実装した自動運用 Lerna・AWSどちらの知識も必要 ⇒個人のスキルに依存せず、負荷を低減させる仕組みを構築する必要がある
  23. 23. © 2022 TIS Inc. 23 ✓ Cassandra無停止ローリングアップデートのうち、赤枠部分を自動化 ✓ IP固定化、EBSボリュームの再利用も自動化 ✓ Step Functionsをフル活用、コーディングを最小限にすることで初期構築コストも最小限に ✓ Akkaの無停止ローリングアップデートも同様にStep Functionsで実装 Amazon EC2 AWS Systems Manager AWS Step Functions workflow Amazon EC2 ①AMIの取得 ②起動テンプレート新規バージョンの 作成 ③既存EC2インスタンスの停止 ④新規インスタンスの状態確認 Cassandra無停止ローリングアップデート 起動テンプレート新規バージョン 作成 既存EC2インスタンス停止 ⇒Auto Scalingにより 新規EC2インスタンス起動 RunCommandによる コマンド実行で 新規EC2インスタンスの Cassandra状態確認 Cassandra無停止ローリングアップデートの自動化 Cassandraの特性を踏まえた無停止アップデートを自動化
  24. 24. © 2022 TIS Inc. 24 ✓ リージョン切り替えのうち、赤枠部分を自動化 ✓ Step Functionsをフル活用、コーディングを最小限にすることで初期コストも最小限に ✓ 切り戻しについても同様にStep Functionsで実装 ①東阪NW分離 ②東阪Cassandraの分離 ③東阪Auroraの分離 ④アプリ起動 ⑤DNS切り替え リージョン切り替え AWS Step Functions workflow 東京リージョンを強制的に 切り離すためNACL変更 RunCommandによる コマンド実行で 東阪Cassandra分離 東阪Auroraを分離 Amazon VPC AWS Systems Manager Amazon RDS Amazon ECS 大阪リージョンで アプリ起動 リージョン切り替えの自動化 運用オペレータによる短時間(1時間以内)での切替を実現
  25. 25. © 2022 TIS Inc. 25 目次 はじめに 1 SLO実現のためのアプローチ1:ソフトウェア 3 SLO実現のためのアプローチ2:AWS 4 さいごに 5 プロジェクト概要 2
  26. 26. © 2022 TIS Inc. 26 まとめ 1/2 ➢ AWS上で高可用性サービスを構築するための2つのアプローチ ✓ アプリケーション Lernaの活用により、高可用性と費用削減を達成 ✓ インフラ AWSのアーキテクチャを活用した高可用なインフラを実現 マネージドサービスをフル活用し、保守運用作業の自動化 ✓ クラウドのメリットを享受した高可用なサービスを実現 ✓ 各種自動化の実装により高品質なサービスを低価格で提供
  27. 27. © 2022 TIS Inc. 27 更なる高可用性とサービス品質の向上により ミッションクリティカルなシステムでのAWS利用を当たり前に まとめ 2/2 ➢ 今後のチャレンジ ✓ リージョン切り替えを含めたさらなる自動化 個人のスキルに依存せず負荷低減、サービス品質向上などより本質的な部分へ注力 ✓ 環境構築の横展開 新たなサービスをスピーディーにお客様へ提供 ✓ カオスエンジニアリングによる耐障害性の強化(12月末Fintan公開) 高可用なシステムの品質向上
  28. 28. 28 ご興味を持っていただけましたら 弊社サービスページよりお問い合わせください。 決済に関するお役立ち資料&コラム満載! PAYCIERGEブランドサイト https://service.paycierge.com/ お問合せ先 AWSに関するお役立ち情報も多数掲載! TISインテックグループの開発ノウハウ共有サイト 『Fintan』 https://fintan.jp/
  29. 29. <本資料の取り扱いに関して> 本資料は、著作権法及び不正競争防止法上の保護を受けております。資料の一部あるいは全部について、 TIS株式会社から許諾を得ずに、複写、複製、転記、転載、改変、ノウハウ の使用、営業秘密の開示等を行うことは禁じられております。本文記載の社名・製品名・ロゴは各社の商標または登録商標です。

×