Skip to Content

Terraformで AWS CodeCommitを作成

概要

Terraformから AWS CodeCommitを作成し、git pushできるまでの記録

環境

Terraform v0.12.4

AWS認証情報

アクセスキーを保存

> cat ~/.aws/credentials

実行結果

[default]
aws_access_key_id = [IAMのアクセスキーID]
aws_secret_access_key = [シークレットキー]

リージョン情報を保存
注意:効果がなかった

> cat ~/.aws/config

実行結果

[default]
region=ap-northeast-1
output=json

Terraform

~/.aws/configのリージョン情報が反映されなかったので直接記述

provider "aws" {
  region = "ap-northeast-1"
}

resource "aws_codecommit_repository" "terraform" {
  repository_name = "ecs_practis_image"
  description     = "ECS学習用イメージリポジトリ"
}

planで問題なければapply

> terraform plan
> terraform apply

CodeCommit上で作成されたことを確認

SSH設定

AWS用にSSH鍵作成(必須ではない)

> ssh-keygen -t rsa -b 4096 -C "[メールアドレス]" -f ~/.ssh/id_rsa_aws

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):[パスフレーズ入力]
Enter same passphrase again:[パスフレーズ入力]
Your identification has been saved in /home/ohmura/.ssh/id_rsa_aws.
Your public key has been saved in /home/ohmura/.ssh/id_rsa_aws.pub.
The key fingerprint is:

公開鍵の内容をコピー

> cat ~/.ssh/id_rsa_aws.pub

IAMの認証情報タブを開く

SSHパブリックキーのアップロードを押して、コピーした内容をペースト

追加されたSSHキーIDをコピー

.ssh配下にconfigを作成

vi ~/.ssh/config

内容

Host git-codecommit.*.amazonaws.com
  User [アクセスキーをペースト]
  IdentityFile ~/.ssh/id_rsa_aws

Git

CodeCommitからクローンするURLをコピー(”SSH”をクリック)

クローンする

> git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/ecs_practis_image

PushのテストでReadmeを作成する

> ls
ecs_practis_image

> cd ecs_practis_image
> vi readme.md

プッシュする

> git add readme.md
> git commit -m "first commit"
> git push -u origin master
Warning: Permanently added the RSA host key for IP address '52.119.218.16' to the list of known hosts.
Counting objects: 3, done.
Writing objects: 100% (3/3), 243 bytes | 243.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/ecs_practis_image
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

CodeCommitに反映された

まとめ

参考

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.html https://www.terraform.io/docs/providers/aws/index.html