🚀

HugoサイトをAmplifyでホスティングする🦈

2024/05/22に公開

はじめに

AmplifyがOsakaにやってきたので、AmplifyでのHugoのサイトをホスティング方法をまとめた。

記事は基本的にmacOSをベースに記載している。

開発環境
  • macOS Sonoma 14.4.1
  • vscode
  • AWS Amplify Gen2
  • hugo v0.125

Hugoとは

Goで作成された静的サイトジェネレーター。
https://gohugo.io

Hugoのインストール方法

mac OSでのインストール方法。Homebrewでインストール可能。その他のOSはこちら。

# hugoのインストール
brew install hugo

インストールが完了したらバージョンを確認。

# バージョンの確認
hugo version
# hugo v0.125.7+extended darwin/arm64 BuildDate=2024-05-08T14:46:24Z VendorInfo=brew

Hugoでサイトを爆速💨で作る

hugoではnewコマンドにて

# サイトディレクトリ作成
hugo new site [サイト名]

下記のコマンドでHugoのサイト構成を自動を作成。

# 作業ディレクトリに移動後
hugo new site hugo-on-amplify --format=yaml

コマンドが完了すると下記のメッセージがコンソールに出力される。

コンソール
1. Change the current directory to [作成したディレクトリ].
2. Create or install a theme:
   - Create a new theme with the command "hugo new theme <THEMENAME>"
   - Or, install a theme from https://themes.gohugo.io/
3. Edit hugo.toml, setting the "theme" property to the theme name.
4. Create new content with the command "hugo new content <SECTIONNAME>/<FILENAME>.<FORMAT>".
5. Start the embedded web server with the command "hugo server --buildDrafts".

See documentation at https://gohugo.io/.

下記のディレクトリ構造が作成されている。

hugo-new-site

好みのテーマを選定する。

下記のテーマにて進める。
https://themes.gohugo.io/themes/hextra/

他がよければ下記より選定。
https://themes.gohugo.io/

hextraを使うと簡単にリッチなドキュメント機能付きのサイトをデプロイできる。

作業ディレクトリに移動

cd hugo-on-amplify

gitを初期化

git init

テーマをインストール

git submodule add https://github.com/imfing/hextra.git themes/hextra

スターターコンテンツをダウンロードして開発サイトに移植

hextraのテーマにはスターターテンプレートが別途用意されている。

https://github.com/imfing/hextra-starter-template

リポジトリのZIPファイルをダウンロードする。ZIPを解凍すると下記の内容となっている。

hextra-new-site

スターターテンプレートからcontentフォルダーの中身をファイルをコピー

スターターテンプレートから記事をコピーする。

hugo.yamlの内容を上書き

hugo.yamlの内容をコピーして設定を合わせる。

現在の構成

hugo-on-amplify-dir

ローカル環境で内容を確認。

hugoはコマンドでローカルサーバーを立ち上げ、ホットリロードで開発ができる。

# サーバーの立ち上げ
hugo server

サーバーコマンドを使用するとビルドが開始される。hugoのエンドポイントはpublicになっており、pbulicフォルダーが作成されコンテンツがビルドされる。

hugo-on-amplify-build

デフォルトでlocalhost:1313でサーバーが立ち上がるのでアクセスする。

home page

hugo-on-amplify-home-page

docment page

hugo-on-amplify-document-page

こんなに簡単にリッチなサイトが誕生する!

リポジトリの準備

Hugoでサイトの原型ができたので、リポジトリを準備。

GitHubにリポジトリを作成

GitHubに適当なリポジトリを作成する。(プライベートリポジトリでOK)

hugo-on-amplify-document-page

hugo用のgitignoreを作成。

Push不要なファイルがあるため、gitignoreを作成する。giboを利用するとgitignoreを簡単に作成できるので利用する。

giboについて詳しくは下記の通り。

https://github.com/simonwhitaker/gibo

# giboのインストール
brew insatll gibo 
# hugo用の.gitignoreのインストール(macOS用)
gibo dump macOS Hugo > .gitignore

リポジトリへのPush。

# READMEファイルの作成
echo "# hugo-on-amplify" >> README. md
# ディレクトリ以下をステージングへ
git add .
# コミット
git commit -m "first commit"
# リモートの設定
git remote add origin [リポジトリのパス]
# リモートへPush
git push -u origin main

リモートブランチに無事Pushできたか確認する。

Amplifyでデプロイ

いよいよAmplifyでデプロイする。

大阪リージョンを指定

マネージドコンソールで大阪リージョンを指定。

aws-console-osakaregion

Amplifyのページから新しいアプリを作成をクリック

aws-console-amplify

ソースプロバイダーにGitHubを指定

aws-console-github

対象のリポジトリとブランチを指定。

作成したリモートリポジトリと、mainのブランチを指定する。

aws-console-github-repo

hugo用のデプロイ設定を指定。

Hugoに合わせて。ビルドコマンドとビルドディレクトリを設定。
aws-console-github-repo

設定を確認して実行

最初だけブートストラップの処理が行われる。

aws-console-amplify-bootstrap

デプロイ完了。サイトへアクセス。

しばらくするとデプロイが完了し、ホスティングされる。

aws-console-amplify-bootstrap

ドメインに記載されているURLにアクセスしてサイトが表示されれば成功!

CI/CDの確認

先の設定でCI/CDも構築されているので、ローカルでサイトを編集して、リポジトリにPush。サイトが更新されるか確認する。

メインページのコンテンツを修正

content/_index.mdの内容を適当に修正後、Pushする。

aws-console-amplify-bootstrap

デプロイを確認する。

GitHubのmainリポジトリが修正されると、デプロイが開始される。

aws-console-amplify-deploy2

しばらくするとデプロイが完了する。

aws-console-amplify-deploy2

サイトが修正されているか確認する。

aws-console-amplify-deploy2

バッチリ✌️

まとめ

  • Hugoを利用すると爆速でモダンな静的サイトを構築できる。
  • Amplifyを利用すると手早くホスティング + CI/CD環境を構築できる。

Amplify🚀大阪リージョンへようこそ🐙
本番のプロダクトへ使うのが楽しみ。

次回はHugoのテーマのカスタマイズをまとめる予定だが、ホスティング以外でもAmplifyはAWSのリソースを魔法のように作れる機能が備わっているので、ブログでアウトプットしていきたいと思う。

Discussion