Laravel × CircleCI × AWSで学ぶCI/CD

【中級レベル/20時間】CircleCIで自動テストを行い、AWS(EC2)に自動デプロイする仕組み(3種類)を構築!CircleCIやAWS CodeDeploy/Build/Pipelineなどの使い方のほか、Laravelでのテスト、Laravel x Vue.jsアプリケーションのEC2環境構築方法を学ぶ。

Laravel × CircleCI × AWS で CI/CDパイプラインの構築方法を学ぶ

本教材では、LaravelのサンプルアプリケーションをCIツールであるCircleCIで自動テストし、AWSに自動デプロイする仕組みの構築方法を学びます。

CI/CDパイプラインをあらかじめ構築しておくことで、バグの発生を抑えつつ、アプリケーションの機能追加などを1日に何回も本番環境にリリースすることが可能となります。


本教材のタイトルに含まれるCI/CDは、以下のような仕組みのこととなります。

  • CI(継続的インテグレーション)
    • 変更されたソースコードがGitHubなどのリポジトリに提出(プッシュ)されるたびに自動でテストを行うことで、変更後のソースコードをリポジトリのメインライン(masterブランチなど)に統合(gitで言うところのマージ)可能な状態にする仕組み
  • CD(継続的デリバリー)
    • メインラインのソースコードが変更されるたびに、自動で本番環境などにデプロイする仕組み

このような仕組みを組み合わせた一連の流れをCI/CDパイプラインと呼びます。




学習内容

本教材を通じて、以下について学ぶことができます。

  • GitHubとCircleCIの連携方法
  • Laravelでのごく簡単なテストの書き方
  • CircleCIでの自動テストの実行方法
  • Laravel + Vue.jsのアプリケーションをEC2 + nginx + RDS(PostgreSQL)の環境で動かす方法
  • CircleCIからAWS(EC2)にLaravel + Vue.jsアプリケーションをデプロイする方法3種類
    • CircleCIからAWSのEC2にSSHログインしてデプロイ
    • CircleCI + CodeDeployを使ってEC2にデプロイ
    • CircleCI + CodeCommit + CodeBuild + CodeDeploy + CodePipelineを使ってEC2にデプロイ

また、周辺知識として以下も解説していきます。

  • YAMLの書き方
  • Bashスクリプトの書き方
  • Linuxで新規ユーザーを作り、SSHログイン可能とする方法


本教材の対象者

  • 自動テスト、自動デプロイ、CI/CDといった言葉に関心があり、その構築方法を効率的に学びたい方
  • CircleCIの基礎的な使い方を学びたい方
  • AWS(EC2)への自動デプロイ方法を学びたい方


受講における必要条件


本教材は中級者向けとなっています。以下の条件を満たすかどうか事前に確認して受講してください。

  • AWSアカウントを持っており、AWSを触ったことがあること
  • AWSのマネジメントコンソールにログイン可能な、管理者権限(AdministratorAccess)を持ったIAMユーザーを用意できること
  • Gitの初歩的な知識(ブランチを作る、コミットする、などが行える)
  • GitHubの初歩的な知識(アカウントを持っていて自分のリポジトリを作ったことがある、プルリクエストを立てることができる)
  • Laravelの初歩的な知識(モデルからデータを取得して画面に表示する程度のアプリケーションを作ったことがある)
  • Linuxのコマンドの初歩的な知識(ls, cd, pwd, mkdir, catを使ったことがある)



AWSの利用料金について

本教材で利用するAWSリソースについては、一部従量制料金の対象のものがあります。
EC2やRDSなどは無料利用枠が設定されたスペックのものを使用するなど、教材全体で極力料金を抑えるようにしていますが、利用状況次第では費用が発生する可能性があります。
あらかじめご了承ください。



学ばないこと

  • LaravelやVue.jsそのものの知識
  • Laravelでの様々なテストの書き方(教材では、ごく一部の機能のみテストします)
  • Vue.jsのテストの書き方(教材では、Vue.jsのテストは行いません)

その他、本教材では、テーマであるCI/CDを集中して学べるよう、一部のAWSのリソースはテンプレートファイル(CloudFormation)を使って自動で作成します。

具体的には以下のAWSリソースとなります。

  • VPC、サブネット、サブネットグループ、ルートテーブル、インターネットゲートウェイ、セキュリティグループ、EC2

そのため、これらのAWSリソースに関しては、AWSの入門書などでよく登場するような、AWSのマネジメントコンソール(管理画面)でひとつひとつ作成する方法を説明していません。ご注意ください。

なお、以下のAWSリソースについてはAWSのマネジメントコンソールで作成していきます。

  • RDS, S3, IAM, CodeCommit, CodeBuild, CodeDeploy, CodePipeline


本教材の対応バージョン

  • CircleCI 2.1
  • Laravel 6.8
  • Vue.js 2.6.11


本教材で質問対応可能なOSや環境

  • Mac OS


この教材の執筆者


やんばる@shonansurvivors
やんばる@shonansurvivors

Web系の企業でLaravel + Vue.jsによる自社Webサービスの開発や、インフラ(AWS)の設計、CI/CDの構築などを行なっています。 独学でプログラミングを学びWebエンジニアに転職した経験を持つことから、プログラミング初学者の方々に役に立つ知識を提供したいと思っています。 twitterアカウント: @shonansurviors


本教材のカリキュラム



今すぐはじめる!