投稿

1月, 2021の投稿を表示しています

AWSの静的サイトホスティングパターン構築用CloudFormation作ってみた

やりつくされた感のあるAWSの静的サイトホスティングパターンの CloudFormation でやってみる系のやつです。まぁ先人が色々としてくださっているので今更ネタです。 そしてAWSは5年ほど触ってますが、いまだに初心者を脱出できていないですし、コピペしかできないへっぽこです。なんで急にCloudFormationやってみようと思ったかというと 静的サイトホスティング二重化 を Terraform で一本でまとめてやりたいなぁと思っていて、その練習がてらどうせならCloudFormation勉強してみようと思ってやってみました。 2021年1月31時点に構築しました。 aws-cli/1.18.39 Python/3.7.7 Linux/5.4.0-64-generic botocore/1.15.3 ◆作成したもの 1.ディレクトリ構成 . |-- create_stacks.sh |-- delete_stacks.sh `-- yml |-- acmsetting.yml |-- makehostedzone.yml `-- static-site.yml 2.シェルスクリプト群 「create_stacks.sh sample.com」とか「delete_stacks.sh」で起動すると一気に静的サイトホスティングのCloudFormationテンプレート呼び出してくれます。 ・create_stacks.sh #!/bin/bash SLEEP_TIME=30 R53_YML_NAME="makehostedzone.yml" R53_STACK_NAME="route53set" ACM_YML_NAME="acmsetting.yml" ACM_STACK_NAME="acmbuild" STATIC_YML_NAME="static-site.yml" STATIC_STACK_NAME="staticsitebuild" BREAK_WORD="CREATE_COMPLETE" if [ $# != 1 ]; then echo 'Empty Domain! Pl

静的Webサイトホスティング二重化してみる(その3)

イメージ
2020年中に完了させたかったのですが、結局年をまたいでしまいました。静的Webサイトホスティング冗長化の件、設定作業自体は前回の内容で完了しているのですが、コンテンツの更新で2ヶ所に更新するというのもナンセンスだし、今時 FTPでファイルアップ とかいう時代遅れなことをする気もないので GitHub の mainブランチ に push したタイミングで S3 と GCS の両方にコンテンツを同期するという仕組みを準備することで更新漏れを防止するという仕組みを準備します。こうしておけばいつ CloudFront が落ちても安心ですね。(オイ 後は2021年8月13日に GitHubでパスワード運用が廃止 になるらしいのでトークンを発行してパスワード運用からの切替えもしました。 GitHubにpushすれば本番リリースというのはとても楽でいいですね。確認終わったやつをmergeしてからpushすりゃ本番リリース完了サーバ再起動も発生しない。もはやWebのためにサーバという発想がなくなってきています。後はこいつを IaC 化できればいいなぁ。 最終的にこんな感じになりました。 ◆シリーズ その1:AWSでCloudFront+S3構成を作る その2:GoocleCloudでLoadBaranser+GCS構成を作りDNSでフェイルオーバ その3:S3とGCSにGitHubActions使ってコンテンツ同期 その4:TerraformでIaC化 ◆手順概要 1.AWSのIAM設定 2.GCPのサービスアカウント発行 3.GitHubの諸設定  3-1.トークン設定  3-2.Secretの設定 4.GitHubActionsの設定 ◆手順 1.AWSのIAM設定 ・コンソールでIAMから[グループ]を選択して[新しいグループの作成]をクリックする。 ・[グループ名]を選択して[次のステップ]をクリックする。 ・ポリシーで[S3FullAccess]と[CloudFrontFullAccess]を付与して[グループの作成]をクリックする。 ・続いてユーザの作成を行う[ユーザ]を選択して[ユーザを追加]をクリックする。 ・[ユーザ名]を入力し、アクセスの種類で[プログラムによるアクセス]を選択する。[次のステップ]をクリックする。 ・ユーザをグループに追加セクションで先に作成