daisuzz.log

マンガでわかるDocker 3〜AWS編〜 を読んだ

技術書典のシーズンなので、何冊か良さそうな本を購入しました。 その中で #マンガでわかるDocker ③ 〜AWS編〜 【ダウンロード版】#jawsdays #技術書典 - 湊川あいの、わかば家。 - BOOTH を読んだので読書メモとして書いていきます。

booth.pm

この本は、マンガでわかりやすく説明するだけでなく、実際に手を動かしてECSにサンプルWebアプリケーションをデプロイするところまでやってくれるので、AWS初心者にはとてもわかりやすい本でした。 自分は業務でAWSを使っているため、ある程度AWSのマネジメントコンソールには慣れていますが、マネジメントコンソールの使い方を順序立てて学ぶ機会はなかったので、自分が初めてAWSに触るときにこの本があったら、もっとスムーズに理解できただろうなと感じました。

参考文献として、「AWSをはじめよう ~AWSによる環境構築を1から10まで~」も分かりやすい書籍として取り上げられていたので、次はこれを読もうと思います。

www.amazon.co.jp

読書メモ

## 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を作成