EC2 Instance Connect を利用してプライベートサブネット内にあるEC2からGitHubリポジトリをクローンしてみた

EC2 Instance Connect を利用してプライベートサブネット内にあるEC2からGitHubリポジトリをクローンしてみた

2025.09.01

こんにちは!製造ビジネステクノロジー部の小林です。

EC2 Instance Connect を使用してプライベートサブネットにある EC2 インスタンスに接続する方法を、以前のブログで紹介しました。
https://dev.classmethod.jp/articles/shoma-private-subnet-ec2-instance-connect-environment-aws-cdk-construction/

今回は、接続したインスタンスから GitHub リポジトリをクローンする検証をしてみます!

やりたいこと

AWSコンソールのEC2 Instance Connect機能を使用してプライベートIPでEC2に接続し、そのインスタンス上で GitHub リポジトリをクローンします。

構成図

今回の構成を図で表すと以下のようになります。
スクリーンショット 2025-08-31 23.12.07

前提条件

  • 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のブラウザで認証

  1. https://github.com/login/device をブラウザで開く
    スクリーンショット 2025-08-31 18.53.16

  2. 表示されたワンタイムコードを入力
    スクリーンショット 2025-08-31 18.54.15

  3. 認証を許可
    スクリーンショット 2025-08-31 18.54.27

  4. 認証が完了
    スクリーンショット 2025-08-31 18.54.59

認証状態の確認

# 認証が正常に完了したか確認
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 にログインできるので便利ですね!

この記事が皆さんのお役に立てば幸いです。

参考記事

https://dev.classmethod.jp/articles/aws-cloudshell-github-cli/

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.