(NISHI Yohei) l NRI ネットコム株式会社 基盤デザイン事業部 (@Osaka) n Web システム開発運⽤チームのインフラ担当 l IaC や SaaS による運⽤とシステム改善 l たまにサーバレスアプリケーション開発 ⾃⼰紹介 https://tech.nri-net.com/entry/aws_data_sync_cross_region_transfer https://tech.nri-net.com/entry/data_sync_copy_between_s3_buckets https://techplay.jp/event/904776
/ 11 に GA された CloudFront を安全かつ⼿軽に切り替えデプロイできる機能 l 本番 Distribution (Primary) に対して動作確認⽤の Distribution (Staging) を作成 CloudFront Continuous Deployment (継続的デプロイメント)
l Staging / Policy の作成から⼀気に流すこともできるし、途中に動作検証やテストも組み込めそう l リソース作成から Promote までは⼀本道で実装できる n ⾃動化する上での課題になる点 l CloudFront に対する設定が反映されるまでの待機時間をうまく吸収するステップが必要 l リソースの後掃除にはちょっとクセがある (GUI 操作の⽅が楽だった) 実際に触ってみた
l Staging / Policy の作成から⼀気に流すこともできるし、途中に動作検証やテストも組み込めそう l リソース作成から Promote までは⼀本道で実装できる n ⾃動化する上での課題になる点 l CloudFront に対する設定が反映されるまでの待機時間をうまく吸収するステップが必要 l リソースの後掃除にはちょっとクセがある (GUI 操作の⽅が楽だった) 実際に触ってみた ここまでは簡単
l Staging / Policy の作成から⼀気に流すこともできるし、途中に動作検証やテストも組み込めそう l リソース作成から Promote までは⼀本道で実装できる n ⾃動化する上での課題になる点 l CloudFront に対する設定が反映されるまでの待機時間をうまく吸収するステップが必要 l リソースの後掃除にはちょっとクセがある (GUI 操作の⽅が楽だった) 実際に触ってみた ここだけちょっとクセがある
l Staging / Policy の作成から⼀気に流すこともできるし、途中に動作検証やテストも組み込めそう l リソース作成から Promote までは⼀本道で実装できる n ⾃動化する上での課題になる点 l CloudFront に対する設定が反映されるまでの待機時間をうまく吸収するステップが必要 l リソースの後掃除にはちょっとクセがある (GUI 操作の⽅が楽だった) 実際に触ってみた ここだけちょっとクセがある リソースのステータスが変わるまでの待機時間を細やかにケアしつつ
l Staging / Policy の作成から⼀気に流すこともできるし、途中に動作検証やテストも組み込めそう l リソース作成から Promote までは⼀本道で実装できる n ⾃動化する上での課題になる点 l CloudFront に対する設定が反映されるまでの待機時間をうまく吸収するステップが必要 l リソースの後掃除にはちょっとクセがある (GUI 操作の⽅が楽だった) 実際に触ってみた ここだけちょっとクセがある リソースのステータスが変わるまでの待機時間を細やかにケアしつつ 動作検証やテストの結果次第で処理を停⽌させる
StepFunctions ? l ちょっとしたスクリプト (Lambda) の組み合わせが実現できる l 待機や分岐のような、条件に応じた細やかな操作を制御可能!!! l ⼀連の処理がフロー図として可視化され、状況を把握しやすい l AWS SAM で簡単に開発 / デプロイが可能!!! • https://github.com/4hei4hei/cloudfront-continuous-deployment-stepfunctions ワークフローとして⾃動化 AWS Step Functions
l CloudFront の ETag • Distribution 設定の version 情報を司る⽂字列 • 設定に変更がかかると更新される & API 実⾏時に最新の値を渡さないとエラー • 今回の⾃動化では待機処理後の次ステップで都度取得している ワークフローとして⾃動化 https://docs.aws.amazon.com/cli/latest/reference/cloudfront/get-distribution-config.html