1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【AWS】CodeCommitとS3を同期させる

Last updated at Posted at 2023-10-25

S3でファイル管理したいけど、Git的な管理したいなぁって思うことありますよね。なのでさくっとCodeCommitにPushしたファイルをそのままS3に同期させる方法をかきます:pencil2:

構成図

これだけです。CodeCommitでコード管理、CodePipelineでそのコードをCodeBuidで動かしてS3に送ります。
スクリーンショット 2023-10-24 14.56.47.png

動かしてみた

1.CodeCommit

①リポジトリ作成

CodeCommitでリポジトリを作ります。

リポジトリを作成→リポジトリ名を入力→作成
スクリーンショット 2023-10-24 15.05.29.png

②git clone

リポジトリができたので、認証情報を使ってgit cloneしましょう。

IAMのセキュリティ認証情報からAWS CodeCommit の HTTPS Git 認証情報を取得する。
生成してユーザー名とパスワードを取得します。
スクリーンショット 2023-10-24 15.11.06.png

上記で取得したIDパスワードをローカルでgit cloneします。

git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/リポジトリ名

③buildspec.ymlの作成とgit push

リポジトリにはCodeBuildを動作を記述するbuildspec.ymlを配置する必要があるので、
下記の内容でファイルを作っておきます。

buildspec.yml
version: 0.2

phases:
  post_build:
    commands:
      - aws s3 sync --exact-timestamps --delete ./ s3://バケット名

s3コマンドですが、--exact-timestampsでタイムスタンプが同じでも更新、 --deleteでGit側でファイルが削除されれば、S3側でも削除されます。

あとは適当にテスト用のファイルとかをいれてgit pushしてください。成功すればこんな感じでCodeCommit上に表示されるはずです。
image.png

2.CodeBuild

①S3バケットの作成

実際にファイルがが置かれるS3を作成します。セキュリティなどを意識しなければ基本デフォルト設定でOKです。スクリーンショット 2023-10-24 15.30.29.png

②Buildプロジェクトの作成

下記の通りに設定値をいれていきます。必要があれば適宜変更、追加してください。

スクリーンショット 2023-10-24 15.34.58.png

スクリーンショット 2023-10-24 15.32.50.png

スクリーンショット 2023-10-24 15.33.19.png

スクリーンショット 2023-10-24 15.35.11.png

③Roleへの権限付与

②でサービスロールを作っていますが、S3を操作する権限が足りないので、権限をつけてあげます。必要なら適宜ポリシーは変更してください。

スクリーンショット 2023-10-24 15.45.13.png

3.CodePipeline

新規のパイプラインを作成します。

スクリーンショット 2023-10-24 15.48.07.png

スクリーンショット 2023-10-24 15.48.57.png

スクリーンショット 2023-10-24 15.49.46.png

次のデプロイステージは不要です。スキップして作成してください。

作成と同時にパイプラインが流れます。その後、Pushごとに自動で流れます。
スクリーンショット 2023-10-24 15.53.09.png

S3バケットも見にいきましょう。ちゃんとファイルが来てますね。ファイル追加、変更、削除すべて反映されることも確認しました。

スクリーンショット 2023-10-24 16.27.23.png

以上です。よきCodeシリーズライフを:sunny:

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?