AWS EC2でUbuntuインスタンスを構築する完全ガイド

クラウド



この記事のポイント

  • AWS EC2 の無料枠(t2.micro)で Ubuntu 24.04 LTS を起動できる。接続後は lsb_release -a で「Ubuntu 24.04.4 LTS / noble」と表示されれば成功です
  • SSH鍵は ssh-keygen -t ed25519 で生成。公開鍵は実測で 94文字と、RSA-4096の738文字の約8分の1。短いのにセキュリティは同等以上です
  • 初期設定は sudo apt update && sudo apt install → UFWで ssh を最初に許可 → enable の順。順番を間違えると接続が切れます
  • 東京リージョン(ap-northeast-1)の t3.micro は実測で月額 $9.93(≈1,590円)。最安は ARM の t4g.micro で $7.88(≈1,262円)でした(ec2.shop API・2026-06-15取得)
  • Ubuntu 24.04 LTS は 2029年4月までセキュリティサポートあり。新規構築なら迷わずこれを選びます

AWS EC2 で Ubuntu を動かす方法を、コンソール操作からSSH接続・初期設定まで一通りまとめました。「VPSは聞いたことあるけどAWSはよくわからない」という方を想定して書いています。

本記事では Ubuntu 24.04 LTS を使います。コマンドの実行結果は ubuntu:24.04 Docker公式イメージで実際に動かしたものを、料金は ec2.shop API(AWS Price List)から実取得したデータをそのまま載せています。想像で書いた数字は使っていません。

注意

AWS EC2 は無料枠(フリーティア)を超えると料金が発生します。本記事の手順を試す際は t2.micro(フリーティア対象)を選ぶか、不要なインスタンスはこまめに停止・削除してください。停止だけだと EBS ボリューム代がかかり続けます。

目次

  1. AWS EC2 とは
  2. インスタンスタイプの選び方と料金(実測)
  3. EC2インスタンスを作成する
  4. SSHキーペアを生成する(ED25519 実測)
  5. EC2にSSH接続する
  6. Ubuntu初期設定(apt update / upgrade)
  7. UFWファイアウォールの設定
  8. よくあるエラーと解決策
  9. まとめ

AWS EC2 とは

EC2(Elastic Compute Cloud)は AWS が提供する仮想サーバーサービスです。一言で言うと「クラウド上のLinuxサーバーを秒単位で借りられる」仕組みです。VPS(仮想専用サーバー)の AWS 版だと考えると分かりやすいでしょう。

VultrやConoHaといった一般的なVPSと似ていますが、EC2の特徴は次のとおりです。

  • インスタンスタイプが豊富。実測で東京リージョンには 790種類のタイプが存在します(1vCPU/1GBの t2.micro から数百コアのハイスペックまで)
  • フリーティア(無料枠)として t2.micro が月750時間まで12ヶ月間無料で使える
  • 東京リージョン(ap-northeast-1)があり、日本からのレイテンシが低い
  • S3・RDS・Lambdaなど他のAWSサービスとの連携がしやすい
AWS EC2 製品ページ(公式・実キャプチャ)
AWS EC2 製品ページ(公式・実キャプチャ)

インスタンスタイプの選び方と料金(実測)

EC2には「インスタンスタイプ」と呼ばれるスペック区分があります。初心者がまず知っておくべきは T系(バースト可能な汎用タイプ) です。普段は低負荷で、たまに高負荷になる用途(個人開発・小規模Web・学習)にちょうど合います。

以下は ec2.shop API(AWS Price List を整形して配信する公開API)から取得した東京リージョン(ap-northeast-1)のオンデマンド料金です(2026年6月15日取得)。月額は時間単価 × 730時間(AWSの標準月時間)で算出し、円換算は同日実取得した USD/JPY=160.14 を使っています。

EC2 東京リージョン主要インスタンス料金(実測)
EC2 東京リージョン主要インスタンス料金(実測)

入門者には t3.micro(実測 月額 $9.93 / ≈1,590円)か、ARM アーキテクチャの t4g.micro(月額 $7.88 / ≈1,262円)がコスパ良好です。とにかく無料で試したいなら、フリーティア対象の t2.micro を選んでください。

用途 推奨インスタンス 月額(実測) 備考
学習・お試し t2.micro 無料(フリーティア) 新規アカウントは12ヶ月間750h/月まで無料
個人開発・小規模 t3.micro $9.93/月(≈1,590円) 2vCPU / 1GB。常時稼働でもリーズナブル
コスト最優先 t4g.micro $7.88/月(≈1,262円) ARM(Graviton)。x86バイナリが動かない場合あり
Webアプリ本番 t3.medium $39.71/月(≈6,359円) 2vCPU / 4GB。WordPressなら余裕のスペック

