CodeCommitで管理する方法を解説する。Pipelineを利用してCI/CDを実現したいため。Fargateを利用しているアプリで、CodePipelineの機能を使ってブルーグリーンデプロイをできるようにしたい。そのためにまずはCodeCommitにソースコードをpushするところまで実施する。前提フォルダ構成プロジェクトのフォルダ構成は以下の通り。ローカルでGithubと連携しながら開発を始めていた。CodeCommitに新規リポジトリをしてpushするところから始める。以下の記事と同じプロジェクトを利用している。https://tomiko0404.hatenablog.com/entry/2021/09/19/ECS-Fargate-ReactappGit環境Gitをインストール済み。参考資料https://tomiko0404.hatenablog.com/entry/2021/08/29/%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92GitHub%E3%81%A7%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%83%A1%E3%83%A2また、今回はGitHub上のリモートリポジトリとの連携もしている。GitHubを利用していない場合は、GitHubを利用していない場合の事前作業を実施する。以下を見ながら実施した。Githubとの連携と同じようなことをやればOK。すると同じフォルダに.gitフォルダが作成される。.gitignoreの作成CodeCommiにプッシュしたくないファイルを設定するための.gitignoreファイルを作成しておく。.gitignore.gitignoreの例.gitignorenode_modules/npx-create-appでプロジェクトを作成している場合など、自動で.gitignoreファイルが作成されている場合はあえて自分で作成しなくても良い。.gitignoreファイルが存在しない場合は、node_modulesフォルダだけでも除外しておいたほうが良い。CodeCommitリポジトリを作成するAWSコンソールから「CodeCommit」コンソールへ「リポジトリを作成」→リポジトリ名等を入力ローカルにCodeCommit用の鍵を作成するローカルで以下コマンドを入力。ssh-keygen対話式で設定する。※鍵の名前は他と被らないように入力した。鍵ができていることを確認し、中身を見る。先ほどcatした公開鍵ファイル(.pubがついているほう。codecommit_rsa.pub)の中身をすべて貼り付ける。完了したら、SSHキーIDをメモしておく。IAMユーザに公開鍵を登録するconfigファイル作成configファイルを作成する。(すでにある場合は追記でよい。)configファイルとは、ssh接続の際に秘密鍵のパスを指定したり、のパスワードを入力したりが面倒なので、事前に設定しておこうという趣旨のもの。configconfigファイルの中身は以下とする。AWS公式ガイドからのコピー。IDではないので注意。repository.のエラーが出る。SSHキーIDをコピーするリモートリポジトリ作成GitHubのときと同じように、CodeCommitのリポジトリをリモートリポジトリに設定する。プロジェクトフォルダ直下で以下コマンドを実行する。commitのリポジトリ名とする。ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/[リポジトリ名]リモートリポジトリの名前はorigin_codecommitとした(originは既に存在していたため)。ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/[リポジトリ名]の部分はCodeCommitのマネジメントコンソールからコピーできる。remoteoriginorigin_codecommitローカルリポジトリのコミットローカルをのコミットを実施。"コミット"CodeCommitにpushする以下コマンドでpushする。masterパスワードを聞かれるので、先ほどssh-keygenの時に作成したパスワードを入力する。結果の確認pushが完了した。CodeCommit画面おわりにGitHubの代わりにCodeCommitでソースコードを管理するまで完了した。次回以降、ビルドの自動化(CodeBuild)やECRとの連携を試す。事業会社のシステム部門で働きはじめて5年目の会社員。システム企画/要件定義/システムアーキテクチャ等。Twitter→@bun_sugi過去の記事についてはてなブログに掲載の記事(主にプログラミングメモ)についてはこちらに掲載しております。エンジニアを目指す日常ブログお問い合わせ|プライバシーポリシ。