TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編
発売日: 2021/9/24
想定ページ数: 292ページ
ISBN: 9784295600565
全文検索: 対応
★★★★★
★★★★★
0件
-
-
-
-
本書では、nginx+Laravel+MySQL+Redisで構成されるアプリケーションをAWS上に構築する方法を解説します。nginxとLaravelは、AWSのコンテナオーケストレーションサービスであるECS(Fargate)を使用します。また、AWSの各リソースはTerraformで構築し、デプロイはGitHub Actionsで行います。
・LaravelをAWS Fargateに⾃動デプロイする⽅法を知りたい⼈
・上記のAWS環境をTerraformで構築する⽅法を知りたい⼈
・GitHub Actions の基本的な使い⽅を知りたい⼈
これらを実際に手を動かしながら効率良く学びたい方におすすめです。
【目次】
第1章 Laravelアプリケーションの作成
第2章 Terraformのセットアップ
第3章 ECRの構築とTerraformの基本操作
第4章 GitHub ActionsでイメージをECRにプッシュする
第5章 ネットワーク(VPC)の構築
第6章 ドメインの取得とロードバランサーの構築
第7章 ECS(Fargate)の構築
第8章 GitHub ActionsでFargateにデプロイする
第9章 Laravelとnginxを本番環境向けに修正する
第10章 RDSとプライベートホストゾーンの構築
第11章 ElastiCache(Redis)の構築
目次プレビュー
- はじめに
- 第1章 Laravelアプリケーションの作成
- 第2章 Terraformのセットアップ
-
1.1 本章完了時点のサンプルコード
-
1.2 GitHubにLaravelの新規リポジトリを作成する
-
1.3 リポジトリをローカルにクローンする
-
1.4 DockerのビルドとLaravelのインストール
-
1.5 簡単な認証機能の追加
-
1.6 既存のGitHub Actionsのワークフローの削除
-
3.1 本章完了時点のサンプルコード
-
3.2 Terraform用のGitHubリポジトリの作成
-
3.3 .gitignoreの作成
-
3.4 環境別のディレクトリの作成
-
3.5 .terraform-versionの作成
-
3.6 目的別のディレクトリの作成
-
3.7 backendの設定
-
3.8 terraform fmt
-
3.9 プロバイダーの設定
-
3.10 terraformバージョンの固定
-
3.11 デフォルトのタグ設定
-
3.12 シンボリックリンクの作成
-
3.13 terraform initの実行
-
3.14 ECR用のtfファイルの作成
-
3.15 本書でのリソース命名規則
-
3.16 terraform plan / applyの実行
-
3.17 terraform state list / show / pull
-
3.18 リソースの削除方法
-
3.19 aws_ecr_lifecycle_policyの作成
-
3.20 モジュール
-
3.21 terraform state mv
-
3.22 PHP用ECRの作成
-
3.23 Local Valuesの使用
-
4.1 本章完了時点のサンプルコード
-
4.2 開発ブランチ名について
-
4.3 GitHub Actionsのワークフロー作成
-
4.4 AWSの認証情報の設定
-
4.5 TerraformでのIAMユーザーの作成
-
4.6 アクセスキーIDとシークレットアクセスキーの発行
-
4.7 GitHubのSecretsの設定
-
4.8 GitHub Actionsの実行と結果の確認
-
4.9 Assume Roleの実施
-
4.10 環境変数ENV_NAMEの設定
-
4.11 コードのチェックアウト
-
4.12 コンテナの起動
-
4.13 PHP関連パッケージのインストール
-
4.14 PHP関連パッケージのキャッシュ
-
4.15 Node.js関連パッケージのインストールとキャッシュ
-
4.16 JavaScriptのトランスパイルの実行
-
4.17 ECRへのログイン
-
4.18 nginxイメージのビルドとプッシュ
-
4.19 nginxのDockerfileの編集
-
4.20 .dockerignoreの作成
-
4.21 PHPイメージのビルドとプッシュ
-
4.22 PHPのDockerfileの編集
-
4.23 ワークフローの実行
-
4.24 検証用の記述の変更
-
7.1 本章完了時点のサンプルコード
-
7.2 Fargateに関連する用語の簡単な解説
-
7.3 ECSクラスターの作成
-
7.4 タスク実行ロールの作成
-
7.5 CloudWatchロググループの作成
-
7.6 パラメータストアの作成
-
7.7 タスク実行ロールのポリシー追加
-
7.8 タスクロールの作成とECS Exec
-
7.9 タスク定義の作成
-
7.10 ターゲットグループの作成
-
7.11 ECSサービスの作成
-
9.1 本章完了時点のサンプルコード
-
9.2 LaravelのリンクをHTTPSにする
-
9.3 LaravelのログをCloudWatch Logsに連携する
-
9.4 nginxアクセスログのアクセス元IPの修正
-
9.5 ALBからのヘルスチェックをログに出力しない
-
9.6 その他nginxの修正
-
9.7 ソフトウェア情報等を隠蔽する
-
9.8 JavaScriptやCSSの古いキャッシュを使わせない
-
9.9 Laravelの設定ファイルをキャッシュする
-
11.1 本章完了時点のサンプルコード
-
11.2 ElastiCache(Redis)を使う目的
-
11.3 ローカル環境でRedisを使えるようにする
-
11.4 ElastiCache用セキュリティグループの作成
-
11.5 ElastiCacheサブネットグループの作成
-
11.6 ElastiCacheパラメータグループの作成
-
11.7 ElastiCache(レプリケーショングループ)の作成
-
11.8 ECSサービスにElastiCache用セキュリティグループを付与
-
11.9 ElastiCache用のCNAMEレコードの作成
-
11.10 .env.prodの編集
-
11.11 動作確認