以下の記事はQiita@minato-nakaさんが記述した「超安価&超簡単にウェブサイト運用しよう。CircleCIで、GitHubプッシュ→自動でビルド→S3に自動デプロイ」の紹介記事です。

はじめに

S3の静的ウェブサイトホスティング機能をご存じでしょうか。
https://aws.amazon.com/jp/s3-hosting/

AWSのストレージサービスであるS3に
HTMLやCSS、JSなどの
ソースファイルをアップロードし、
S3のホスティング機能を有効にするだけで、
非常に安価に、大容量、優れた耐久性のウェブサイトを公開できるという機能です。

AWSの管理画面から手動でソースファイルをアップロードすれば、
すぐにでもこの静的ウェブサイトホスティングを利用することができます。
https://qiita.com/suuungwoo/items/2e49c3008a04e48581ed
https://qiita.com/dogwood008/items/a92abae789f4b0466f38

今回は、このS3静的ウェブサイトホスティング機能をさらに便利に利用するために、
CircleCIを利用して

GitHubにソースプッシュ

ソースビルド

S3にデプロイ

という自動の処理を作ります。

今回は静的ウェブサイトが対象となります。
静的ウェブサイトとは、
HTMLやCSS、JSなどクライアントサイドだけで動かすことができるウェブサイトのことで、
PHPやJavaなどサーバサイドのプログラムが入っているウェブサイトの場合は対象外となります。

全体構成

今回構築する仕組みの全体像はこのようになります。

③ソースをビルド
は具体的には
npm intall を実行してパッケージをインストール、
gulpやwebpackなどを使ってソースコンパイルやモジュールバンドル
などを行います。

ただし、gulpやwebpackなどのソースビルド処理自体は
事前に作ってある前提で、
CircleCIが行うのはビルドコマンドの実行のみです。

設定の進め方









Related posts:

【Kotlin】MockKはKotlin独自の言語仕様をほぼ網羅しているモックライブラリ
【Kotlin】Unit Testing Firebase with Kotlin
【Swift】7 Awesome Open Source SwiftUI Projects to Inspire You (Part 2)
【Swift】7 Awesome Open Source SwiftUI Projects To Inspire You
【Column】The Future of Code Is in Your Browser
【JavaScript】The webpack plugin I can't live without
【JavaScript】6 Reasons Why You Should Learn JavaScript
【Node.js】Node.jsでサーバーサイドJavascriptに挑戦
【Flutter】初めてのアプリを公開するまでに参考にしたサイト一覧
【Flutter】社内でFlutterのハンズオンを行ったので、資料を公開します
【Azure】How To Host an Angular Static Website on Azure
【AWS】Getting started with Amazon MQ
【React】How to Deploy Your Static Sites for Free
【React】How to write tests for React in 2020
【AWS】AWS vs Azure vs Google Cloud
【Flutter】My Introduction to Flutter
【Flutter】How to run Flutter Golden (Snapshot) Tests with Codemagic CI/CD
【Flutter】How to run Flutter Golden (Snapshot) Tests with Codemagic CI/CD — Part2
【JavaScript】Deploying an Image Classifier using JavaScript
【AWS】Sentiment Analysis on Amazon Reviews
【JavaScript】How to build a basic line in D3.js
【JavaScriipt】4 Steps to Get Started With Serverless Functions on Netlify
【Swift】Building a Custom Transitioning for ViewController in iOS 13+
【TypeScript】What’s New in TypeScript 3.9?
【JavaScript】JavaScript Clean Code: Error Handling
【Nuxt.js】How I Picked Up and Built a Nuxt.js App in One Week
【Next.js】Next.js 9.3: 新世代の静的サイト生成、Built-in Sassのサポート
【Node.js】Node.js: CPU負荷で3秒かかっていた処理を「Worker Threads」で1秒に時短する
【TypeScript】Learn About Generics in TypeScript
【TypeScript】SwaggerをTypeScriptに変換してAPIリクエストで型チェックを有効にする