料金の一次ソースとして、ec2instances.info(現 instances.vantage.sh)で東京リージョンを実際に表示した画面も載せておきます。AWS公式の価格表は読みにくいので、こうした比較サイトでスペックと値段を一覧する方法も覚えておくと便利です。

ec2instances.info 東京リージョン料金一覧(実キャプチャ)
ec2instances.info 東京リージョン料金一覧(実キャプチャ)

EC2インスタンスを作成する

AWSマネジメントコンソールにログインして EC2 ダッシュボードを開きます。まだアカウントがない場合は aws.amazon.com から無料で作れます。

手順1:リージョンを「東京」に変更する

コンソール右上に表示されているリージョン名をクリックし、アジアパシフィック(東京) を選択します。日本国内からアクセスするなら東京リージョン一択です。

ここだけは確認してください

リージョンを変え忘れるとアメリカ(us-east-1)などにインスタンスが作られます。東京リージョンか確認してから「インスタンスを起動」ボタンを押してください。

手順2:AMI(OSイメージ)を選ぶ

インスタンス起動ウィザードで Ubuntu Server 24.04 LTS (HVM), SSD Volume Type を選択します。AMI(Amazon Machine Image)とはOSのひな形のことです。




AMI 検索のポイント
AMI 名: Ubuntu Server 24.04 LTS (HVM)
アーキテクチャ: 64ビット (x86) ← まずはこちら
ルートデバイスタイプ: EBS
仮想化タイプ: HVM
→ Canonical(Ubuntu公式)提供のものを選ぶこと

なお t4g 系(ARM)を選ぶ場合は、AMIのアーキテクチャを「64ビット (Arm)」に切り替える必要があります。x86向けのバイナリは ARM では動かないので、初めてなら x86 のままが無難です。

手順3:インスタンスタイプを選ぶ

学習目的なら t2.micro(フリーティア対象)を選びます。ウィザードには「フリーティアの対象」というラベルが表示されます。

手順4:ネットワーク設定とセキュリティグループ

セキュリティグループは「ファイアウォールのルール設定」です。最低限、以下の3つを許可してください。

  • SSH(ポート22)— あなたのPCからの接続に必要
  • HTTP(ポート80)— Webサーバーを動かす場合
  • HTTPS(ポート443)— SSL証明書を使う場合

SSH のソース IP は絞りましょう

「任意の場所(0.0.0.0/0)」にすると世界中からSSHポートへのアクセスが試みられます。初期設定では「マイ IP」(= 現在のIPアドレスのみ)を選ぶのが安全です。

手順5:ストレージの設定

デフォルトの 8GB でも動きますが、20GB以上に増やしておくことをおすすめします。パッケージや Docker イメージを入れると意外とすぐ埋まります。フリーティアは 30GB まで無料です。

SSHキーペアを生成する(ED25519 実測)

EC2への接続にはSSH鍵認証を使います。パスワード認証よりセキュリティが高く、AWSはデフォルトでSSH鍵認証のみを許可しています。

鍵の種類は ED25519 を選びましょう。RSA-4096と同等以上のセキュリティで、鍵が大幅に短いです。実際に ubuntu:24.04 コンテナで両方を生成して公開鍵の文字数を測ったところ、ED25519 は94文字、RSA-4096 は738文字でした。約8分の1の長さです。

EC2接続用 SSH 鍵ペア生成(ED25519 vs RSA-4096)実測
EC2接続用 SSH 鍵ペア生成(ED25519 vs RSA-4096)実測

手順1:ローカルマシンで鍵ペアを生成する




ubuntu@local-machine: ~
$ ssh-keygen -t ed25519 -f ~/.ssh/aws_ec2_key -C “ubuntu@my-ec2”
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/aws_ec2_key
Your public key has been saved in /home/user/.ssh/aws_ec2_key.pub
The key fingerprint is:
SHA256:n92Ti0l6dIx3Mge3s4BCkx8jxrab54wF9z1Sp3KGPik ubuntu@my-ec2

ubuntu:24.04 コンテナ(OpenSSH_9.6p1)で実際に生成したフィンガープリントです(SHA256:n92Ti0l6dIx3Mge3s4BCkx8jxrab54wF9z1Sp3KGPik)。パスフレーズは空でもエンターを2回押せば生成できますが、ノートPCに鍵を置くなら設定しておくと安心です。

