
EC2 Instance Connect を利用してプライベートサブネット内にあるEC2からGitHubリポジトリをクローンしてみた
こんにちは!製造ビジネステクノロジー部の小林です。
EC2 Instance Connect を使用してプライベートサブネットにある EC2 インスタンスに接続する方法を、以前のブログで紹介しました。
今回は、接続したインスタンスから GitHub リポジトリをクローンする検証をしてみます!
やりたいこと
AWSコンソールのEC2 Instance Connect機能を使用してプライベートIPでEC2に接続し、そのインスタンス上で GitHub リポジトリをクローンします。
構成図
今回の構成を図で表すと以下のようになります。
前提条件
- Amazon Linux 2023を使用したEC2インスタンスを利用する
- EC2 Instance Connectでの接続が完了していること
- インターネットアクセスが可能な環境(NATゲートウェイ等)
やってみた
それでは、必要なツールのインストールから始めていきます。
Git インストール
まず、バージョン管理に必要なGitをインストールします。
# システム更新
sudo dnf update -y
# Gitのインストール
sudo dnf install git -y
# Gitがインストールされたことの確認
git --version
# Gitの設定
git config --global user.name “XXXXXXXXXXXX”
git config --global user.email “XXXXXXXXXXXX"
GitHub CLI インストール
GitHubとの認証を簡単に行うため、GitHub CLI(gh)をインストールします。
## Github CLI のインストール
type -p yum-config-manager >/dev/null || sudo yum install yum-utils
sudo yum-config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
sudo yum install gh
## GitHub CLIがインストールできたことの確認
gh --version
GitHubで認証する
EC2からGitHubのプライベートリポジトリにアクセスするため、GitHub CLIを使用して認証を行います。
## GitHub CLI 認証を開始
gh auth login
認証オプションの選択
認証時は以下のように選択して進めます。
? Where do you use GitHub?
> GitHub.com
? What is your preferred protocol for Git operations on this host?
> HTTPS
? Authenticate Git with your GitHub credentials?
> Yes
? How would you like to authenticate GitHub CLI?
> Login with a web browser
ブラウザ認証の手順
EC2インスタンスにはGUIブラウザがインストールされていないため、以下の手順で手動認証を行います。
! First copy your one-time code: 6324-1C66
Press Enter to open https://github.com/login/device in your browser...
! Failed opening a web browser at https://github.com/login/device
ワンタイムコードをメモ
表示されたコード(例:6324-1C66)をメモします。
! First copy your one-time code: 6324-1C66
Press Enter to open https://github.com/login/device in your browser...
! Failed opening a web browser at https://github.com/login/device
ローカルPCのブラウザで認証
-
https://github.com/login/device をブラウザで開く
-
表示されたワンタイムコードを入力
-
認証を許可
-
認証が完了
認証状態の確認
# 認証が正常に完了したか確認
gh auth status
成功すると以下のような出力が表示されます。
github.com
✓ Logged in to github.com account xxxxxxxx (/home/ec2-user/.config/gh/hosts.yml)
- Active account: true
- Git operations protocol: https
- Token: gho_************************************
- Token scopes: 'gist', 'read:org', 'repo', 'workflow'
動作確認
認証が完了したら、実際にGitHubリポジトリ(プライベート)をクローンしてみましょう!
# 作業用ディレクトリを作成
mkdir workspace
cd workspace
# GitHubリポジトリをクローン
git clone <GitHub リポジトリの URL>
クローンに成功すると以下のような内容が表示されます。
Cloning into 'prisma-aws-migration'...
remote: Enumerating objects: 45, done.
remote: Counting objects: 100% (45/45), done.
remote: Compressing objects: 100% (35/35), done.
remote: Total 45 (delta 8), reused 45 (delta 8), pack-reused 0
Receiving objects: 100% (45/45), done.
Resolving deltas: 100% (8/8), done.
おわりに
EC2 Instance Connect を利用してプライベートサブネットのEC2インスタンスに接続し、そこから GitHub リポジトリをクローンする方法を解説しました。
GitHub CLI (gh コマンド) を使うことで、面倒な認証設定やトークン管理なしで簡単に GitHub にログインできるので便利ですね!
この記事が皆さんのお役に立てば幸いです。
参考記事