2026年の今更、EC2の立て方について書いた記事は少ないのでは?と思い投稿してみます
※本記事はAIが書いて、人間が伴走しファクトチェックしています。
ちょっと大げさな表現がありますがAIの性格だと思って生暖かい目で見ていただければ幸いです。
はじめに:なぜクラウドに開発環境を作るのか?
プログラミングやインフラの勉強をしていると、「手元のPCに色々なツールを入れすぎて環境がぐちゃぐちゃになってしまった…」という経験はありませんか?
あるいは、「新しいツールを試したいけど、PCの環境を汚したくない」と思うこともあるでしょう。
そんな時こそ AWS(クラウド) の出番です!
必要な時だけサクッとサーバー(EC2)を立ち上げ、使い終わったら消す。この「使い捨てできる自分専用の開発環境」を持てるようになると、学習や開発のスピードが劇的に上がります。
この連載について:手作業から完全自動化へのステップアップ
本記事は、 「同じ構成のEC2開発環境を、異なるアプローチで構築・進化させていく」 連載企画の第1回目です。
- 第1回(今回):マネジメントコンソール編(画面ポチポチ構築) ← イマココ!
- 第2回:ユーザーデータ編(起動時のスクリプトで初期設定を自動化)
- 第3回:CloudFormation編(インフラのコード化・IaCによる完全自動化)
最終的には「コード一発で環境を自動構築」することを目指しますが、自動化の仕組みを深く理解するには、まず「手作業で何をやっているのか」を体感しておくことが非常に重要です。
今回構築する環境
今回はAWSマネジメントコンソールを使い、以下の強力な開発環境を構築します。
- OS: Ubuntu 24.04 LTS (開発情報を調べた時に一番情報が出てきやすいため)
-
インスタンスタイプ:
t3.small(2vCPU, 2GBメモリ)- 無料枠の
t2.micro(1GB) だとDockerビルド時にメモリ不足でフリーズしやすいため、快適さを重視して選択します。
- 無料枠の
-
ストレージ: 20GB (gp3)
- Dockerイメージは容量を消費するため、デフォルトの8GBから少し増やしておきます。
-
接続方法: EC2 Instance Connect(今回の目玉!)
- 面倒なSSHキーペア(秘密鍵)の作成や管理を一切省き、ブラウザからワンクリックで接続する最速の手法です。
それでは、さっそくAWSコンソールを開いて、クラウド上のマイルームを作っていきましょう!
ハンズオン:EC2インスタンスの起動(画面ポチポチ編)
AWSマネジメントコンソールにログインし、EC2のダッシュボードから「インスタンスを起動」をクリックします。
-
名前とタグ: わかりやすい名前(例:
dev-env-manual)を入力します。 - AMI(OS)の選択: 「Ubuntu Server 24.04 LTS (HVM), SSD Volume Type」を選択。アーキテクチャは「64ビット (x86)」のまま。
-
インスタンスタイプの選択:
t3.smallを選択。 -
キーペア (ログイン): * 💡 ここが最大の時短ポイント! ドロップダウンから**「キーペアなしで続行 (推奨されません)」**を選択します。EC2 Instance Connectを使うため鍵は不要です。
(※ここにキーペアなしを選択している画面のスクショを挿入) - ストレージの設定: デフォルトの8GBを「20GB」に変更。ボリュームタイプは「gp3」にしておきます。
🚨 つまずきポイント1:セキュリティグループの設定はどうする?
ネットワーク設定の箇所は、初心者にとって最大のトラップです。
今回はブラウザから接続する「EC2 Instance Connect」を使用しますが、「自分のPCのIP」だけを許可してしまうと、AWSのサービス経由での接続が弾かれて一生繋がりません!
最もスマートで安全な設定は以下の通りです。
- 「SSHからのトラフィックを許可する」にチェック。
- 送信元タイプを「カスタム」にします。
- 検索窓に
ec2-instance-connectと入力し、表示されるAWS公式のプレフィックスリスト(例: 東京リージョンならcom.amazonaws.ap-northeast-1.ec2-instance-connect)を選択します。
これにより、「AWSのEC2 Instance ConnectサービスからのみSSH接続を許可する」というセキュアな状態を作れます。HTTP/HTTPSは今回は開発用なのでチェックを外したままでOKです。
設定が完了したら、右側の**「インスタンスを起動」**ボタンをクリックします!
爆速!ブラウザからターミナルに接続
インスタンスが「実行中 (running)」になったら、さっそく接続してみましょう。
- EC2ダッシュボードで対象のインスタンスにチェックを入れ、画面上の「接続」ボタンをクリック。
- 「EC2 Instance Connect」タブを開きます。
🚨 つまずきポイント2:「パブリックIP」と「プライベートIP」どっちを選ぶ?
接続タイプを聞かれて迷うかもしれませんが、ここでは**「パブリックIPを使用して接続」**を選んでください。
- 選ぶ理由: 今回はサクッと環境を作るのが目的です。先ほどセキュリティグループで「AWS公式からのアクセスのみ許可」と設定したため、パブリックIPを使ってAWS経由で繋ぐのが最も手軽かつ安全です。(プライベートIPを選ぶと、追加のネットワーク構築が必要になってしまいます)
右下の「接続」をクリックすると、ブラウザの別タブで黒いターミナル画面が開き、即座にログインが完了します!Tera Termも鍵ファイルも不要。最高ですね!
開発ツールのインストール(手打ちコマンド編)
接続したターミナルで、以下のコマンドを順番にコピペして実行していきます。
① システムの最新化
sudo apt update && sudo apt upgrade -y
② Pythonの確認
(Ubuntu 24.04には最初からPython 3.12系が入っています)
python3 --version
③ 超高速なPythonパッケージマネージャ「uv」のインストール
curl -LsSf https://astral.sh/uv/install.sh | sh
# インストール後、パスを通すためにシェルを再読み込み
source $HOME/.local/bin/env
# 確認
uv --version
④ Docker & Docker Composeのインストール
# Docker本体のインストール
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 現在のユーザー(ubuntu)をdockerグループに追加し、sudoなしでdockerコマンドを使えるようにする
sudo usermod -aG docker ubuntu
# Docker Composeプラグインのインストール
sudo apt-get install -y docker-compose-plugin
🚨 つまずきポイント3:「*** System restart required ***」が出た!
ここでターミナルをよく見ると、再接続時などに以下のようなメッセージが出ることがあります。
*** System restart required ***
Last login: Wed Mar 4 13:15:52 2026 from ...
ubuntu@ip-172-31-x-x:~$
「えっ、エラー!?」と焦る必要はありません。これは先ほどの apt upgrade でLinuxのコア部分が更新されたため、「適用するために再起動してね」という親切なお知らせです。
また、Dockerの権限設定(usermod)を反映させるためにも、ここで一度インスタンスを再起動するのがベストです。
sudo reboot
コマンドを打つとターミナルが固まって接続が切れますが、これが正常な動作です。ブラウザのタブを閉じ、1〜2分待ってから、再度AWSコンソールの「接続」ボタンからターミナルを開き直してください。
動作確認:Dockerで「Hello World」を出してみよう!
再接続できたら、環境構築の総仕上げとしてDockerが正常に動くかテストします。
docker run hello-world
以下のようなメッセージが表示されれば大成功です!
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
... (中略) ...
Hello from Docker!
This message shows that your installation appears to be working correctly.
このメッセージが出たということは、Dockerが正常に起動し、インターネットからイメージをダウンロードでき、さらに権限設定もバッチリ反映されている証拠です!
これにて、クラウド上の強力な開発環境が完成しました。お疲れ様でした!
⚠️ 絶対に忘れないで!お片付け(リソースの削除)
今回は無料枠を超えた t3.small を使用しているため、起動しっぱなしにすると課金され続けます。使い終わったら必ずインスタンスを削除しましょう。
- EC2ダッシュボードに戻る。
- インスタンスを右クリックし、「インスタンスの状態」→**「インスタンスを終了 (Terminate)」**を選択。
- 確認画面で「終了」を押す。
これで課金はストップします。(※「停止 (Stop)」だとストレージ代が微量にかかるため、使い捨てる場合は必ず「終了」を選びます)。
おわりに & 次回予告
今回は画面をポチポチ操作し、コマンドをコピペして環境を作りました。しかし、毎回EC2を立てるたびにこれをやるのは面倒ですよね?
次回(第2回)は、今回叩いたコマンドをEC2の『ユーザーデータ』という機能に仕込み、起動した瞬間にすべてがインストール済みの状態にする魔法をご紹介します!お楽しみに!




