カテゴリ一覧 著者一覧
TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編
0件
2,200円(税込)
獲得ポイント: 22pt
通常:
22pt

TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編

発売日: 2021年9月24日
想定ページ数: 292ページ
ISBN: 9784295600565
ダウンロード: PDF EPUB
本書では、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アプリケーションの作成

1.1 本章完了時点のサンプルコード
1.2 GitHubにLaravelの新規リポジトリを作成する
1.3 リポジトリをローカルにクローンする
1.4 DockerのビルドとLaravelのインストール
1.5 簡単な認証機能の追加
1.6 既存のGitHub Actionsのワークフローの削除

第2章 Terraformのセットアップ

2.1 本章完了時点のサンプルコード
2.2 Terraformのインストール
2.3 tfenvの利用
2.4 AWS CLIのインストールとプロファイルの設定
2.5 tfstate管理用のS3バケットの作成

第3章 ECRの構築とTerraformの基本操作

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章 GitHub ActionsでイメージをECRにプッシュする

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 検証用の記述の変更

第5章 ネットワーク(VPC)の構築

5.1 本章完了時点のサンプルコード
5.2 ディレクトリと各種tfファイルの作成
5.3 VPCの作成
5.4 インターネットゲートウェイの作成
5.5 サブネットの作成
5.6 パブリックサブネット用ルートテーブルの作成
5.7 NATゲートウェイの作成
5.8 プライベートサブネット用ルートテーブルの作成
5.9 セキュリティグループの作成

第6章 ドメインの取得とロードバランサーの構築

6.1 本章完了時点のサンプルコード
6.2 ドメインの取得
6.3 ディレクトリと各種tfファイルの作成
6.4 ホストゾーンの参照
6.5 証明書の発行
6.6 ALBのアクセスログ保存用S3バケットの作成
6.7 ALBの作成
6.8 ALBのリスナーの作成
6.9 ALIASレコードの作成

第7章 ECS(Fargate)の構築

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サービスの作成

第8章 GitHub ActionsでFargateにデプロイする

8.1 本章完了時点のサンプルコード
8.2 ecspressoのセットアップ
8.3 ecspressoによる手動デプロイ
8.4 各定義ファイルの見直し
8.5 デプロイ用IAMロールの権限追加
8.6 GitHub Actionsによるデプロイ
8.7 サービスとタスク定義をTerraform管理外にする

第9章 Laravelとnginxを本番環境向けに修正する

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の設定ファイルをキャッシュする

第10章 RDSとプライベートホストゾーンの構築

10.1 本章完了時点のサンプルコード
10.2 RDS用セキュリティグループの作成
10.3 DBサブネットグループの作成
10.4 DBパラメータグループの作成
10.5 DBオプショングループの作成
10.6 CloudWatch ロググループの作成
10.7 RDS(DBインスタンス)の作成
10.8 RDSのパスワードの変更
10.9 パラメータストアの作成
10.10 タスク定義ファイルの編集
10.11 ECSサービスにRDS用セキュリティグループを付与
10.12 DBマイグレーション処理の追加
10.13 RDS用のCNAMEレコードの作成
10.14 .env.prodの編集
10.15 動作確認

第11章 ElastiCache(Redis)の構築

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 動作確認

付録A 参考文献

おわりに

謝辞

ユーザーレビュー

レビューがありません
書籍をシェアする