Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第1回_AWSアーキテクチャに関する勉強会/aws_architecture_study_se...

Renya K.
April 03, 2025

 第1回_AWSアーキテクチャに関する勉強会/aws_architecture_study_session_1

生成 AI 実用化推進プログラムに参画して得られたノウハウの共有です.

Renya K.

April 03, 2025
Tweet

More Decks by Renya K.

Other Decks in Science

Transcript

  1. © 2025 NTT DATA Japan Corporation 2 目次 • はじめに

    • 背景・目的・狙い • 開発した AI Agent ソリューション • 開発後の実運用時の課題 • 構築したアーキテクチャ • AWSリソース(ネットワーク周り) • VPC • Subnet • IGW • NAT Gateway • セキュリティグループ • ALB • Route 53 • ACM
  2. © 2025 NTT DATA Japan Corporation 4 背景・目的・狙い 背景 2024

    年度の AWS 生成 AI 実用化推進プログラムに参画した.本プログラムでは,AI Agent によるソリューションを AWS 上で開発し,実際に顧客に Web アプリケーションとして無料トライアル提供した. 目的 本勉強会では,本取り組みを通して得られたAWSに関するナレッジについて共有する. 狙い 各サービスの基本知識と AWS コンソール上でのサービスの確認方法をセットで理解すること.
  3. © 2025 NTT DATA Japan Corporation 5 開発した AI Agent

    ソリューション(1/2) Web 検索,デザイン案生成,画像生成を行う複数の Agent と,それらを統括する Supervisor Agent を利用した Multi Agent ソリューションを開発した.ユーザーの要望に合わせて最適な Agent を選択・連携し,効率良く業務を支援可能. Multi-Agentの図 (略)
  4. © 2025 NTT DATA Japan Corporation 6 開発した AI Agent

    ソリューション(2/2) ソリューションをアプリケーション化する際,Web UI フレームワークとして Streamlit を利用した.Streamlit を利用することで, Python で容易に Web アプリケーションを作成することが可能である. デモ動画 (省略)
  5. © 2025 NTT DATA Japan Corporation 7 開発後の実運用時の課題(1/4) 開発した Streamlit

    のアプリケーション(プロトタイプ)を顧客に利用してほしい場合,どのように利用してもらうのが良いか? 考慮すべき点が沢山ある. • 配信方法 • クラウド?オンプレ?(AWSなど or マシン購入) • 利用方法はインターネット経由?(ネットワークの知識) • アプリケーションはどこで実行する?(サーバーレス or コンテナ or EC2などの仮想サーバー) • HTTPS 経由でアプリケーションにアクセスするには?(ドメイン取得) • 利用者数が増えた場合,アクセス負荷に耐えられる?(可用性) • 実運用時,第三者でも運用・デプロイできる?(属人化) • アプリケーションのセキュリティ • 顧客の利用履歴はどう記録する?(データベース or CSV) • アプリケーションやネットワークセキュリティは?(ファイアウォール) • API キーなどの機密情報はどのように管理する?(シークレット管理) • 関係者以外アクセスできないようにするには?(指定のIPレンジに制限,ユーザー認証)
  6. © 2025 NTT DATA Japan Corporation 8 開発後の実運用時の課題(2/4) 開発した Streamlit

    のアプリケーション(プロトタイプ)を顧客に利用してほしい場合,どのように利用してもらうのが良いか? 考慮すべき点が沢山ある. • 配信方法 • クラウド?オンプレ?(AWSなど or マシン購入) • 利用方法はインターネット経由?(ネットワークの知識) • アプリケーションはどこで実行する?(サーバーレス or コンテナ or EC2などの仮想サーバー) • HTTPS 経由でアプリケーションにアクセスするには?(ドメイン取得) • 利用者数が増えた場合,アクセス負荷に耐えられる?(可用性) • 実運用時,第三者でも運用・デプロイできる?(属人化) • アプリケーションのセキュリティ • 顧客の利用履歴はどう記録する?(データベース or CSV) • アプリケーションやネットワークセキュリティは?(ファイアウォール) • API キーなどの機密情報はどのように管理する?(シークレット管理) • 関係者以外アクセスできないようにするには?(指定のIPレンジに制限,ユーザー認証) データサイエンティストは,これらの知見が多い訳では無い. (PoCが多く,実運用まで至るケースが多くない背景もある)
  7. © 2025 NTT DATA Japan Corporation 9 開発後の実運用時の課題(3/4) 開発した Streamlit

    のアプリケーション(プロトタイプ)を顧客に利用してほしい場合,どのように利用してもらうのが良いか? 考慮すべき点が沢山ある. • 配信方法 • クラウド?オンプレ?(AWSなど or マシン購入) • 利用方法はインターネット経由?(ネットワークの知識) • アプリケーションはどこで実行する?(サーバーレス or コンテナ or EC2などの仮想サーバー) • HTTPS 経由でアプリケーションにアクセスするには?(ドメイン取得) • 利用者数が増えた場合,アクセス負荷に耐えられる?(可用性) • 実運用時,第三者でも運用・デプロイできる?(属人化) • アプリケーションのセキュリティ • 顧客の利用履歴はどう記録する?(データベース or CSV) • アプリケーションやネットワークセキュリティは?(ファイアウォール) • API キーなどの機密情報はどのように管理する?(シークレット管理) • 関係者以外アクセスできないようにするには?(指定のIPレンジに制限,ユーザー認証) 生成 AI を API 経由で利用できるようになり, クイックにソリューションを開発できるようになってきた. ソリューションをクイックに運用し,多くの人に利用してもらい, 改善サイクルを回せるスキルが重要になってきそう.(私見)
  8. © 2025 NTT DATA Japan Corporation 10 開発後の実運用時の課題(4/4) 開発した Streamlit

    のアプリケーション(プロトタイプ)を顧客に利用してほしい場合,どのように利用してもらうのが良いか? 考慮すべき点が沢山ある. • 配信方法 • クラウド?オンプレ?(AWSなど or マシン購入) • 利用方法はインターネット経由?(ネットワークの知識) • アプリケーションはどこで実行する?(サーバーレス or コンテナ or EC2などの仮想サーバー) • HTTPS 経由でアプリケーションにアクセスするには?(ドメイン取得) • 利用者数が増えた場合,アクセス負荷に耐えられる?(可用性) • 実運用時,第三者でも運用・デプロイできる?(属人化) • アプリケーションのセキュリティ • 顧客の利用履歴はどう記録する?(データベース or CSV) • アプリケーションやネットワークセキュリティは?(ファイアウォール) • API キーなどの機密情報はどのように管理する?(シークレット管理) • 関係者以外アクセスできないようにするには?(指定のIPレンジに制限,ユーザー認証) AWS 生成AI 実用化推進プログラムでは,AWS の SA の方と議論し, これらの課題に対処した AWS アーキテクチャを検討した. 本勉強会では,その内容を共有する.
  9. © 2025 NTT DATA Japan Corporation 11 構築した AWS アーキテクチャ

    (1/2) Streamlit のアプリケーションを ECS でコンテナとして実行し,ネットワークの前段に ALB を配置して,AI Agent ソリューションを インターネット経由でWeb アプリケーションとして配信するためのアーキテクチャを実装した.これらを CDK で IaC 化している. AWS CDK
  10. © 2025 NTT DATA Japan Corporation 12 構築した AWS アーキテクチャ

    (2/2) (1)ネットワーク,(2) コンテナ運用・データベース,(3) 認証・セキュリティ・IaCに大別して,勉強会では解説する. 可能な限り,コンソール画面を共有しながらサービスについての理解を深めていく. (1) ネットワーク (2) コンテナ運用・データベース AWS CDK (3) 認証・セキュリティ・IaC
  11. © 2025 NTT DATA Japan Corporation 14 VPC AWS 上に構築されたプライベートネットワーク空間.ほとんどの

    AWS サービスは自身 or AWS が管理する VPC に属する. サブネットを定義してインターネットへの接続を設定したり,ルートテーブルでネットワークのフローを制御したりすることができる. ルートテーブルでパケットの 転送先を制御 EC2がパブリックサブネット内に デプロイされている インターネットゲートウェイ経由で, インターネット接続している https://d1.awsstatic.com/webinars/jp/pdf/services/20201021_AWS-BlackBelt-VPC.pdf
  12. © 2025 NTT DATA Japan Corporation 15 Subnet VPC 内部の

    IP アドレス範囲を分割したネットワークセグメント.インターネットに自由に接続できるパブリックサブネットと, インターネットに接続できないプライベートサブネットがある. パブリックサブネット内には, インターネットからアクセス可能 プライベートサブネット内には, インターネットから直接アクセス不可能 ↓ セキュア https://d1.awsstatic.com/webinars/jp/pdf/services/20201021_AWS-BlackBelt-VPC.pdf
  13. © 2025 NTT DATA Japan Corporation 16 インターネットゲートウェイ (IGW) VPC

    とインターネットを接続するための VPC コンポーネントであり,パブリックサブネット内のリソースが外部環境と通信できる. IGW経由で, パブリックサブネット内のリソースと インターネットの間で 双方向の通信が可能 https://d1.awsstatic.com/webinars/jp/pdf/services/20201021_AWS-BlackBelt-VPC.pdf IGW単体では, プライベートサブネット内のリソースは インターネットにアクセスできない ↓ NAT Gatewayが必要
  14. © 2025 NTT DATA Japan Corporation 17 NAT Gateway VPC

    内のプライベート IP アドレスと NAT Gateway 自身のプライベート IP アドレス間の変換を行うサービスであり, プライベートサブネット内のリソースが VPC 外のサービスや,インターネットに接続することができるようになる. デプロイするだけで6600円(/月) 程度コストが発生する. プライベートサブネット内から, NAT Gateway経由で インターネットにアクセス可能. https://d1.awsstatic.com/webinars/jp/pdf/services/20201021_AWS-BlackBelt-VPC.pdf https://dev.classmethod.jp/articles/vpc-nat-gateway-cloudwatch-dashbord/ IGWは,NAT GatewayのプライベートIPと NAT GatewayのグローバルIPアドレスを変換
  15. © 2025 NTT DATA Japan Corporation 18 セキュリティグループ ステートフルな Firewall

    であり,リソースと通信できる IP アドレスやポートを制御することができる. インバウンドルール(リソースに入っていく通信)とアウトバウンドルール(リソースから出ていく通信)を設定できる. 指定したIPアドレスレンジから, 80番ポートのアクセスを許可 http://~~~.com:80 でアクセス インバウンドトラフィック(行き)に対する応答の アウトバウンドトラフィックは,行きの通信が許可されて いる限り自動的に許可される. ↓ ステートフル https://d1.awsstatic.com/webinars/jp/pdf/services/20201021_AWS-BlackBelt-VPC.pdf https://dev.classmethod.jp/articles/vpc-nat-gateway-cloudwatch-dashbord/
  16. © 2025 NTT DATA Japan Corporation 19 アプリケーションロードバランサー (ALB) サーバーへリクエストを分散することで,サーバーの可用性と拡張性を高めることができる負荷分散装置.

    デプロイするだけで2500円(/月) 程度コストが発生する. https://d1.awsstatic.com/webinars/jp/pdf/services/20191029_AWS-Blackbelt_ELB.pdf
  17. © 2025 NTT DATA Japan Corporation 20 アプリケーションロードバランサー (ALB) リバースプロキシとして,SSL/TLS終端処理(クライアントからHTTPSで接続)を行うことも可能.外部からアクセスする際の

    プロトコルやポート(HTTPS or HTTP)を設定するリスナーと,ALB がフォワード先として指定するターゲットを設定する. https://d1.awsstatic.com/webinars/jp/pdf/services/20191029_AWS-Blackbelt_ELB.pdf
  18. © 2025 NTT DATA Japan Corporation 21 Route 53 DNS(ドメインネームシステム)ウェブサービスで,独自のドメインの登録(購入)や

    DNS ルーティングが可能. https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_Amazon-Route53-Intro_0530_v1.pdf
  19. © 2025 NTT DATA Japan Corporation 22 Route 53 DNS(ドメインネームシステム)ウェブサービスで,独自のドメインの登録(購入)や

    DNS ルーティングが可能. https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_Amazon-Route53-Intro_0530_v1.pdf
  20. © 2025 NTT DATA Japan Corporation 23 AWS Certificate Manager

    (ACM) SSL/TLS サーバー証明書のプロビジョニングや管理,自動更新を実現するサービス.ACM で発行した独自ドメインの証明書を ALB に関連付けることで,Webサービスなどを常時 SSL/TLS 化 (HTTPS 化) することができる. https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AWS-Certificate-Manager_v1.pdf HTTPSで通信することで, 通信の暗号化とサイト事業者の 安全性を証明