AWS EC2初心者入門ガイド
AWS(Amazon Web Services)のEC2(Elastic Compute Cloud)は、クラウド上で仮想サーバーを簡単に作成・運用できるサービスです。この記事では、AWSを初めて使う方でも理解できるように、EC2インスタンスの作成から設定、接続までの手順を解説します。
AWSのメリットとデメリット(専用ホスティングサーバーとの比較)
メリット
- 柔軟なスケーリング: 必要に応じてリソースを増減できる
- 従量課金制: 使用した分だけ支払う(初期投資が少ない)
- 様々なインスタンスタイプ: 用途に合わせたマシンスペックを選べる
- グローバル展開: 世界中のリージョンにデプロイ可能
- 自動化機能: APIを使った自動化が容易
- 高可用性: 複数のアベイラビリティゾーンを活用できる
デメリット
- 管理の複雑さ: 初心者には設定が複雑に感じることがある
- コスト管理: 適切に管理しないと予想外の請求が発生する可能性がある
- 学習コスト: AWSの概念や用語を理解する必要がある
専用ホスティングサーバーとの比較
項目 | AWS EC2 | 専用ホスティングサーバー |
---|---|---|
初期コスト | 低い(初期投資不要) | 高い(サーバー購入費用) |
ランニングコスト | 使用量に応じて変動 | 固定費が多い |
スケーラビリティ | 柔軟に拡張可能 | 物理的な制約あり |
管理の手間 | 設定は複雑だが自動化可能 | 物理的な保守が必要 |
障害対応 | AWSが対応(サービスレベルによる) | 自社で対応必要 |
カスタマイズ性 | OS選択は自由だが一部制約あり | 完全なカスタマイズが可能 |
VPCとEC2の関係とメリットデメリット
VPCとは
VPC(Virtual Private Cloud)は、AWSクラウド内に作成できる仮想ネットワークです。EC2インスタンスはこのVPC内に配置されます。
VPCとEC2の関係
- VPCはネットワーク環境を提供
- EC2はVPC内で動作する仮想サーバー
- 1つのVPCに複数のEC2インスタンスを配置可能
- セキュリティグループでEC2へのアクセス制御を実施
メリット
- ネットワーク分離: プライベートな環境を構築できる
- セキュリティ強化: アクセス制御が細かく設定可能
- 柔軟なネットワーク設計: サブネット、ルートテーブルなどを自由に設定
デメリット
- 設定の複雑さ: ネットワークの知識が必要
- 管理コスト: 適切な設計・管理が求められる
専用ホスティングサーバーとの比較
専用サーバーでは物理的なネットワーク分離が必要ですが、VPCでは論理的な分離が容易に実現できます。
EC2インスタンス作成手順
ステップ1: EC2ダッシュボードへアクセス
AWSマネジメントコンソールにログインし、「EC2」を選択します。
ステップ2: インスタンス起動
「インスタンスを起動」ボタンをクリックします。
ステップ3: OSイメージ(AMI)の選択
今回はUbuntuを選択します。「クイックスタート」タブから「Ubuntu」を選びます。
ステップ4: キーペア(ログイン)設定
今回は簡易的に「キーペアなしで続行」を選択します。
※本番環境では必ずキーペアを作成して使用してください。
ステップ5: ネットワーク設定
セキュリティグループの設定を行います。今回は以下を許可します:
- SSHトラフィック(リモート接続用)
- HTTPトラフィック(Webサーバー用)
ステップ6: ストレージ設定
デフォルトの8GBのままで構いません。
ステップ7: 名前とタグ
インスタンスの名前を入力します(例:My Web Server)。
ステップ8: インスタンスを起動
「インスタンスを起動」ボタンをクリックします。
ステップ9: インスタンスへの接続
インスタンスが起動したら、「インスタンスに接続」ボタンをクリックします。
EC2 Instance Connectを使用して接続します。ユーザー名は「ubuntu」を入力します。
EC2設定コマンド
インスタンスに接続したら、以下のコマンドを実行してApache Webサーバーをインストールし、簡単なWebページを作成します:
# システムの更新
sudo apt update
# Apache2のインストール
sudo apt install -y apache2
# デフォルトのWebページディレクトリに移動
cd /var/www/html
# ファイル一覧を確認
ls
# デフォルトのindex.htmlを削除
sudo rm index.html
# 新しいindex.htmlを作成
sudo touch index.html
# ファイルの権限を変更(実際の運用ではより制限的な権限設定を推奨)
sudo chmod 777 index.html
# テストコンテンツを追加
echo "This is a test line." >> index.html
# Apache2サービスの再起動(変更を反映)
sudo systemctl restart apache2
これでWebブラウザからEC2インスタンスのパブリックIPアドレスにアクセスすると、作成したWebページが表示されます。
FTP接続の設定(WinSCPを使用)
EC2インスタンスにファイルを転送するために、Windows 11からWinSCPを使った接続方法を説明します。
準備
- WinSCPをダウンロードしてインストール
EC2側の設定
SSHがすでに有効になっているので、追加設定は不要です。必要に応じてFTPサーバーをインストールする場合:
# vsftpdのインストール
sudo apt install -y vsftpd
# 設定ファイルのバックアップ
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
# 設定ファイルの編集
sudo nano /etc/vsftpd.conf
以下の設定を追加または変更(nanoエディタの場合、Ctrl+O→Enterで保存、Ctrl+Xで終了):
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
ユーザーリストの作成:
# ftpユーザーの作成
sudo adduser ftpuser
# ユーザーリストにftpuserを追加
echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
# サービスの再起動
sudo systemctl restart vsftpd
WinSCPでの接続方法
- WinSCPを起動
- 「新しいサイト」を選択
- 以下の情報を入力:
- ファイルプロトコル: SFTP(SSH接続の場合)またはFTP
- ホスト名: EC2インスタンスのパブリックIPアドレス
- ポート番号: 22(SSHの場合)または21(FTPの場合)
- ユーザー名: ubuntu(SSHの場合)またはftpuser(FTPの場合)
- パスワード: 設定したパスワード
- 「ログイン」をクリック
これで、Windows 11からEC2インスタンスへのファイル転送が可能になります。
まとめ
AWSのEC2を使うことで、柔軟なクラウド環境でWebサーバーを簡単に構築できます。今回は入門者向けに最小限の設定で構築しましたが、実際の運用環境では適切なセキュリティ設定が必要です。特に以下の点に注意してください:
- 本番環境では必ずSSHキーペアを使用する
- セキュリティグループは必要最小限のポートのみ開放する
- 定期的なセキュリティアップデートを実施する
- IAMユーザーと権限の適切な管理
この記事を足がかりに、AWSの様々なサービスを活用してクラウド環境を構築してみてください。