AWS

AWS CodePipelineでS3構成のReact.jsをCI/CD

AWS CodePipelineとは

AWS CodePipeline はフルマネージド型のサービスで、アプリケーションとインフラストラクチャをアップデートするパイプラインのリリースを自動化するサービスです。

今回はCodePipelineを使ってReact.jsを使ったFront WebサービスのCI/CD手法を紹介します。

React.jsを理解する

公式チュートリアルは下記となります。

https://ja.reactjs.org/docs/create-a-new-react-app.html

一通り環境を整えた後、

Create-React-Appを対象のフォルダで実施すると、下記のようになります。

react.js構造

この「build」フォルダの中身がwebサイト本体になります。

buildに作成された下記をS3バケットにアップロードすることで静的webサイトを公開することが出来ます。これをアップデートの度にS3に手動アップロードするのは不便です。

react.js build内構造

これをCI/CDで自動デプロイできるようにします。

CI/CD環境(React.js)

構築環境

今回の環境は下記のような構成です。

AWS環境下でCloudFront+S3の静的ウェブサイト構成です。

S3にReact.jsをデプロイします。

AWS環境

対象外範囲

CodePipelineにてソースコードの更新を検知、CodeBuildでreact.jsのビルドを行います。

CodeDeployは不要で、CodePipeline内のDeploy機能でデプロイします。

今回ソースコードの管理システムについては人それぞれかと思うので割愛します。

backlogを用いたソースコード管理のCI/CDは下記記事に書いております。

CloudFront+S3構築についても今回は割愛します。

CodePipeline作成

設定方法

①パイプラインの設定を選択する

パイプライン名:任意

サービスロール:新しいサービスロール

ロール名:任意

チェックボックス:チェック

「次に」

CodePipeline設定1

②ソースステージを選択する

各環境によるため割愛します。

CodePipeline設定2

③ビルドステージを追加する

プロバイダーを構築する:CodeBuild

リージョン:任意

プロジェクト名:「プロジェクトを作成する」でCodeBuildへ。

CodePipeline設定3

④CodeBuild

プロジェクト名:任意

CodePipeline設定4

下記のように設定。

基本何でも良いですが、AWSのベストプラクティスとしては最新版が良いそうです。

CodePipeline設定5

⑤Buildspecをコマンドで挿入

CodePipeline設定6
version: 0.2

phases:
  pre_build:
    commands:
      - rm -rf node_modules
      - yarn install
  build:
    commands:
      - yarn build
artifacts:
    base-directory: 'build'
    files:
        - '**/*'

コピペでOKです。最終行の「artifacts」で上記で述べた「biuld」フォルダに階層を移動、「- '**/*'」で移動先のファイル全てをアーティファクトとして出力する。という設定です。

これでCodeBuildの作成は終了です。

⑥CodePipelineに戻る

デプロイは「S3」

デプロイしたいS3を選択します。

CodePipeline設定7

デプロイする前にファイルを抽出するをチェックします。これをしないと、zipファイルがデプロイされてしまいます。

CodePipeline設定8

完成です!

CI/CDを試す

CodePipeline作成後、自動で一度CI/CDが走ります。

これで無事S3にデプロイされていればOKです。

AWSの効果的な学習方法は?

aws study

最後に、AWSの効果的な学習方法をご紹介します。

自学自習はUdemy講座

オンラインプラットフォームであるUdemyは安価で手軽にAWSの学習が可能です。

しかし、上記で紹介したような実際のAWSエンジニアが実施している構築スキルまでは教えてくれません。初心者~中級者向けの講座が多くなっています。

大きなチャンスのためのビッグセール.

私も受講した、初心者向けAWS講座を下記記事でまとめています。ご参考ください。

1人で学習が難しい場合はオンラインレッスン

1人で学習が難しい場合はオンラインレッスンがおすすめです。

最近では、AWS講座を提供するオンラインレッスンも増えてきました。

料金は高くなりますが、現役エンジニアからAWSについて学ぶことができます。

本ブログ執筆者のメンタリングも受付中

本ブログを執筆している[KAITech]もメンタリングを受け付けています。
オンラインレッスンは高くて手が出せないという方は私までお気軽にご相談ください。
下記から承っております。

  • この記事を書いた人

KAITech

大企業/中小企業/ベンチャー企業を経験
AWS/ネットワークのエンジニア
記事執筆やメンタリング等、仕事の依頼はコチラから
https://www.kaitech-media.biz/work/

-AWS