software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings. Ref: https://www.docker.com/resources/what-container
about servers Serverless technologies feature automatic scaling, built-in high availability, and a pay-for-use billing model to increase agility and optimize costs. These technologies also eliminate infrastructure management tasks like capacity provisioning and patching, so you can focus on writing code that serves your customers. Ref: https://aws.amazon.com/serverless/
Fargate) ECS on EC2 ECS on Fargate EKS on EC2 EKS on Fargate u フルマネージド型のKubernetesサービス u Kubernetesはコンテナオーケストレーションツールとしてデファクトスタンダード u コンテナ配置スケジューリングや自動復旧、負荷分散など u コンテナの実行基盤として、EC2 or Fargate u Fargateはサーバレスな実行基盤 u 大規模Webアプリケーション、ML基盤、データ処理基盤などを運用したいケースに最適 u CNCF管轄のOSSを組み合わせながら、マイクロサービスアーキテクチャを構築
Fargate) ECS on EC2 ECS on Fargate EKS on EC2 EKS on Fargate u フルマネージド型のAWS独自のコンテナオーケストレーションサービス u アップグレード運用などAWS側で対応 u コンテナの実行基盤として、EC2 or Fargate u Fargateはサーバレスな実行基盤 u 小〜中規模Webアプリケーション、ML基盤、データ処理基盤などを運用したいケースに最適 u AWS上の各種サービスと組み合わせながら、マイクロサービスアーキテクチャを構築
Fargate) ECS on EC2 ECS on Fargate EKS on EC2 EKS on Fargate u VPC上の構築が前提 u コンテナレジストリと合わせて利用 u ECSタスク(コンテナの集合)の定義は ユーザ側の責務 u ECSタスク定義を作成して適用 u API GatewayやWAFとの組合せ可能
Fargate EKS on EC2 EKS on Fargate u フルマネージド型のサーバレスコンピューティングサービス u 開発者がコードをデプロイできるFaaSとしての位置付け u イベント駆動な仕組みやシンプルなWebアプリケーションを構築したいケースに最適 e.g. u APIのバックエンド処理 u イベントのトリガによるリアルタイム処理 u ストリーミング処理 u バックアップや監視などの運用処理
EKS on EC2 EKS on Fargate Kubernetesベースの コンテナオーケストレーション AWS独自の コンテナオーケストレーション システム 規模 抽象度 大 小 高 低 ケース バイケース Function as a Service Platform as a Service
EKS on EC2 EKS on Fargate Kubernetesベースの コンテナオーケストレーション AWS独自の コンテナオーケストレーション システム 規模 抽象度 大 小 高 低 ケース バイケース Function as a Service Platform as a Service 選定はどう進めればよいか?
ビジネス上要求されるガバナンス・コンプライアンスルール u ビジネスロードマップにおけるフェーズ u クラウドジャーニーにおけるLift段階 or 新規開発/構築 u 組織体制:システムリリース後の運用チーム組成有無・割当て可能なエンジニアチームの規模 u エンジニアリングチームが現在持ち合わせているスキルセット u 会社、システム、プロダクトとしての技術的プレゼンス戦略
リリース方式(CI/CD)、ロギング、監視、開発手法、etc u ある程度、ワークロード全体をカバーできるComputeサービスを決める u 安定した開発フローの維持とシステムをスケールさせていく観点から方向性を定めることは有効 u エンジニアリングチームが現在持ち合わせているプラクティスの共有 u コンプライアンス面での統一化
ビルド、リリース、実行 VI. プロセス VII. ポート バインディング VIII. 並列性 IX. 廃棄容易性 X. 開発・本番一致 XI. ログ XII. 管理プロセス AWS Well-Architected Framework 優れたソフトウェアを作り上げるための指針としての The Twelve-Factor App
⾃動ローテーションが可能 u 機密情報をグループ単位で管理可能 u タスク定義の指定⽅法によって、環境変数値のパースが必要 u 機密情報として扱わないその他の設定値と管理形態を統⼀化可能 u ⾃動ローテーションは不可 u 機密情報が多くなると管理が煩雑になりがち u KMSと連携して機密情報をオブジェクトとして管理 u ⾃動ローテーションはで負荷 u オペミス等でバケットが外部公開されないように統制配慮が必要 u 業務要件・特性に合わせて、利用するAWSサービスを選定する 機密情報に対する扱い
コンテナ脆弱性のチェック u 需要変化に対する対応 u 障害検知 u コンテナイメージの不備 AWS Well-Architected Frameworkをコンテナ・サーバレスを軸にした アプリケーション開発で求められる設計ポイントを整理 u設計ポイントごとに12FAの要素を織り交ぜていく 再掲 I. コードベース II. 依存関係 VII. ポートバインディング X. 開発/本番⼀致 XI. ログ III. 設定 VIII. 並⾏性 IX. 廃棄容易性