2026年6月30日
2026年6月30日
AWS EC2インスタンスの作成と基本設定|AMI・インスタンスタイプ・ストレージ・IMDSv2と起動後の初期設定
EC2インスタンスは、コンソールの「インスタンスを起動」画面で、AMI・インスタンスタイプ・キーペア・ネットワーク・ストレージを順に選べば数分で作れます。ただし既定値のまま進めると、パブリックIPが再起動で変わる、ディスクが小さすぎる、メタデータの設定が古い方式のままといった、後から直しにくい状態になりがちです。この記事では、作成画面の各項目で何を選ぶべきか、起動後にサーバー側で行う基本設定、作成できたかの確認方法までを説明します。
画面の項目名や既定値は変わることがあるため、説明は2026年10月現在の情報をもとにした目安として読んでください。料金はインスタンスタイプやリージョンで異なり改定もあるので、AWSの料金ページで確認してください(2026年10月現在)。
作成前に決めておくこと
作成画面を開く前に、次の3点を決めておくと迷いません。
- リージョン:日本向けのサイトなら東京(ap-northeast-1)が一般的です。インスタンスはリージョンをまたいで移動できないので、データベースなど関連するサービスと同じリージョンにそろえます。
- 用途と負荷:個人ブログ程度のWordPressか、アクセスの多いサイトかで、インスタンスタイプとディスクの大きさが変わります。
- 接続方法:SSHで接続するならキーペアが必要です。Session Manager を使う構成にすれば、SSHのポートを開けずに管理できます。
AWSアカウントの初期設定(ルートユーザーのMFA、作業用ユーザー、予算の通知)がまだなら、先に済ませておきます。
作成画面の各項目の選び方
名前とタグ
名前はタグの Name として保存されます。あとで台数が増えたときに用途が分かるよう、wp-prod-web01 のように環境と役割が分かる名前にします。費用の集計に使う Project や Env といったタグも、この時点で付けておくと後から整理しやすくなります。
AMI(OSイメージ)
AMIはインスタンスの元になるOSのイメージです。WordPressの用途なら、Amazon Linux 2023 か Ubuntu Server のLTS版が扱いやすい選択肢です。Amazon Linux 2023 はパッケージ管理に dnf を使い、Ubuntu は apt を使います。ネット上の手順はOSによってコマンドが異なるので、参考にする記事と同じOSを選ぶと迷いにくくなります。
アーキテクチャはx86_64とArm(Graviton)から選べます。Armのインスタンスは同じ性能で費用を抑えられる場合がありますが、使いたいソフトウェアがArmに対応しているかを事前に確認してください。
インスタンスタイプ
小規模なサイトでは、t3 や t4g などのバースト可能なタイプがよく使われます。これらは普段の負荷が低い間にCPUクレジットを貯め、負荷が高いときに消費する仕組みです。常に高い負荷がかかる用途ではクレジットが尽きて性能が落ちる(Unlimitedモードでは追加料金がかかる)ため、CPU使用率が高止まりするサイトでは、m系やc系の汎用・コンピューティング最適化のタイプを検討します。
WordPressとMySQLを同じインスタンスで動かす場合、メモリが小さいとデータベースが強制終了されることがあります。メモリが少ないタイプを選ぶなら、起動後にスワップを設定しておくと安定しやすくなります。
キーペア
SSHで接続するための鍵です。新しく作る場合は秘密鍵のファイルがその場で1回だけダウンロードされ、AWS側には保存されません。紛失すると同じ鍵で入れなくなるので、安全な場所に保管します。キーペアの扱いは別記事で詳しく説明しています。
ネットワーク設定
VPCとサブネットを選び、パブリックIPの自動割り当てとセキュリティグループを設定します。
- パブリックIPの自動割り当て:外部から直接アクセスするサーバーなら有効にします。ただし、この方法で割り当てたIPは、インスタンスを停止して再開すると変わります。DNSで固定の名前を向ける場合は、Elastic IPを割り当てます。パブリックIPv4アドレスは利用中かどうかにかかわらず料金の対象になっているため、不要なアドレスは解放します。
- セキュリティグループ:作成画面で新規に作ると、SSH(22番)が「任意の場所」から開いた状態が既定になることがあります。送信元は「マイIP」など自分の接続元に絞り、HTTP(80番)とHTTPS(443番)は公開するサイトの場合だけ追加します。
ストレージ
ルートボリュームの既定のサイズは小さめに設定されていることが多く、WordPressの本体・プラグイン・画像・ログ・バックアップを置くとすぐに足りなくなります。最初から余裕を持ったサイズにしておくと、後で拡張する手間が減ります。ボリュームの種類は汎用SSDの gp3 を選ぶと、容量とは別にIOPSとスループットを設定できます。暗号化は、アカウントの既定の暗号化を有効にしていれば自動でかかります。
高度な詳細
折りたたまれている項目の中にも、確認しておきたい設定があります。
- IAMインスタンスプロフィール:インスタンスにIAMロールを割り当てます。S3へのバックアップやSession Managerを使う場合は、ここでロールを指定すると、サーバーにアクセスキーを置かずに済みます。
- メタデータのバージョン:インスタンスメタデータサービス(IMDS)は、トークンを必須にする IMDSv2 のみに設定します。IMDSv1 はトークンなしで認証情報を取得できるため、Webアプリの脆弱性(SSRF)を経由して IAM ロールの認証情報を盗まれる危険があります。新しいAMIでは IMDSv2 が既定になっているものが多いですが、選んだAMIでの設定を確認してください。
- 終了保護:有効にすると、誤ってインスタンスを「終了」して削除してしまう事故を防げます。本番用のサーバーでは有効にしておくと安心です。
CLIで作る場合の例
同じ内容をAWS CLIで作る例です。IDやキーペア名は自分の環境の値に置き換えてください。AMIのIDは、AWSが公開しているSSMパラメーターを指定すると、最新のAmazon Linux 2023を自動で選べます。
aws ec2 run-instances \
--region ap-northeast-1 \
--image-id resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64 \
--instance-type t3.small \
--key-name your-key-name \
--subnet-id subnet-xxxxxxxx \
--security-group-ids sg-xxxxxxxx \
--associate-public-ip-address \
--metadata-options HttpTokens=required,HttpEndpoint=enabled \
--block-device-mappings '[{"DeviceName":"/dev/xvda","Ebs":{"VolumeSize":30,"VolumeType":"gp3","DeleteOnTermination":true}}]' \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=wp-prod-web01}]'
ルートデバイス名はAMIによって異なります。上の /dev/xvda はAmazon Linux 2023の例で、Ubuntuでは /dev/sda1 になります。違う名前を指定すると、ルートとは別のボリュームが追加されてしまうので注意してください。
起動後の確認と基本設定
ステータスチェックを確認する
インスタンスの状態が「実行中」になっても、すぐには接続できないことがあります。ステータスチェックがすべて合格になるまで数分待ちます。チェックに失敗し続ける場合は、インスタンスを選んで「システムログを取得」から起動時のログを見ると、ディスクのマウントの失敗などの原因が分かります。
OSのアップデートとタイムゾーン
SSHで接続できたら、まずパッケージを最新にします。Amazon Linux 2023 の例です。
sudo dnf upgrade -y
sudo timedatectl set-timezone Asia/Tokyo
timedatectl
タイムゾーンを日本時間にしておくと、ログの時刻を読み違えずに済みます。WordPressの管理画面のタイムゾーンとは別の設定なので、そちらも合わせて確認します。
スワップを設定する
メモリの少ないインスタンスでは、スワップファイルを作っておくと、一時的なメモリ不足でMySQLやPHP-FPMが落ちる事態を減らせます。
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h
free -h でSwapの行に容量が表示されれば有効になっています。スワップはメモリの代わりではなく、あくまで一時的な逃げ道です。常にスワップを使っている状態なら、インスタンスタイプを見直します。
「停止」と「終了」の違いに注意する
コンソールのインスタンスの操作には「停止」と「終了」があります。停止は電源を切るだけで、EBSボリュームのデータは残り、再開できます。終了はインスタンスの削除で、DeleteOnTermination が有効なボリュームも一緒に消えます。誤操作を防ぐために、前述の終了保護を有効にし、重要なデータは定期的にスナップショットやAMIとして残しておきます。
停止中もEBSボリュームやElastic IPには料金がかかります。検証用のインスタンスは、使わなくなったら終了し、残ったボリュームやスナップショットも整理します。
まとめ
- リージョン・用途・接続方法を先に決めてから作成画面に進む。
- AMIは手順を参考にしやすいOSを選び、インスタンスタイプはCPUクレジットの仕組みを理解して選ぶ。
- セキュリティグループのSSHは接続元を絞り、メタデータは IMDSv2 のみにする。
- ストレージは余裕を持ったサイズの gp3 にし、権限が必要ならアクセスキーではなくIAMロールを割り当てる。
- 起動後はステータスチェック、アップデート、タイムゾーン、スワップを確認し、本番では終了保護を有効にする。