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

AWSにおけるコンテナサービスの変化と利用ユーザに求められることとは?

 AWSにおけるコンテナサービスの変化と利用ユーザに求められることとは?

yoshitaka KOITABASHI

December 09, 2022
Tweet

Other Decks in Technology

Transcript

  1. AWSにおけるコンテナサービスの変化と 利用ユーザに求められることとは? KOITABASHI Yoshitaka 2022/12/9 yoshii0110 1

  2. 2022/12/9 yoshii0110 2 KOITABASHI Yoshitaka @yoshii0110 Full Cycle Developer KDDIアジャイル開発センター株式会社

    AWS App Runner, AWS Fargate, Amazon SQS 🥷 🏢 💕
  3. 本日のセッションで話すこと・・・ • 話すこと • AWS におけるコンテナサービスについて • AWS App Runner

    / AWS Copilot やばいという話 • 責任共有モデルの話 • コンテナセキュリティと補助ツール • 話さないこと • コンテナについてや AWS の各コンテナサービスの詳細 • コンテナイメージ以外のセキュリティ 2022/12/9 yoshii0110 3
  4. AWS におけるコンテナサービス 2022/12/9 yoshii0110 4 コンテナオーケストレーションサービス イメージレジストリ データプレーン 関連サービス Copilot

    CLI AWS Proton AWS App Mesh AWS Cloud Map AWS App Runner Amazon CloudWatch Container Insights Amazon ECS Amazon EKS Amazon ECR
  5. コンテナサービス周りの変化 2014 2015 2016 2017 2018 2019 2020 2021 2022

    2022/12/9 yoshii0110 5 Amazon ECS Amazon ECR AWS Fargate Amazon EKS AWS Copilot AWS App Runner AWS Proton
  6. 各サービスを組み合わせると 2022/12/9 yoshii0110 6 Amazon EKS Amazon ECR Amazon ECS

    Container Container Container Container Container Container Container Container コンテナの 実行環境 コンテナ オーケストレータ イメージレジストリ AWS Fargate Amazon EC2
  7. Amazon ECS を使用したアーキテクチャ例 2022/12/9 yoshii0110 7 • ネットワークの設定 • Amazon

    VPC • ELB など • コンテナ実行環境の設定 • Amazon EC2 • AWS Fargate • オンプレ (AWS Outposts/ EKS Anywhere / ECS Anywhere) • Edge / 5G (AWS Local Zone / AWS Wavelength) • コンテナイメージのBuild から Deploy の自動化設定 • Codeシリーズ
  8. めんどくさくないですか? 2022/12/9 yoshii0110 8

  9. AWS App Runner 2022/12/9 yoshii0110 9 Webアプリを仕様に合わせデプロイすると・・・? • コンテナ管理とかVPC周り •

    ALB、NLB • scaling • 自動化するならcodebuildとか • => App Runnerがこれらをまとめて (隠蔽して) 提供してくれる。
  10. AWS App Runner 上で アプリケーションをデプロイ 2022/12/9 yoshii0110 10

  11. AWS App Runner 上のアプリケーションにおける ネットワーク設定 2022/12/9 yoshii0110 11

  12. AWS Copilot • Amazon ECS CLI の後継にあたるもの • ECS CLI

    は、Amazon ECS 環境に対する コンテナデプロイのためのツール • AWS Copilot がなぜ登場したのかいうと、 より ECS (App Runnerへのデプロイも対応)でコンテナを実行したいとなった時の ワークフローをシンプルにするためというモチベーションがある 2022/12/9 yoshii0110 12 https://github.com/aws/copilot-cli/
  13. AWS Copilot を触ってみると Copilot CLI のインストール 2022/12/9 yoshii0110 13 Dockerfileを用意

    Copilot CLI のコマンド実行
  14. AWS Copilot で作成した資源の見え方 2022/12/9 yoshii0110 14 • 既存のコンテナサービスへのデプロイのワークフローを シンプルにするだけなので、資源自体は存在

  15. 責任共有モデル 2022/12/9 yoshii0110 15 https://aws.amazon.com/jp/compliance/shared-responsibility-model/

  16. 責任共有モデルの違い 2022/12/9 yoshii0110 16 App Language Runtime OS EC2 Instance

    Hypervisor Hypervisor Customer responsibility AWS responsibility Amazon EC2 Amazon ECS AWS Fargate AWS App Runner Physical Server(s) Physical Server(s) Physical Server(s) ALB CI/CD App Language Runtime App Language Runtime Container Orchestration Agent OS EC2 Instance Customer responsibility AWS responsibility Container Orchestrator ALB CI/CD ALB CI/CD Hypervisor App Language Runtime App Language Runtime Container Orchestration Agent OS EC2 Instance Container Orchestrator Physical Server(s) ALB CI/CD Hypervisor App Language Runtime App Language Runtime Container Orchestration Agent OS EC2 Instance Container Orchestrator OR Auto Scaling Auto Scaling
  17. コンテナセキュリティの全体像 2022/12/9 yoshii0110 17 コンテナイメージ イメージレジストリ オーケストレータ 実行されている コンテナ コンテナのホスト

    • イメージの脆弱性 • イメージの設定内容 • シークレットな情報 • etc.. • レジストリへの接続 • レジストリ内のイメージ • 認証認可 • etc.. • 管理者アクセス • オーケストレータノードの 信頼性 • etc.. • ランタイムの脆弱性 • コンテナへのアクセス • アプリの脆弱性 • etc.. • 共有カーネル • ホスト OS の脆弱性 • 不適切な ユーザアクセス権限 • ホスト OS ファイルシス テムの改ざん • etc.. NIST SP800-190「アプリケーションコンテナセキュリティガイド」 https://www.ipa.go.jp/files/000085279.pdf
  18. コンテナイメージ作成の補助となる静的解析ツール ① 2022/12/9 yoshii0110 18 https://docs.docker.jp/develop/develop-images/dockerfile_best-practices.html hadolint • Dockerfile の静的解析を行なってくれる

    lint ツール • Dockerfile のベストプラクティスに従っているかをチェック • VS Codeのエクステンションも存在 https://github.com/hadolint/hadolint brew 経由でのインストール Hadolint の実行コマンド例
  19. コンテナイメージ作成の補助となる静的解析ツール ② 2022/12/9 yoshii0110 19 dockle • コンテナイメージのセキュリティ診断ツール • コンテナイメージの静的解析

    • ベストプラクティスに従っているかをチェック • またベースとする OS イメージの設定内容に関するもチェック https://github.com/hadolint/hadolint brew 経由でのインストール dockle の実行コマンド例
  20. コンテナイメージ作成の補助となる脆弱性スキャンツール ① 2022/12/9 yoshii0110 20 Trivy • コンテナイメージの脆弱性スキャン • OS

    パッケージと言語特有の依存関係に対するスキャン • Dockerfile を含む IaC の静的解析 https://github.com/hadolint/hadolint brew 経由でのインストール trivy の実行コマンド例
  21. コンテナイメージ作成の補助となる脆弱性スキャンツール ② 2022/12/9 yoshii0110 21 Amazon Inspector • コンテナイメージの脆弱性スキャン •

    基本スキャン イメージをプッシュしたタイミングで手動/自動で実施 • 拡張スキャン イメージのプッシュ時および継続的に Inspector による プログラミング言語のパッケージを含めたスキャンも実施 https://docs.aws.amazon.com/ja_jp/inspector/latest/use r/enable-disable-scanning-ecr.html
  22. まとめ • AWS におけるコンテナサービスの変化 • 責任共有モデルの aws 側が責任を持つ領域が増えたサービスが 生まれている •

    正直利用するときはユースケースに依存 => カスタマイズを細かくしたいなどの要件を満たせないといった場合がある • より運用が楽になるサービスを使えるのであれば検討を • その際にユーザ側に求められる責任範囲には注視する 2022/12/9 yoshii0110 22
  23. 一緒に働くメンバー大募集中!! 2022/12/9 yoshii0110 23 全社員がアジャイルネイティブ。 今年設立したばかりの会社!!🏢 ワイワイやっているので、興味あればぜひ!✨