昨年11月のAWS re:Inventで我々はAWS CodeCommitを発表しました(コード管理とデプロイのための新しいAWSツールをご覧下さい)。そして今日、これが一般利用可能となり使いはじめることができるようになったことをお知らせでき、とても嬉しいです。
サービスを触り始めるまえに、CodeCommitの機能について改めて簡単におさらいしておきましょう。
CodeCommit概要
CodeCommitはGitレポジトリをホスティングするマネージドのバージョン管理サービスであり、既存のGitベースのツールと連携することができます。ファイルはレポジトリとして構造化されており、レポジトリサイズやファイルの数に制限がありません。すぐにお分かりになる様に、既存のGitのスキルやツールそしてプラクティスは使い続けることができます。
裏側では、CodeCommitはスケーラブルで冗長性があり耐久性がある様にGitを実装しているので、皆さんのコードやアセットは安全に保持されています。CodeCommitはファイルを暗号化されたレポジトリに保存されており、開発者は管理者としてのコントロールはIAMロールを使って実現できます。全ての開発環境を行き来するデータはHTTPSかSSH接続を経由します。
CodeCommitはAWSのクラウド上で動いているので、開発チームが複数の場所で働いていたり、開発会社やパートナーと協力する必要がある際にとてもうまくフィットします。
こちらはCodeCommitの早期ユーザの方からのコメントになります:
Ajit Zadgaonkar, Executive Director, Software Engineering Operations
Edmunds
CodeCommit実践
実世界でのCodeCommitの体験をするために、AWS SDK for PHPのミラーを作ることにしましょう。まずAmazon Linux AMIから素のEC2インスタンスを立ち上げます。最新バージョンのAWS Command Line Interface(CLI)をインストールし、認証情報を設定し、いつもの方法でGitをインストールしました:
$ sudo yum install git
Gitの個人情報も設定しました:
$ git config --global user.name "Jeff Barr"
$ git config --global user.email jbarr@amazon.com
AWS CLIはawscliというIAMユーザをデフォルトで参照するように設定しました。このユーザにはAWSCodeCommitFullAccessポリシーをアタッチして私のCodeCommitレポジトリの管理作業ができる権限を与えました:
このポリシーは、その名が示す様に、全てのCodeCommitの操作を私が持っている全てのレポジトリに対して許可します。実際の環境では、もっと制限をかけた権限が適しています。例えば、何人かのシニアな開発者だけにレポジトリの作成と削除を許可したい、といった形です。
次に、GitがCodeCommitで認証できるように設定をしました。以下の様にcredential helperを使うように指示しました:
$ git config --global credential.helper '!aws codecommit credential-helper $@'
$ git config --global credential.UseHttpPath true
credential helperはwasコマンドの一部として提供されているので、CLIで使うために設定したどのプロファイルでも参照することができます。このオプションはいくつかのプロジェクトに関わっていて、それぞれのレポジトリで個別の認証情報を使っている場合にとても役に立ちます。この場合には、credential.helperを以下の様にレポジトリ毎にセットします:
$ cd repo1
$ git config --local credential.helper '!aws codecommit --profile jb_repo1 credential-helper $@'
$ cd ../repo2
$ git config --local credential.helper '!aws codecommit --profile jb_repo2 credential-helper $@'
Gitの設定と共に、コンソールを使ってレポジトリを作成しました(もちろんCLIのcreate-repositoryコマンドを使うこともできました):
私のレポジトリはすぐに利用可能となりました。CodeCommitのダッシュボードでは一目で全ての私のレポジトリを見ることができました。
いくつかのコンテンツをAWS_PHP_SDKレポジトリに追加する準備ができていたので、URLのアイコンをクリックしHTTPSのURLを取得しました(SSL URLもそのアイコンを通じて入手可能です)。
そして、SDKをcloneして私のレポジトリにpushしました:
$ git push https://git-codecommit.us-east-1.amazonaws.com/v1/repos/AWS_PHP_SDK --all
Counting objects: 28690, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (9608/9608), done.
Writing objects: 100% (28690/28690), 12.91 MiB | 625.00 KiB/s, done.544.00 KiB/s
Total 28690 (delta 16604), reused 28686 (delta 16603)
To https://git-codecommit.us-east-1.amazonaws.com/v1/repos/AWS_PHP_SDK
* [new branch] 2.8 -> 2.8
* [new branch] master -> master
コンソールからレポジトリについてもっと学んでいるところです:
レポジトリをリネームしたり他の設定を調整するオプションもありました:
今から利用可能です
CodoCommitはもう利用可能であり、今日から使い始められます!
1アクティブユーザ(一意なIAMユーザやロール、federatedユーザ、またはrootアカウント)あたり1ヶ月$1が課金されます。いくつでも好きな数のGitレポジトリを保存することができます。
各ユーザは10GBのストレージと2,000回のGitリクエスト(pushやpullといったレポジトリのオブジェクト転送)が毎月の利用枠としてあり、各AWSアカウントでユーザにまたがってプールされます。追加のストレージコストは$0.06/GB/月で、追加のリクエストは1回あたり$0.001です。
AWS無料枠として、新規又は既存のお客様は毎月5アクティブユーザ、50GBのストレージ、そして10,000Gitリクエストが無料でご利用できます。
これから
我々はCodeCommitに大きなプランを持っています!以下が次のステップとして動いているもののいくつかになります:
- Post後のHook - CodeCommitがレポジトリへのpushの後に毎回外部のシステムを呼び出すことができるようになります。これによって、継続的インテグレーション(CI)サーバに新しいコードがビルドやテスト可能となったことを通知したりできます。
- CloudTrailサポート - CodeCommit APIの呼び出しが記録され監査可能となります。
- リージョン拡張 - 本日はUS East(Northern Virginia)リージョンのみでのローンチです。追加のリージョン拡大を時間をかけて行っていく計画です。
- UI機能の追加 - 我々はソースコードレポジトリとしての完全なWebベースのUIを作り出すために動いています。
-- Jeff; (翻訳: SA岩永)
原文: https://aws.amazon.com/blogs/aws/now-available-aws-codecommit/