🐕

AWS CodeCommitでリポジトリを作成してpushするまでのハンズオン!

2023/04/30に公開

CodeCommit に触れてみる

はじめに

この記事では AWSのコードリポジトリサービスであるAWS CodeCommitについて解説した記事です。
記事の途中ではハンズオンがあります。

想定している読者としてはAWSのアカウントを既に持っており、Codeシリーズに興味がある人を対象にしています。

注意事項

  • AWS初学者向けかと問われると若干怪しいところがあります

    • AWSのアソシエイトレベルはクリアできる/クリアできる見込みのある人であれば、概ねできるように書いています
      • 上記に該当する人で難しいと感じてしまったのであれば、ごめんなさい
  • 記事の内容につきましてはある程度が時間が経過しても読めるように努力します

    • できる限りというベストエフォートな対応になりますのでご了承下さい
    • 最新の情報はAWSの公式ドキュメントを見ていただくようにお願いできればと思います
  • 本記事のハンズオンで発生した料金については一切責任を負いません

    • 利用しないサービスについては作成後に必ず削除することをお勧めします。

CodeCommit とは

AWSのドキュメントには以下のように説明があります。

CodeCommit is a secure, highly scalable, managed source control service that hosts private Git repositories
訳:CodeCommit は、プライベート Git リポジトリをホストする、安全で高度にスケーラブルなマネージド型のソース管理サービス
参考

AWSで数あるCodeシリーズの中でもコードを管理するサービスであり、GitリポジトリをAWS上に置くことができます。
「CodeCommit以外にもコードを管理できるリポジトリサービスはたくさんあるのにCodeCommitを使う理由って何?」と疑問に思うことがあるかもしれません。

ではなぜ、CodeCommitを使うのでしょうか。

CodeCommitを使う理由

理由はいくつかありますが、一つの解としては
「AWS上でリポジトリサービスをホストすることで権限管理(IAM)や他のAWSサービスとの連携がスムーズになる」ということが挙げられます。
※ただし、既に他のリポジトリサービス例えば、GitHubを使って開発をしている場合は既に使っているサービスを継続して使いつつ、AWSサービスとの連携を進めた方が良いです。

また、「AWS上ですべての作業を管理できる」ということも挙げれらますが、これは同時に全てをAWSに委ねるということになる為
ベンダーロックインが許容できる場合においては有用な選択肢になりえます。

さらに、CodeCommitはAWSのサービスとなる為、利用にはAWSが定める料金が発生します。
以上のようにAWS上で完結するということが主なメリットになります。
それ以外の操作、具体的にはCLI上の操作は通常のGitリポジトリと変わりありません。

※料金についてCodeCommitの料金体系で解説します。

CodeCommitの料金体系

CodeCommitに対してGitリポジトリを作成する前に料金について解説します。
※最新の料金体系を把握したい場合はAWS公式ドキュメントを参照してください。

CodeCommitはアクティブユーザー数と利用ストレージ、リクエスト数に応じて課金が発生します。
無料利用枠は5人程度のアクセスを想定しており、6人目から 1 USD/月発生するとされています。

料金は、アクティブなユーザー 1人につき 1 USD/月です。アクティブなユーザーごとに、月に 10 GB のストレージと 2,000 件の Git リクエストがアカウントに許容量として割り当てられ、ご利用いただけます。

AWS公式のFAQ より抜粋

アクティブユーザーが5人の場合は以下の無料利用枠が適用されます。

  • 1 アカウントあたり 1,000 リポジトリ、リクエストに応じて最大 25,000 リポジトリ
  • 50 GB のストレージ/月
  • 10,000 回の Git リクエスト/月

料金について述べましたが、アクティブユーザー数を超過しないまたは1ユーザーに割り当てられているリソースを使いきらない分には無料枠を利用できます。

事前準備

前提となりますが、ハンズオンではIAM Identity Centerを使って解説します。
シングルサインオンを実行します。

aws sso login --profile {Profile名}

CodeCommitはAWS上で動いている関係上、リポジトリ操作時にはAWSの認証情報を利用する必要があります。
様々な方法で認証情報を引き受けてリポジトリを操作することができますが、ここでは認証情報をプロファイルで利用できるgit-remote-codecommitを利用します。
※認証情報にはCodeCommitへのアクセスを含んでいる必要があります。

git-remote-codecommitをインストールします。

pip install git-remote-codecommit

実際に CodeCommitを使ってみよう

git clone

実際に触ってどんなものか見ていきましょう。AWSマネジメントコンソールを開いて、AWS CodeCommitを選択します。

CodeCommit_1.png

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

CodeCommit_2.png

リポジトリ名はcicd_handsonとします。作成ボタンをクリックします。

CodeCommit_3.png

{Profile名}を使ってgit cloneを実行後、カレントディレクトリを移動します。

git clone codecommit::ap-northeast-1://{Profile名}@cicd_handson
cd cicd_handson

git push

カレントディレクトリの変更まで終わりましたら、実際にファイルをpushします。
今回は何も書かれていないREADME.mdを作成してコミットメッセージをtestとしてコミットします。
最後にpushを実行します。

touch README.md
git add .
git commit -m "test"
git push -u

AWSマネジメントコンソールに戻ってCodeCommitからREADME.mdがリポジトリにpushされていることを確認します。

CodeCommit_4.png

README.mdの中身を変更してみる

問題なくpushされていることを確認できましたら、README.mdに変更を加えてみましょう。

echo "# Hello CodeCommit" > README.md
git add .
git commit -m "見出しを追加"
git push -u

AWSマネジメントコンソールに戻って今度はCodeCommitからREADME.mdが変更されていることを確認します。
# Hello CodeCommitという見出しが追加されていることを確認します。

CodeCommit_5.png

リソースの削除

左メニューからリポジトリをクリックします。

CodeCommit_6.png

リポジトリの一覧からcicd_handsonを選択してリポジトリの削除をクリックします。

CodeCommit_7.png

確認画面でdeleteと入力して削除をクリックします。

CodeCommit_8.png

まとめ

以上でCodeCommitのハンズオンは終わりです。
今回はAWS上で管理できるマネージドなリポジトリサービス、AWS CodeCommitについて扱いました。

AWS上でアプリケーションを開発しつつ、開発環境を統一したい場合はとても有効な手段になりえますので
使い方を把握しておくと良いでしょう。また、既存のリポジトリをAWS CodeCommitにpushして利用することも公式ドキュメントで扱っているようですので
機会があれば、触っていきたいと思います。

おわり

Discussion