LINEで送る
Pocket

AWSでS3のWebサイトホスティングを運用している場合、毎回aws s3コマンドを使ったり、手動でアップロードするにはなかなかの手間です。今回はCircleCIのOrbsである circleci/aws-s3 を使って、Masterマージ後にS3バケットへSyncされるように、さくっと実装してみました。


■circleci/aws-s3@1.0.16

https://circleci.com/orbs/registry/orb/circleci/aws-s3

  • 構成

このドキュメント通りに作ればOKで構成は非常に簡単なので、あえて説明はしません!と言いたいところですが、以下!

  • Masterマージ
  • CircleCIのコンテナが立ち上がる
  •  aws s3 sync でdocsディレクトリ配下を adachin.jp/docs バケットにアップロード

■Setting IAM policy and user

まずは adachin.jp バケットのみアクセスできるようにポリシーを作って、クレデンシャルを取得するためにユーザーを紐付けましょう。ここらへん雑にしてると危険ですからね…

  • policy

s3-access-adachin.jp

  • IAM user

s3-adachin.jp: s3-access-adachin.jpをアタッチして、クレデンシャルをメモりましょう。

  • 確認

これで他のバケットには閲覧できないのでOK。


■CircleCI

  • Environment Variables

AWS_ACCESS_KEY_ID:xxxxxxxxxxxx
AWS_REGION:ap-northeast-1
AWS_SECRET_ACCESS_KEY:xxxxxxxxxxx

上記をCircleCIの環境変数に追加しましょう。

  • .circleci/config.yml

17行目のaws s3 syncのオプションで --delete を指定していますが、GitHubで管理されているソースコードとまったく同じにしたく、ソースに存在しないファイルをバケットから削除したいという理由です。そのままsyncすると不要なファイルが残ってしまうので追記しました。18行目from ですが、これは実際のソースコードのディレクトリを指しています。 あとはworkflowsでブランチをmasterにすれば自動でソースがアップロードされます。

  • 確認

これでバケットにtestファイル作って、Githubから削除してもバケットから消えてればOK!


■まとめ

手動でやっている方!今すぐCircleCIで自動化しましょう!

LINEで送る
Pocket

カテゴリー: AWSCircleCI

adachin

1989年生まれのLancers SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、AnsibleやTerraformでのインフラコード化を推進。副業では数社サーバー保守、未経験によるエンジニアのメンターなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。現在はサービスの信頼性向上、可用性、レイテンシ、パフォーマンス、モニタリング、緊急対応、インフラコード化、リファクタリング、セキュリティ強化、新技術の検証、Docker開発環境の提供、AWSでのインフラ構築、グループ会社インフラ対応、ECS/Fargateへの移行、Wordpressによるコーポレートサイトの修正、メンター、分析基盤の運用を担当している。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください