プログラミング

CodeCommitとCodeBuildとCodePipelineがよく分からないのでTerraformでHelloWorldしてみた

投稿日:

AWSのCode3兄弟がよく分かりません。(CodeCommit, CodeBuild, CodePipeline)

こんな状態なのでとりあえず、CodeCommitとCodeBuildとCodePipelineでHelloWorldしてみました。

 

リソースは全てTerraformで作成します。

 

ちなみに参考にさせていただいたサイト様は以下です。

https://blog.spacemarket.com/code/ci-cd-codepipeline/

https://dev.classmethod.jp/articles/simple-terraform-cicd-pipeline-with-aws-codepipeline/

https://dev.classmethod.jp/articles/ecs-deploy-with-codepipeline/

https://qiita.com/ytanaka3/items/d643b7fd821bd45e1f0d

https://qiita.com/saka2233/items/732937bda7ca0ddfce0a

 

 

ちょっと宣伝。Youtuberやってます。よかったら見てくださいw

 

 

各サービスの役割

  • CodeCommit

AWSが提供するGitのホスティングサービスです。各AWSリソースとの互換性があります。普通に使えそうです。

 

  • CodeBuild

その名前の通り、実際にBuildするやつです。テストもできるっぽいです。いわゆるCIに位置してると思われる。

yml形式で普通にコマンドが実行できるので色んなことができそうです。

 

今回はここでHelloworldの記述を行うことになります。

 

  • CodePipeline

CodeCommitにコミットされたCodeBuild実行用のymlを元にCodeBuildを起動します。

上のふたつを監視してくっつけてる感じです。

 

今回はCodeCommitを使ってますが、もちろんGithubとの連携もできます。

 

リソース作成

以下の通り、Terraformのリソースを作成します。

なお、今回はCode3兄弟の話がメインなのでBackendの設定とかは割愛します。

 

また、便宜上各リソースで使用するIAM関連の記述は同ファイルにて記載しますが

本来ならば、「iam.tf」とかに分割する方が普通だと思います。

 

CodeCommit

CodeCommitのリポジトリを作成します。

 

codecommit.tf

 

CodeCommitに関してはこれだけなのですが、今回は「develop」ブランチからビルドしたいので、

先にCodeCommitのみ「Terraform apply」をしてブランチを作成しておきます。

 

CodeBuild

CodeBuildの設定にあたって、ログを出力するので併せてCloudWatchも作成します。

 

codebuild.tf

 

ここで、「buildspec.yml」が登場します。

こいつが前述したCodebuildの内容を決定するymlファイルになります。

 

今回の場合はCodeCommitのリポジトリ上にこいつを配置することになります。

 

CodePipeline

CodePipelineでは処理の管理にS3を使用するらしく、そのバケットも併せて作成します。

 

codepipeline.tf

 

注意点が、CodeCommitやGithubのリポジトリとの紐付けはconfiguraionブロックで行うのですが、

サービスによってキーが異なります。以下のリファレンスで確認できます。

 

https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements

 

buildspec.ymlをcommit

以下の内容でbuildspec.ymlをCodeCommitのリポジトリにコミット(プッシュも)します。

 

buildspec.yml

 

まじでHello Worldだけです。普通はありえないです。

 

apply

buildspec.ymlがコミットできたらあとは他のリソースを全てapplyしたら完了です。

適当にCodeCommitに変更をコミットしてあげれば、CodeBuildのログにHello Worldが確認できます。

 

Terraformを学びたい方へ

Terraformをきちんと学びたい方はUdemyのLearn DevOps: Infrastructure Automation With Terraform がとてもおすすめです。コスパ最高です。

よければ参考にしてみてください。

 

 

よく読まれている記事

1

  現在5年目のエンジニアで26歳です。 今回は20代の現役エンジニアとして、自分も含め転職について考えている方に向けて20代エンジニア転職に完全特化したおすすめのサービスを3つ紹介していき ...

2

これからエンジニアになりたい、プログラミングを使えるようになりたいという方に向けて 山のようにあるプログラミングスクールの中から、特におすすめなスクールをタイプ別に逆引きで3つ紹介します。 &nbsp ...

3

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

-プログラミング
-, ,

Copyright© クラインの備忘壺 , 2020 All Rights Reserved.