原田です。今回はWebサイトをAWS Amplifyを用いて自動的に公開(デプロイ)しようとしていることについて書きます。
弊社ではWebサイトの更新に静的サイトジェネレーターのNanocを利用しています。Nanocについては過去のブログでもご紹介しています。
Webサイトの公開手順の一例です。
今回Amplifyに移行するのは、上記手順の最後「4. nanoc deployコマンドを実行しmainブランチをWebサイトに公開」の部分です。概要ではありますがAmplifyへの移行手順を記します。
注意事項:
GitLabリポジトリをCodeCommitリポジトリと連携させるためのユーザーを作成します。このユーザーのアクセス権限にはAWSCodeCommitPowerUserポリシーを設定し、認証情報はAWS CodeCommit の HTTPS Git 認証情報のみを有効にしてください。Git認証情報作成時に認証情報(User Name, Password)をCSVファイルでダウンロードできますので保管しておいてください。認証情報は後ほどGitLabリポジトリのミラーリング設定で使用します。
その他の認証情報(アクセスキー、AWS CodeCommit の SSH キー、Amazon Keyspaces (for Apache Cassandra) の認証情報)は使用しませんので削除してください。
Amplifyコンソールに登録したアプリケーションをバックグラウンドで動作させるためのサービスロールを作成します。今回はサービスロールのアクセス権限にAdministratorAccessポリシーを設定しますが、セキュリティ上の観点から必要最小限の権限での運用もご検討ください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": [ "arn:aws:logs:us-west-2:XXXXX:log-group:/aws/amplify/YYYYY", "arn:aws:logs:us-west-2:XXXXX:log-group:/aws/amplify/YYYYY:*" ], "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ] }, { "Effect": "Allow", "Resource": [ "arn:aws:codecommit:us-west-2:XXXXX:example.co.jp" ], "Action": [ "codecommit:GitPull" ] } ] }
GitLabリポジトリが非公開の場合はAmplifyからGitLabのコミットを監視することはできません。しかしGitLabからリポジトリの変更をCodeCommitにアップすることで、AmplifyはCodeCommitから通知を受け取り動作します。
ここではリポジトリを作成して、リポジトリのURLを控えておいてください(HTTPSのクローンを選ぶことでクリップボードにURLがコピーされます)。URLは後ほどGitLabリポジトリのミラーリング設定で使用します。
GitLabリポジトリの変更をCodeCommitに反映させるためミラーリング設定を行います。
上記の値を入力後、ミラーリポジトリボタンをクリックすると登録されます。ミラーされたリポジトリの一覧に登録したCodeCommitリポジトリが表示されますが、登録直後はCodeCommitを自動更新しないので一覧上の今すぐ更新ボタンをクリックしてください。
Amplifyコンソールではアプリケーション(アプリ)にリポジトリを接続することでコードの変更(コミット)がリポジトリに反映されたタイミングでアプリのデプロイ(Webサイトの公開)が実施されます。アプリ登録時の設定は以下のとおりです。
ビルドの設定(ビルド設定の追加): Nanocの各種設定はそのまま使用しますのでここではnanoc compile
を実行するための設定を行います(アプリコンテナ上で公開するのでnanoc deploy
の実施は不要です)。
version: 1 frontend: phases: preBuild: commands: - rvm use 2.6.3 - bundle install build: commands: - bundle exec nanoc compile artifacts: baseDirectory: output files: - '*/' cache: paths: []
サービスロール(ビルド設定の追加): 上記で作成したAmplify用サービスロール
最後に確認画面が表示されますので設定内容を確認後、保存してデプロイボタンをクリックします。Amplifyコンソールはアプリを作成しデプロイを実施します。Webコンテンツの内容にもよりますが数分後にはデプロイが完了します。
実際にAmplifyでの運用が始まると
という要望も挙がってくるかと思います。Amplifyコンソールではこれらの設定も可能です。
今回はIAM, CodeCommit, Amplifyの設定をご紹介しましたけど、それぞれの機能に様々な設定が必要であることがお分かりいただけると思います。 複数Webサイトを管理している場合、WebサイトごとにAmplifyコンソール等で人間が入力操作を行うと気付かないうちに設定ミスを起こす可能性があります。
これを防ぐためにAWS CloudFormationを活用しています。AWSのインフラ環境をYAMLやJSONデータで作成することでInfrastructure as Codeが実現され、冪等性も保証されます。上記でご紹介したIAM, CodeCommit, Amplifyの一連の設定もCloudFormationで定義することが可能です。引き続きAmplify, CloudFormation等を学び自在に環境が構築できるよう努めます。
![]() |
「AWS Amplify」を利用して、ログイン画面の実装について手順を紹介します。 |
![]() |
ダイヤルやボタンにキーボードショートカットを自由に定義。Premiere Proでの動画編集作業がとても楽になりました。 |
![]() |
KindleとFire HDを使い分けて電子書籍を読んでいます。 |
![]() |
インターネットを支える海底ケーブル陸揚げ局の外観を見ることができました。 |
![]() |
AWSのハンズオン講座で初めて講師を務めました。動画や資料もあります。 |
![]() |
社員研修に伴うサポート体制変更・休業のお知らせ(5/20〜23) 社員研修に伴い、5月20日〜23日はサポート体制の変更および休業とさせていただきます。 |
![]() |
オープンソースカンファレンス2025 Nagoyaに弊社代表の前田が登壇(ブース出展あり) オープンソースカンファレンス(OSC)2025 Nagoyaに弊社代表の前田が登壇。『Redmineの意外と知らない便利な機能(Redmine 6.0 対応版)』をテーマに発表します。 |
![]() |
エンタープライズプラン向け「優先サポート」を開始 My Redmineでは、エンタープライズプランをご契約のお客様向けにサポート対応を優先的に行う「優先サポート(プライオリティサポート)」を開始いたしました。 |
![]() |
プロジェクト管理ツール「RedMica」バージョン 3.1.0をリリース Redmine互換のオープンソースソフトウェア ファーエンドテクノロジー株式会社は、2024年11月19日(日本時間)、Redmine互換のプロジェクト管理ソフトウェア「RedMica 3.1.0」をリリースしました。 |
![]() |
Redmineの最新情報をメールでお知らせする「Redmine News」配信中 新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け |