はじめに
本書の目的
本ドキュメントは、AWS上でLinuxサーバを立ち上げて使えるようになるまでをやさしく案内します。専門用語は必要最小限にとどめ、具体例を交えて手順を説明します。
なぜAWS EC2でLinuxを使うのか
自宅のPCをサーバ代わりにする代わりに、インターネット上の貸し出しサーバ(クラウド)を使います。AWS EC2は必要なときだけ起動して料金を抑えられるため、学習やテスト、軽めの本番環境に向きます。
対象読者
AWSを初めて触る方、Linuxサーバを学びたい方、ローカル環境とクラウドの違いを体験したい方に適しています。基本的なPC操作ができれば始められます。
本書で学べること
- EC2の基本概念と準備
- インスタンスの作成手順(画面操作に沿って)
- 作成後の接続方法と活用例
事前準備(簡単)
AWSアカウント(無料登録)とインターネット接続、PCがあれば十分です。さあ、次章から順に進めていきましょう。
AWS EC2の基本概念と準備
EC2とは
AWS EC2はクラウド上で動く仮想サーバー(インスタンス)を作るサービスです。物理サーバーを用意せずに、必要なときにサーバーを起動・停止できます。例として、Webサイトやテスト環境、学習用サーバーに向きます。
無料利用枠について
新規アカウントは無料利用枠が使えます。期間は12か月で、毎月最大750時間の無料利用が可能です。1台のインスタンスを継続稼働させても無料範囲に収まる場合が多いです。使いすぎに注意してください。
初心者向けのOS
初心者にはAmazon Linux 2やUbuntu Serverをおすすめします。事前設定が少なく、公式ドキュメントや情報が豊富です。例:コマンドラインに慣れていない場合はUbuntuのチュートリアルが分かりやすいです。
事前準備(チェックリスト)
- AWSアカウントを作成します。支払い情報が必要です。
- IAMで管理者権限を持ったユーザーを作成すると安全です。
- 利用するリージョンを決めます(東京ならap-northeast-1)。
- SSH接続用のキーペアを用意します(後でダウンロード)。
- セキュリティグループ(簡単なファイアウォール)でポートを設定します。
- ストレージ(EBS)サイズを決めます。
基本用語の簡単説明
- インスタンス:1台の仮想サーバー
- AMI:OSイメージ(テンプレート)
- EBS:ディスク領域
- セキュリティグループ:通信のルール
これらを確認すると、次の章でスムーズにインスタンスを作れます。
Step 1:AWSマネジメントコンソールへのアクセス
はじめに
この章では、AWSマネジメントコンソールにログインしてEC2ダッシュボードを表示するまでの手順をやさしく説明します。これがインスタンス作成の最初の一歩です。
手順(簡潔)
- ブラウザで https://console.aws.amazon.com/ にアクセスし、メールアドレスとパスワードでログインしてください。会社のアカウントやIAMユーザーを使う場合は、その資格情報でログインします。MFA(多要素認証)が設定されている場合はコードを入力してください。
- ログイン後、画面上部のリージョン選択メニューをクリックし、「アジアパシフィック(東京) ap-northeast-1」を選択してください。日本国内で利用する場合、遅延が少なく便利です。
- 画面上部または左上のサービス検索窓に「EC2」と入力し、候補からEC2を選びます。
- EC2ダッシュボードが表示されたら、左側メニューの「インスタンス」を選び、右上の「インスタンスを起動」ボタンをクリックしてください。
注意点
- EC2が表示されないときは、IAMポリシーで権限が制限されている可能性があります。管理者に問い合わせてください。
- 誤って別リージョンで操作するとリソースが別途請求されることがあるため、必ずリージョンを確認してください。
次はインスタンスの基本設定に進みます。
Step 2:インスタンスの基本設定
名前とタグの設定
インスタンス起動画面でまず行うのは名前付けとタグの追加です。画面上の「Name」欄に分かりやすい名前を付けます。例: “web-server-prod”、”db-dev”。運用で見つけやすくするため、次のようなタグを設定します。
- Name: インスタンス名(必須)
- Environment: 開発/本番/検証 例: “dev”、”prod”
- Project: 関連プロジェクト名
タグは後で請求や検索、管理で役立ちます。必ず簡潔で一貫性のある命名規則を決めてから付けてください。
AMI(Amazonマシンイメージ)の選択
AMIはOSや初期ソフトが入ったテンプレートです。ここで選んだAMIがインスタンスの初期状態になります。無料利用枠を使うなら「Amazon Linux 2023 AMI」または「Amazon Linux 2 AMI」を選ぶと安心です。これらはAWSが提供し、軽量でサポートが良好です。
他にもUbuntuやWindowsなどが選べます。用途に合わせて選んでください。たとえば、一般的なWebアプリならAmazon LinuxかUbuntu、WindowsアプリならWindows Serverを選びます。
選び方のポイント
- 無料利用枠を使いたい場合はAmazon Linux系を優先
- ソフトウェア互換性・サポート期限を確認
- セキュリティ更新が頻繁なものを選ぶと安全
具体例(手順)
- Nameに”web-server-prod”と入力
- TagsでEnvironment=prod, Project=site-Aを追加
- AMI欄で”Amazon Linux 2023 AMI”を選択
これで基本設定は完了です。次の章でインスタンスタイプの選択に進みます。
Step 3:インスタンスタイプの選択
概要
使用するEC2インスタンスのスペック(CPUやメモリ)を決めます。学習や開発ならデフォルトのt2.micro(vCPU1、メモリ1GB)が手軽で費用もほとんどかかりません。実運用では目的に合わせたタイプ選びが重要です。
選び方のポイント
- 必要な処理性能(CPU)とメモリ量を想像します。簡単なテストや静的サイトなら低スペックで十分です。
- 将来の増強を見越して余裕を持つと安定します。短期で済むなら小さめを選び、様子を見て変更できます。
- 料金はスペックに比例します。まずは低コストのものから試すと安心です。
用途別のおすすめ(例)
- 学習・ちょっとしたWeb:t2.micro / t3.micro(CPU1、メモリ1GB)
- 小規模なWebアプリ:t3.small(CPU1~2、メモリ2GB)
- CPU負荷の高い処理:c5系(計算向け)
- メモリを多く使うアプリ:r5系(メモリ重視)
選択時の注意点
- 無料利用枠が使えるタイプを確認してください。リージョンで価格が異なります。
- まず低スペックで起動し、実際の負荷を確認してから変更する運用が簡単です。
- インスタンスタイプの変更はインスタンス停止が必要な場合があります。事前にスケジュールを考えてください。
これらを踏まえて、まずはt2.microで試し、必要に応じて上位タイプへ移行する方法が分かりやすいです。
Step 4:キーペアの設定
概要
インスタンスへ安全に接続するにはキーペア(公開鍵と秘密鍵)が必要です。秘密鍵(.pem)はあなただけが持ち、公開鍵はEC2側に保存されます。秘密鍵は第三者と共有しないでください。
既存のキーペアを選ぶか新規作成するか
インスタンス作成時に既存のキーペアを選択できます。まだ持っていなければ「新しいキーペアの作成」を選び、名前を付けて作成します。作成後に.pemファイルを必ずダウンロードしてください。再ダウンロードはできません。
秘密鍵の保管と権限
ダウンロードした.pemは安全な場所に保存します。Linux/Macでは権限を制限します(例: chmod 400 key.pem)。WindowsでPuTTYを使う場合は、PuTTYgenで.pemを.ppkに変換して利用します。
接続の具体例
- Linux/Macの例:
ssh -i /path/to/key.pem ec2-user@<パブリックIP> - Ubuntuイメージならユーザー名は ubuntu です。
鍵を失った場合の対処
秘密鍵を失うとそのインスタンスへ直接SSH接続できません。代替策としては、別のキーで新しいインスタンスを作る、またはSystems Manager Session Managerを事前に有効にしておく方法があります。
推奨事項
- 秘密鍵はバックアップを作る
- ファイル権限を厳しくする
- キーペア名に用途や所有者を含める
これらを守ると安全にEC2へ接続できます。
Step 5:セキュリティグループの設定
セキュリティグループとは
セキュリティグループは「仮想ファイアウォール」です。インスタンスに対する入出力のネットワーク通信を許可/拒否します。ルールはインスタンス単位で適用され、設定は柔軟に変更できます。
基本ルールの考え方
- インバウンド(受信)とアウトバウンド(送信)を個別に設定します。
- 初期は最小限のポートだけ開け、安全性を高めます。
よく使う例
- SSH(ポート22):管理用。自分のIPだけ許可するのが安全です。例: 203.0.113.25/32
- HTTP(ポート80)/ HTTPS(ポート443):Web公開用。全世界(0.0.0.0/0)を許可する場合が多いです。
CIDRとソースの指定
CIDR形式(例: 203.0.113.0/24)でアクセス元を指定します。単一IPは/32で表します。社内ネットワークやVPNのみ許可する運用が安全です。
実際の設定手順(簡易)
- マネジメントコンソールでセキュリティグループ作成を選択
- インバウンドルールにプロトコル・ポート・ソースを追加
- 必要に応じてアウトバウンドを調整
- インスタンスに割り当て
テストと注意点
設定後はSSHやブラウザで接続確認します。接続できない場合はルールや接続元IP、ネットワークACL、OS側ファイアウォールを確認してください。
Step 6:設定内容の確認と起動
確認する項目
- AMI(OSイメージ):選んだOSが正しいか確認してください。例:Amazon Linux、Ubuntuなど。
- インスタンスタイプ:CPU・メモリが目的に合っているか確認します。テストならt2.microなど低コストのものを選べます。
- キーペア:SSHで接続する場合はキーファイルを手元に保存しているか確認してください。無いと接続できません。
- セキュリティグループ:開放するポート(例:22、80、443)が適切か確認します。公開範囲(自分だけ、特定IP、全体)も見直してください。
- ストレージ:ディスク容量やタイプ(汎用SSDなど)を確認します。
- タグ:あとで見つけやすいようにNameなどを付けておくと便利です。
- ネットワークとサブネット:VPCやサブネット、パブリックIPの割り当てが必要か確認します。
- IAMロール・ユーザーデータ:必要な権限や起動時スクリプトを設定しているか確認してください。
インスタンスの起動手順
- 画面下部の設定内容を最終確認します。オプションに誤りがないか丁寧に見てください。
- 「インスタンスを起動」ボタンをクリックします。
- 起動処理が始まり、成功するとインスタンスID(例:i-0123456789abcdef0)が表示されます。
起動後の確認
- ステータス:最初は「pending(保留)」になり、数分で「running(実行中)」に変わります。
- 公開IPの確認:パブリックIPが必要な場合は割り当てられているか確認してください。
- システムログ:問題があればコンソールのシステムログでエラーメッセージを確認できます。
トラブルシューティングのヒント
- インスタンスが長時間pendingのままなら、サブネットのIP枯渇や制限を疑ってください。
- SSH接続できない場合は、キーペアの有無、セキュリティグループの22番ポート、ネットワークACLを確認します。
- ウェブにアクセスできない場合は、セキュリティグループの80/443、サーバー側のファイアウォール設定も確認してください。
以上で起動の手順は完了です。次章では作成したインスタンスへの接続方法を説明します。
インスタンス作成後の接続方法
前提事項
作成したインスタンスの「パブリックIPv4アドレス」をEC2コンソールで確認して控えてください。セキュリティグループでSSH(TCPポート22)が自分のIPから許可されていることも確認します。
Linux/macOSからSSHで接続
- キーファイルの権限を設定します:
chmod 400 /path/to/key.pem - 接続コマンドの例:
ssh -i /path/to/key.pem ユーザー名@PUBLIC_IP - Amazon Linux: ec2-user
- Ubuntu: ubuntu
- CentOS: centos
- RHEL: ec2-user
例:ssh -i ~/keys/mykey.pem ubuntu@203.0.113.25
WindowsからPuTTYで接続
- PuTTYgenで.pemを.ppkに変換します(Loadで.pem読み込み→Save private key)。
- PuTTYを起動し、Host NameにPUBLIC_IPを入力します。
- 左メニューのConnection→SSH→Authで先ほどの.ppkを指定します。必要ならConnection→DataでAuto-login usernameにユーザー名を設定します。
- Openで接続します。
(代替)Windows10以降のPowerShellならLinuxと同じsshコマンドが使えます。
接続できないときに確認すること
- インスタンスが「running」状態か
- セキュリティグループでポート22が許可されているか
- キーファイルのパーミッションが正しいか
- ユーザー名がイメージに合っているか
- パブリックIPではなくプライベートIPを使っていないか
上記を順に確認すれば、ほとんどの場合接続できます。必要であれば具体的なエラーメッセージを教えてください。
実践的な活用例
概要
複数のEC2でそれぞれ異なるWebサーバーを立てる例を示します。用途に応じてインスタンスを分けると管理が楽になります。各例ではセキュリティグループで該当ポート(80, 3000など)を開放し、公開IPでアクセスしてください。
1. Apache(静的サイト)
- Amazon Linux: sudo yum install -y httpd
- Ubuntu: sudo apt update && sudo apt install -y apache2
- 起動: sudo systemctl start httpd(または apache2)
- 確認: /var/www/html/index.html に簡単なHTMLを置き、ブラウザで http://<公開IP> を開きます。
2. Apache+PHP(簡易LAMP)
- Apacheに加え PHPを導入(Amazon Linux: sudo yum install -y php)
- PHPファイルを /var/www/html/index.php に置き、ブラウザで実行を確認します。
3. Node.js(シンプルHTTP)
- Node.jsをインストール(sudo yum install -y nodejs 等)
- server.js を作成:
const http = require(‘http’);
const srv = http.createServer((req,res)=>{res.end(‘Hello from Node’);});
srv.listen(3000); - 起動: node server.js。セキュリティグループで3000番を開放して http://<公開IP>:3000 にアクセスします。
4. Express.js(アプリケーション向け)
- npm init -y && npm install express
- app.js を作成:
const express = require(‘express’);
const app = express();
app.get(‘/’, (req,res)=>res.send(‘Hello Express’));
app.listen(3000); - 永続化には pm2 や systemd でプロセス管理を行ってください。
これらを組み合わせれば、EC2上で多様なWebアプリを構築できます。運用時はログと自動起動、バックアップ設定も検討してください。












