使って学ぶAWS ECS入門 FargateとLaravelでコンテナデプロイを体験
- ¥ 1,000
AWS ECSのFargateに、Laravelで作成したWebアプリケーションをデプロイして、AWS ECSの使い方を体験してみようという内容です。 WebアプリはHello Worldレベルなので、Laravelに詳しくない方にも、ECSの使い方として参考にして頂ければと思います。 ※本誌では、AWSの操作の一部にAWS CLIを使い ます。
目次
はじめに 対象読者 本書で扱わないこと 開発環境 第1 章Amazon ECS とは 1.1 Amazon ECS クラスターとは 1.2 Amazon ECS サービスとは 1.3 Amazon ECS タスク定義とは 1.4 Amazon ECR とは 1.5 Fargate とは 1.6 ECS のイメージ 第2 章ECS にデプロイするアプリケーションを⽤意する 2.1 Web アプリケーションのネットワーク構成 2.2 Docker でLaravel アプリケーションを作成 2.2.1 プロジェクト⽤のディレクトリを作成 2.2.2 Composer のイメージ⽤のDockerfile を作成 2.2.3 Laravel アプリケーションの⽣成 2.3 コマンドを作成する 2.3.1 PHP のコンテナイメージを⽤意する 2.3.2 コンテナでartisan コマンドを実⾏する 2.4 Web ページを表⽰する 2.4.1 Nginx のコンテナを⽤意する 2.4.2 Docker Compose でアプリケーションを起動する 2.4.3 アプリケーションの起動 第3 章ECR にイメージを登録する21 3.1 ECR にリポジトリを作成する 3.1.1 Nginx イメージのリポジトリを作成 3.1.2 PHP イメージのリポジトリを作成 3.2 リポジトリにコンテナイメージを登録する 3.2.1 ECR にログインする 3.2.2 プッシュ前にコンテナイメージをビルドする 3.2.3 コンテナイメージにタグをつける 3.2.4 ECR にコンテナイメージをプッシュ 第4 章AWS のネットワークを構築する 4.1 VPC を作成する 4.2 パブリックサブネットを作成する 4.2.1 サブネットを作成する 4.2.2 インターネットゲートウェイを作成 4.3 VPC にインターネットゲートウェイをアタッチする 4.3.1 ルートテーブルを作成する 4.3.2 ルートテーブルにルートを追加する 4.3.3 サブネットとルートテーブルを紐付ける 4.3.4 「パブリックIP アドレスの⾃動」を有効にする 4.4 セキュリティグループを設定する 4.5 ECS で使⽤するIAM ロールを作成する 4.5.1 ECS タスク⽤のIAM ロールを作成する 4.5.2 ECS サービスにリンクしたロールを作成する 4.6 CloudWatch の設定 4.6.1 CloudWatch にロググループを作成する 第5 章バッチ処理を実⾏する 5.1 クラスターを作成する 5.1.1 クラスターの作成画⾯を開く 5.1.2 クラスターの設定を選択・⼊⼒する 5.2 タスク定義を⽤意する 5.2.1 タスク定義ファイルの作成 5.2.2 AWS Systems Manager パラメータストアに秘密情報を登録する 5.2.3 タスク定義の登録 5.3 タスクを実⾏する 第6 章Web アプリケーションをデプロイする 6.1 タスク定義を⽤意する 6.1.1 タスク定義ファイルの作成 6.1.2 AWS Systems Manager パラメータストアに秘密情報を登録する 6.1.3 タスク定義の登録 6.2 アプリケーションのデプロイ(ALB なし) 6.2.1 サービスの作成 6.2.2 動作確認 6.2.3 サービスの削除 6.3 アプリケーションのデプロイ(ALB あり) 6.3.1 パブリックサブネットを追加する 6.3.2 サブネットとルートテーブルを紐付ける 6.3.3 「パブリックIP アドレスの⾃動」を有効にする 6.3.4 ALB(ロードバランサー)を⽤意する 6.3.5 ターゲットグループのARN を確認 6.3.6 サービスの作成 6.3.7 動作確認 6.3.8 サービスの削除 6.3.9 AWS リソースの削除 あとがき
注意点
■ 対象読者 本誌は次のような方を対象読者として想定しています。 ・AWSをある程度利用した経験がある。 ・ローカル開発環境でDockerを利用したことはあるが、ECSを利用したことがない。 ・ECSを試したいが、ECSでアプリケーションをデプロイする方法がわからない。 ■ 本誌で扱わないこと 本誌では、目次の内容以外に、次の内容は扱いませんのでご注意ください。 ・AWSアカウントの初期設定 ・AWSのリソースを作成するためのIAMの初期設定 ・AWS CLIやDockerなどの各種ツールの初期設定
使用ツール
macOS: Catalina 10.15.7 AWS CLI: 2.0.48 Docker Desktop: 2.4.0.0 Docker version: 19.03.13 docker-compose version 1.27.4