AWSコンテナ設計・構築本格入門 読書メモ
2章
AWSが提供するコントロールプレーン
ECS
フルマネージドなコンテナオーケストレータ
k8sとは異なる独自概念がいくつかある
Task
コンテナが動作するコンポーネント
k8sのPodに相当?
タスクは1つ以上のコンテナから構成されるアプリケーションの実行単位
Task Definition
Taskを作成するテンプレート定義
JSONで記述
デプロイするコンテナイメージ、タスクとコンテナに割り当てるリソースやIAMロール、CloudWatch Logsの出力先を定義
Service
指定した数だけTaskを維持するスケジューラ
多分k8sのDeployに相当(わかりづらい
Cluster
ECS ServiceとTaskを実行する論理グループ
EKS
フルマネージドk8sサービス
2018年からサービス開始
データプレーン
コンテナが実際に可動するリソース環境を指す
Amazon Elastic Compute Cloud(EC2)
AWSで仮想マシンを利用できるサービス
いつもの
AWS Fargate
ECSとEKSで動作する、コンテナ向けサーバレスコンピューティングエンジン
フルマネージド
EC2より高いらしい
OSの管理はFargate側が行うので、細かいチューニングは難しい
まあでも特に理由がなければこっちの方が使いやすそう
2022年8月時点でAWSコンソールからみつからないので、ECSに統合されてるかも
リポジトリ
ECR
フルマネージドコンテナレジストリ
その他
AWS App Runner
Cloud RunとかHerokuっぽいやつ
アーキテクチャの構成例
コントロールプレーンとデータプレーンの組み合わせ
コントロールプレーン
ECS
EKC
データプレーン
EC2
Fargate
ECS x Faragateについて
拡張性
デプロイは比較的遅い
コンテナごとにENI(Elastic Network Interface)がアタッチされるため
イメージキャッシュもできない
EC2ではインスタンス側にイメージキャッシュを保持できた
信頼性
フルマネージドなのでSSHログインはできない
AWS ECS Execにより、対話型のシェルあるいはコマンドの実行で調査ができる
3章
Well-Architectedフレームワーク
AWSが提供するシステム設計に関する考え方
運用上の優秀性
セキュリティ
信頼性
パフォーマンス効率
コスト最適化
4章 コンテナを構築する(基礎編)
4-2 ネットワークの構築
VPCとサブネットを使ってネットワークを構築する
https://gyazo.com/fdae7d799b9f1a175ecbacdb70015b02
インターネットゲートウェイ
VPC内のリソースがインターネットと通信する際に必要となるネットワークリソース
VPCごとに1つだけ紐付けが可能
ルートテーブル
ネットワークの経路を設定するためのリソース
サブネットの外に通信する際に、どのIPアドレス/ポートに何を紐づけるか、を記述する
ルートテーブルをサブネットに関連付けることでサブネットごとに経路を制御できる
新規作成した時点では、VPCリソース間の通信しかせっていされていない
パブリックサブネットがインターネット側と通信できるようにルーティングの設定が必要
デフォルトゲートウェイ0.0.0.0/0が指定された場合にインターネットゲートウェイへ向けるルールを追加
セキュリティグループ
アウトバウンドルールは0.0.0.0/0を許可し、インバウンドのIngressは最小限のルールを許可する
https://gyazo.com/62c058109a624eef3dfeb1c780fd0883