1. はじめに
AWSインフラをTerraformで構築する学習の第一歩として、作成したコードをGitHubで管理する設定を行いました。
初心者が陥りやすい「不要なファイルのコミット」や「GitHubの認証エラー」の解決策を含め、実行したコマンドの意味を一つずつ丁寧に解説します。
2. 安全にプッシュするための事前準備:.gitignore
Gitで管理したくないファイル(AWS CLIの本体や、機密情報を含むTerraformの状態ファイル)をあらかじめ除外します。
# .gitignoreの作成
cat <<EOF > .gitignore
.terraform/ # 初期化時にダウンロードされたプラグイン
*.tfstate # インフラの現在の状態(機密情報を含む可能性あり)
*.tfstate.backup
.terraform.lock.hcl # バージョン固定用ファイル
aws/ # AWS CLIのインストールディレクトリ(巨大なため除外)
awscliv2.zip # インストール用アーカイブ
EOF
3. GitHubへのプッシュ手順とコマンドの意図
① ローカルリポジトリの初期化
git init
git branch -M main
-
意図: 現在のディレクトリをGitの管理下に置き、デフォルトのブランチ名を
mainに設定します。
② ユーザー情報の登録(初回のみ)
git config --global user.email "your-email@example.com"
git config --global user.name "YourName"
- 意図: 「誰がこのコードを書いたか」という署名を設定します。これがないとコミットできません。
③ ファイルの選択と記録(コミット)
git add .
git commit -m "Initial commit: clean infrastructure code"
-
意図:
addで「どのファイルを保存するか」を選び、commitで「その時点の状態をメッセージと共に保存」します。
④ リモートリポジトリ(GitHub)との紐付け
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
- 意図: 自分のPC(ローカル)と、GitHub上の箱(リモート)のリンクを作成します。
⑤ GitHubへの送信(プッシュ)
git push -u origin main
- 意図: ローカルの記録をGitHubへアップロードします。
4. 【重要】ハマったポイントと解決策
トラブル1:GitHubのパスワード認証エラー
Password authentication is not supported というエラーが出ました。
- 原因: 現在のGitHubはセキュリティ上、普通のパスワードでのGit操作を禁止しています。
-
解決策: Personal Access Token (PAT) を発行し、パスワード欄にその「トークン(
ghp_...)」を入力することで解決しました。
トラブル2:不要なファイル(AWS CLI)が混入してしまった
最初のコミット時に、誤って数千個の実行ファイルを含めてしまいました。
-
解決策: 以下の手順で歴史を「掃除」しました。
-
rm -rf .gitで一度管理情報をリセット -
.gitignoreを正しく設定し直す - 再度
git add➔git commit -
git push -f origin mainでGitHub側の汚れた履歴を強制的に上書き
-
5. まとめ
今回の作業を通じて、以下のスキルを習得できました。
-
.gitignoreによる適切なファイル管理(不要なものを上げない) - GitHubのトークン認証によるセキュアな接続
- Gitの履歴をクリーンに保つためのリセット操作
GitHubにコードが公開されたことで、ようやくクラウドエンジニアとしての「実績」が目に見える形になりました。次は、このVPCにサブネットやサーバーを追加し、さらに構成を成長させていきます!