技術書典のシーズンなので、何冊か良さそうな本を購入しました。 その中で #マンガでわかるDocker ③ 〜AWS編〜 【ダウンロード版】#jawsdays #技術書典 - 湊川あいの、わかば家。 - BOOTH を読んだので読書メモとして書いていきます。
この本は、マンガでわかりやすく説明するだけでなく、実際に手を動かしてECSにサンプルWebアプリケーションをデプロイするところまでやってくれるので、AWS初心者にはとてもわかりやすい本でした。 自分は業務でAWSを使っているため、ある程度AWSのマネジメントコンソールには慣れていますが、マネジメントコンソールの使い方を順序立てて学ぶ機会はなかったので、自分が初めてAWSに触るときにこの本があったら、もっとスムーズに理解できただろうなと感じました。
参考文献として、「AWSをはじめよう ~AWSによる環境構築を1から10まで~」も分かりやすい書籍として取り上げられていたので、次はこれを読もうと思います。
読書メモ
## AWSをゼロから始めるときに何をすればいいか? * アカウント作成 * ルートユーザ作成 * IAMユーザ作成 * 請求のアラームを設定 ## EC2, ECS, ECRとはどういうものか? * EC2 * Elastic Compute Cloud * 仮想マシンを提供するサービス * ECS * Elastic Container Service * コンテナのオーケストレーションサービス * クラスタ構成の作成, LBとの接続, コンテナの死活監視、自動復旧 * ecs-agentというコンテナによるインスタンス管理 * Cluster * 複数のInstanceを取りまとめたもの * ecs-agentというdockerコンテナを各インスタンスで起動することで、インスタンスの情報をAWSに集約している * Task * 複数のコンテナで構成 * Task Definition * Taskの定義を定義したもの * Service * 起動し続けてリクエストを受け付ける * コンテナが停止した場合、自動で再起動する * 外部からの接続を受けて、ポートマッピングを行う * ECR * Elastic Container Repository * コンテナイメージを管理するサービス ## ECSにWebアプリケーションのコンテナをデプロイする方法 * ECRにコンテナイメージを登録 * ECRメニューからリポジトリを作成 * ECRにコンテナイメージをpush * ECSにコンテナをデプロイ * Task Definitionを作成 * Task DefinitionをECSに登録 * Clusterを作成 * Task Definitionを元にTaskを作成 ## デプロイしたコンテナを自動復旧させる方法 * ロードバランサの作成 * ヘルスチェックの機能をアプリケーションに実装 * EC2メニューからロードバランサを作成 * セキュリティグループ(ロードバランサへのトラフィックを制御するFW)の設定 * ルーティング(ヘルスチェック)の設定 * LBのセキュリティグループから、コンテナインスタンスへのセキュリティグループへの通信経路の確保 * コンテナインスタンスのセキュリティグループのインバウンドのルールにLBからのアクセスを追加する * サービスの作成 * ECSメニューからServiceを作成