BOS‐08 はじめてのコンテナワークロード ‐ AWS でのコンテナ活用の第一歩 - novel-suzukikeisuke/study GitHub Wiki

なぜモダナイゼーションが必要か

  • 変化に迅速に対応し、イノベーションを促進するため

モダンアプリケーションとは

  • 最新のテクノロジー、アーキテクチャ、ソフトウェア配信プラクティス、運用プロセスを組み合わせたアプリケーション
  • 面倒な単純作業を削減できるので、チームがより多くの時間を顧客のための価値創造に充てられるようになる

ITシステムを取り巻く環境の変化

  • ユーザーの多様化
  • 手段の多様化
  • 社会や環境の変化

モダナイゼーションの遅れが与えるビジネスインパクト

  • 製品/機能のリリースサイクルの⻑期化
  • 非効率な運用、コストオーバーヘッド
  • セキュリティ/コンプライアンス対策の遅れ

モダンアプリケーションに求められる特性

  • アジリティ(高速な市場投入)
  • パフォーマンススケーラビリティ
  • セキュリティレジリエンシー
  • 最適なTCO高い生産性

モダナイゼーションの3つの柱

  • People => アジャイル, スクラム, DevOps, SRE
  • Process => CI/CD, IaC, オブザーバビリティ
  • Technology => コンテナ, サーバーレス マイクロサービス

なぜコンテナを利用するのか

  • アプリケーションに必要なものをパッケージングしているため、可搬性がある
  • 可搬性を活かし、デリバリ速度を高める

アプリケーションを構成するコンポーネント

  • ランタイム / エンジン
  • アプリケーションコード
  • 依存ライブラリ / パッケージ
  • 設定

コンテナイメージの管理方法

  • Dockerfile という形でコンテナイメージ の設計書をコードで記述可能
  • 再現性のあるビルドが可能になる

仮想マシンとコンテナ

  • 仮想マシンは 仮想マシンごとにゲストOSが必要
  • コンテナはOSから見ると1つのプロセス コンテナランタイムさえあれば動く

コンテナと設定をデプロイする

  • ランタイム/エンジン、ライブラリ、アプリケーションコードに差異がないためデリバリにおける手戻りが少なくなり、素早く価値を届けることができる

モダナイゼーションにむけて

  • コンテナ利用 ≠ モダナイゼーション
    • コンテナの可搬性の高さを活かし、変化に迅速に対応し、イノベーションを促進することが重要

AWS コンテナサービス紹介

オーケストレーション

  • Amazon ECS, Amazon EKS
  • コンテナのデプロイ、スケジューリング、スケーリング

レジストリ

  • Amazon ECR
  • フルマネージドなコンテナイメージレジストリ
    • セキュア - 保管イメージの自動的な暗号化
    • IAM連携、脆弱性スキャン

コンピューティング

  • AWS Fargate
  • コンテナ実行環境をサーバーレスに実現
    • AWS マネージドで、EC2 インスタンスのプ ロビジョン、スケール、管理などが不要
    • 仮想マシンを意識しない シームレスなスケーリングを実現
    • コンテナの起動時間・使用リソースに応じた 従量課金
  • コンテナ実行環境の管理が不要
    • ECS on EC2 (コンテナを仮想サーバー上で動作)
    • ECS on Fargate (コンテナをサーバーレスで動作)

フルマネージド

  • AWS App Runner
  • コンテナ実行環境をサーバーレスに実現

コンテナ実行の基本的なフロー

  • 手作業でのコンテナイメージダウンロードと実コンテナ実行環境2 コンテナ実行環境3 コンテナ実行環境4 非効率かつミスオペレーションを招く

コンテナサービスの始め方

デモ動画を視聴