AWS CodeCommitを使ってみた
AWS CodeCommitを使ってみた
はじめまして.ハンズラボ内定者の美代(みしろ)と申します.
私は鹿児島の出身で,今は熊本でコンピュータサイエンスを専攻している修士課程の大学院生です.高校の頃からコンピュータに興味があり,関連資格としては基本情報技術者,応用情報技術者,データベーススペシャリストを持っています.
私がハンズラボを選んだ理由は主に内製とクラウドです.内製については,実際に使う人に近いところで開発し,使ってもらうことによって,手応えを感じやすい環境だと思うからです.さらにクラウドを積極的に利用して本業に集中できるように改善していく姿勢に共感して志望しました.入社後はクラウド環境でのアプリケーションの開発手法を身に着けたいと思います.またモバイルアプリ開発や組み込み開発にも関心があるので,そちらも勉強したいと思います.
さて,修論や研究データはプライベートなリポジトリに置きたいものですが,Gitのホスティングサービスでは,プライベートなリポジトリは有料だったり,リポジトリ数が制限されていたりすることが多いです.AWSのCodeCommitを使えば,プライベートなリポジトリを置くことができます.今回その使い方と,私がどう使っているかについて紹介したいと思います.なおGitHubやBitbucket等のGitホスティングサービスを使ったことのあるという前提で書いています.
CodeCommitとは?
CodeCommitはAWSが提供するGitのホスティングサービスです.Gitは分散型のバージョン管理システムで,リポジトリと呼ばれる場所にソースコードとその変更履歴を保存します.CodeCommitは,Gitのリモートリポジトリを提供するサービスです.
何に使っているか
私がCodeCommitに置いているリポジトリは,主に下記の3つです.
- 修論のリポジトリ
- 実験データ
- プライベートで作ったコードのアーカイブ先
主に下の図のような使い方をしてます.
まず昼間,研究室マシンで作業してローカルリポジトリにコミットします.作業が終わるとリモートリポジトリにプッシュして帰宅します.帰宅してから,CodeCommitのリモートリポジトリからノートPCへプルしてきます.
これにより研究室のマシンとCodeCommit,ノートPCの3箇所に最新のデータが残る事になります.この3箇所が同時に故障することはほとんど考えられないので,修論や実験データのデータ消失の心配をしなくても済みます.
料金について
CodeCommitにも無料利用枠があります.しかも12ヶ月超えても条件を満たせば無料枠は続きます.条件は下記の3つです.料金についての詳細は公式サイトの説明をご覧ください.
- アクティブユーザ 5人
- ストレージ 50GB / 月
- Gitリクエスト 10,000 件 / 月
一人で使う分には十分な条件です.3ヶ月ほど使っていますが,無料枠を超えたことはまだありません.公開したくないコードで,すでにクローズしたリポジトリのアーカイブ先としても使えると思います.
使い方
使い方はGitHub等の他のGitホスティングサービスとほとんど同じですが,ユーザ管理をAWS IAMでするようになっています.そのためSSHで接続する前にIAMの設定が必要です.
IAMの設定(アクセス権の付与)
まずIAMを開いて,CodeCommitへアクセス権を付与するIAMユーザを選択するか,新しく作成します.
IAMユーザを選択し,アクセス許可
タブを開きます.
ポリシーのアタッチ
をクリックし,ポリシー一覧の中からAWSCodeCommitFullAccess
を選択します.
IAMの設定(SSH公開鍵の追加)
続いてIAMユーザにSSH公開鍵を追加します.
認証情報
タブをクリックし,一番下のAWS CodeCommitのSSHキー
にSSHの公開鍵をアップロードします.公開鍵をアップロードすると,SSHキーID
が発行されます.このSSHキーID
がSSH接続するときのユーザ名になります.
交換鍵認証するローカルのSSHの設定に,SSHキーID
を追加します.
CodeCommitへSSH接続する際に,ユーザ名を常にSSHキーIDで接続するように設定します.
~/.ssh/config
に下記を書き込みます.
Host git-codecommit.*.amazonaws.com
User [SSHキーID]
これで準備完了です.
CodeCommit
CodeCommitを開きます.今のところ,バージニア北部のリージョンしかサポートされてないのでリージョンを変更します.
後は他のGitホスティングサービスと同じで,リポジトリを作成してクローンします.リポジトリ一覧はこんな感じです.
使用した感想
3ヶ月ほど使っていますが,トラブルなく使っています.
GitHubからWikiやIssues等のコミュニティ機能を除いた感じという印象です.
リージョンが離れているためか,リモートリポジトリへの転送速度が遅いです.下図のようにgit pull
に5秒ほどかかります.
おわりに
CodeCommitを一人で使う分には,無料枠内で料金を気にせずにプライベートリポジトリを維持できます.
手頃なバックアップ先として使ってみてはいかがでしょうか?