手順2:AWSコンソールにキーペアを登録する

EC2 ダッシュボード → 「キーペア」→「キーペアのインポート」で ~/.ssh/aws_ec2_key.pub(公開鍵)の内容を貼り付けます。あるいは、インスタンス起動ウィザードの「新しいキーペアの作成」で AWS 側で生成した .pem ファイルをダウンロードする方法もあります。

秘密鍵(.pem)のパーミッションに注意

AWSからダウンロードした .pem ファイルは、そのままでは SSH クライアントに拒否されます。必ず chmod 400 ~/.ssh/your-key.pem でアクセス権を制限してください。

EC2にSSH接続する

インスタンスが「実行中」状態になったら、コンソールで パブリック IPv4 アドレス(例: 203.0.113.1)を確認してSSH接続します。以下のIPはドキュメント用の例なので、実際のIPに置き換えてください。

手順1:基本のSSH接続コマンド




ubuntu@local-machine: ~
$ ssh -i ~/.ssh/aws_ec2_key ubuntu@203.0.113.1
The authenticity of host ‘203.0.113.1 (203.0.113.1)’ can’t be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘203.0.113.1’ (ED25519) to the list of known hosts.
Welcome to Ubuntu 24.04.4 LTS (GNU/Linux 6.8.0-1029-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
ubuntu@ip-10-0-1-100:~$

ユーザー名は Ubuntu の場合 ubuntu です(Amazon Linux なら ec2-user、CentOS なら centos になります)。

手順2:~/.ssh/config に登録して接続を簡略化する

~/.ssh/config に設定を書いておくと、次回から ssh my-ec2 だけで接続できます。




~/.ssh/config
Host my-ec2
HostName 203.0.113.1
User ubuntu
IdentityFile ~/.ssh/aws_ec2_key
Port 22
$ chmod 600 ~/.ssh/config
$ ssh my-ec2
ubuntu@ip-10-0-1-100:~$

Ubuntu初期設定(apt update / upgrade)

EC2に接続したら、まず最初にやることはパッケージリストの更新とアップグレードです。新しく立ち上げたサーバーには古いパッケージが入っていることがあります。

Ubuntu 24.04.4 LTS バージョン確認(実測)
Ubuntu 24.04.4 LTS バージョン確認(実測)

手順1:バージョンを確認する




ubuntu@ip-10-0-1-100: ~
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.4 LTS
Release: 24.04
Codename: noble

ubuntu:24.04 公式イメージで実際に取得した出力です。Ubuntu 24.04.4 LTS、コードネーム noble と表示されれば正しく起動できています。

手順2:apt update と upgrade




ubuntu@ip-10-0-1-100: ~
$ sudo apt update
Get:1 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu noble InRelease
Reading package lists… Done
$ sudo apt upgrade -y
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

apt update はパッケージリストの更新(どのバージョンが存在するかを確認)、apt upgrade は実際にパッケージを最新化します。この2ステップはセットで覚えてくださいapt update を忘れがちですが、これをやらないと古いバージョンが入ったり、後述の「パッケージが見つからない」エラーの原因になります。

手順3:基本的なツールをインストールする

Ubuntu 24.04 と 22.04 では、apt で入るパッケージのバージョンがけっこう違います。両方の公式 Docker イメージで apt-cache policy を実行して、インストール候補バージョンを実測比較しました。

Ubuntu 22.04 vs 24.04 パッケージバージョン比較(実測)
Ubuntu 22.04 vs 24.04 パッケージバージョン比較(実測)



ubuntu@ip-10-0-1-100: ~
$ sudo apt install -y curl git wget unzip
The following NEW packages will be installed: curl git wget unzip
$ curl –version | head -1
curl 8.5.0 (…) libcurl/8.5.0 OpenSSL/3.0.13 …
$ git –version
git version 2.43.0
$ wget –version | head -1
GNU Wget 1.21.4 built on linux-gnu.

ubuntu:24.04 での実測値は curl 8.5.0git 2.43.0wget 1.21.4。Ubuntu 22.04 の curl 7.81.0 / git 2.34.1 から大幅に更新されています。OpenSSHサーバーも 8.9p19.6p1 に上がっており、新規構築で 24.04 を選ぶ理由になります。

手順4:タイムゾーンを日本時間に設定する




ubuntu@ip-10-0-1-100: ~
$ sudo timedatectl set-timezone Asia/Tokyo
$ timedatectl | grep “Time zone”
Time zone: Asia/Tokyo (JST, +0900)

timedatectl でタイムゾーンが Asia/Tokyo (JST, +0900) になっていれば完了です。これでログのタイムスタンプや date コマンドが日本時間で表示されるようになります。

UFWファイアウォールの設定

UFW(Uncomplicated Firewall)は Ubuntu の標準ファイアウォールツールです。AWSのセキュリティグループでも制御できますが、OS側でも二重にブロックしておくと安全です。Ubuntu 24.04 の ufw バージョンは実測で 0.36.2 でした。

EC2 Ubuntu 初期セットアップ+UFW設定(実測)
EC2 Ubuntu 初期セットアップ+UFW設定(実測)



ubuntu@ip-10-0-1-100: ~
$ sudo apt install -y ufw
ufw 0.36.2 installed
$ sudo ufw default deny incoming
Default incoming policy changed to ‘deny’
$ sudo ufw default allow outgoing
Default outgoing policy changed to ‘allow’
$ sudo ufw allow ssh
Rules updated
$ sudo ufw allow 80/tcp
Rules updated
$ sudo ufw allow 443/tcp
Rules updated
$ sudo ufw show added
Added user rules (see ‘ufw status’ for running firewall):
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

注目したいのは sudo ufw allow ssh が、実測の ufw show addedufw allow 22/tcp として登録されている点です。ssh はポート22のエイリアスなんですね。正直、これは順番を間違えると詰まる典型ポイントで、必ず ufw allow ssh を先に実行してから enable するのが鉄則です。

UFW 有効化でSSH接続が切れた場合

SSH(22番ポート)を許可せずに ufw enable してしまうと、SSH接続ができなくなります。その場合は AWSコンソールの「EC2 Instance Connect」機能でブラウザからコンソール接続し、sudo ufw allow ssh を実行してください。

よくあるエラーと解決策

①Connection refused / Connection timed out

SSH接続で Connection refused または Connection timed out が出る場合は次を確認してください。

  • インスタンスが「実行中」状態になっているか(「保留中」はまだ起動中)
  • セキュリティグループでSSH(ポート22)が許可されているか
  • 接続先のIPアドレスが正しいか(再起動するとパブリックIPが変わる場合がある)

②WARNING: UNPROTECTED PRIVATE KEY FILE!




エラーメッセージ
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for ‘/home/user/.ssh/aws_ec2_key’ are too open.

秘密鍵のパーミッションが広すぎるエラーです。chmod 400 ~/.ssh/aws_ec2_key または chmod 600 ~/.ssh/aws_ec2_key で解決します。

③Please login as the user “ubuntu” rather than the user “root”

ssh root@... と接続しようとしたときのエラーです。Ubuntu の EC2 インスタンスのデフォルトユーザーは ubuntu です。ssh -i ~/.ssh/key ubuntu@IPアドレス と書き直してください。

④E: Unable to locate package xxx

apt install でパッケージが見つからない場合は sudo apt update が漏れています。必ず先に実行してください。




ubuntu@ip-10-0-1-100: ~
E: Unable to locate package nginx
$ sudo apt update
Reading package lists… Done
$ sudo apt install -y nginx
The following NEW packages will be installed: nginx

まとめ

AWS EC2 で Ubuntu 24.04 LTS を起動して初期設定を完了させるまでの流れをまとめました。

  • インスタンスタイプは学習なら t2.micro(フリーティア)、長期運用なら t3.micro(実測 月約1,590円)が現実的。最安は ARM の t4g.micro(約1,262円)
  • SSH鍵は ssh-keygen -t ed25519 で生成。公開鍵は実測94文字で、RSA-4096の738文字より大幅に短く、セキュリティは同等以上
  • 接続後は apt update && apt upgrade → 基本ツールインストール → UFW設定の3ステップで初期設定完了
  • Ubuntu 24.04 LTS のパッケージ実測値: curl 8.5.0 / git 2.43.0 / wget 1.21.4 / openssh-server 9.6p1 / ufw 0.36.2
  • タイムゾーンは timedatectl set-timezone Asia/Tokyo で日本時間に設定
著者アイコン
著者アイコン

AWS EC2 はフリーティア期間が終わると自動課金が始まります。不要になったインスタンスは「停止」ではなく「終了(削除)」しないと、EBSボリュームの費用が継続してかかります。これ、意外とやらかす落とし穴です。

「AWSの管理画面はちょっと複雑だな」と感じたら、もっとシンプルで安いVPS(Vultr・ConoHa VPS など)から始めるのも手です。目的に応じて使い分けてみてください。

VPS各社の料金・性能比較については も参考にしてください。

コメント

タイトルとURLをコピーしました