技術書典のシーズンなので、何冊か良さそうな本を購入しました。 その中で #マンガでわかる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を作成