S3ウェブホスティングをAWS CodePipelineを使ってGithubにpushした時にデプロイする

S3ウェブホスティングのデプロイを手動でやっていたけど、AWS CodePipelineを利用してGitHub上にコードをPushした時にデプロイされるようにした。
公式ドキュメントのチュートリアルをベースにやればだいたい良いけど自分用にメモとして記載しておく。

事前準備

下記を作成しておく必要がある。

  • Githubのリポジトリとその中へ静的ウェブサイトのソースファイル
  • ウェブサイトホスティング用に設定された Amazon S3 バケット

AWS CodePipelineを用いたパイプラインの作成

AWSマネジメントコンソールのCodePipelineのダッシュボードへ遷移する。

下記の画面から「パイプラインの作成」を選択する。

Step1: パイプラインの設定の選択

パイプライン名を適当に入力する。

[Service role (サービスロール)]の設定で新しいサービスロールを作成するか、既存のサービスロールがある場合はそれを利用する。
新しいサービスロールを作成する場合、 AWSCodePipelineServiceRole-${region}-${pipeline_name}の形式でのサービスロールが作成される。${region}はパイプラインを作成するリージョン名、${pipeline_name}は上記で入力したパイプラインの名前になる。
このロールは、CodePipelineのパイプライン実行プロセスの中で使用される各AWSリソースへのアクセス許可に使用される。

それ以外はデフォルトでOK。

Step2: ソースステージの追加

デプロイする元となるソースコードが保存されているリポジトリを指定する。ここではGitHubを選択する。

「GitHubに接続する」を押下すると、初回の場合はOAuthでの認証が行われる。

GitHubへ接続できたらリポジトリ名とブランチを選択する。
変更検出オプションではGitHubウェブフックを選択する。

Step3: ビルドステージの追加

ここではビルドは行わないので[ビルドステージのスキップ]を押下してスキップする。

Step4: デプロイステージの追加

デプロイプロバイダにS3を選択し、デプロイしたいS3バケットを選択する。
[デプロイ前にファイルを展開] を選択する。デフォルトだとzip圧縮されるがこれによりファイルが展開される。
[デプロイパス]はファイルが展開されるS3のパスになる。空欄だとルートパスに配置される。

レビュー

内容を確認し、問題なければ[パイプラインの作成]を押下する。

実行

これでS3にコードをpushするとデプロイが開始される。
うまく動けば完了。

まとめ

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です