AWS EC2初期設定|キーペアとSGの設定手順

AWS EC2初期設定完全ガイド:キーペアとセキュリティグループの設定手順
AWS EC2を初めて起動する際は、キーペアとセキュリティグループの設定が最優先で完了させるべきです。これらを怠ると、インスタンスへの接続が不可能になったり、セキュリティリスクに晒される可能性があります。本記事では、AWS EC2の初期設定におけるキーペアとセキュリティグループの正しい設定手順を、画像付きで丁寧に解説します。AWS公式ドキュメントに準拠した手順で、実務で即活用できる内容となっています。
目次
- はじめに:EC2初期設定の重要性
- キーペアの作成とダウンロード手順
- セキュリティグループの設定手順
- EC2インスタンス起動時の設定
- EC2インスタンスへの接続テスト
- よくあるトラブルと解決策
- EC2初期設定のベストプラクティス
- まとめ:安全なEC2環境の構築
FAQ:AWS EC2初期設定に関する5つの質問
はじめに:EC2初期設定の重要性
AWS EC2を起動する際、最初に設定すべき項目が「キーペア」と「セキュリティグループ」です。これらを適切に設定しないと、以下のような深刻な問題が発生します。
- 接続不能のリスク:キーペアが設定されていないと、SSH/RDP接続ができません
- セキュリティホールの発生:不要なポートを開放したセキュリティグループは攻撃の対象になります
- コスト増加の要因:不要なリソースが起動し続け、料金が発生します
AWS公式ドキュメントによると、EC2インスタンスのセキュリティ設定は「責任共有モデル」の一部であり、ユーザー側で適切に管理する必要があります(出典: AWS EC2セキュリティ)。本記事では、これらの設定を確実に行うための手順を解説します。
キーペアの作成とダウンロード手順
キーペアとは何か?
キーペアは、EC2インスタンスへの暗号化された接続を確立するための認証キーです。AWS EC2では、以下の2種類のキーペアが使用されます。
| キーペアタイプ | 用途 | 形式 |
|---|---|---|
| RSA形式 | Linux/Unix系インスタンスのSSH接続 | .pemファイル |
| ED25519形式 | Linux/Unix系インスタンスのSSH接続(より安全) | .pemファイル |
| PPK形式 | WindowsインスタンスのRDP接続(PuTTY使用時) | .ppkファイル |
キーペアは一度作成すると、秘密鍵(プライベートキー)をダウンロードするまで再表示されません。そのため、ダウンロードは必ず行ってください。
キーペアの作成手順(AWSコンソール)
以下の手順でキーペアを作成します。
- AWSマネジメントコンソールにログインし、EC2ダッシュボードに移動します。
- 「キーペア」を選択:左側のメニューから「ネットワークとセキュリティ」→「キーペア」をクリックします。
- キーペア名を入力:任意の名前を入力します(例:my-ec2-keypair)。
- キーペアタイプを選択:
- Linux/Unix系インスタンス:RSA 2048またはED25519
- Windowsインスタンス:RSA 2048(PPK形式は後で変換)
- キーペアを作成:[キーペアの作成]ボタンをクリックします。
- 秘密鍵をダウンロード:自動的に.pemファイルがダウンロードされます。このファイルは絶対に第三者に漏洩しないように保管してください。
キーペアの秘密鍵を紛失すると、再度EC2インスタンスに接続できなくなります。AWSでは秘密鍵の再発行ができませんので、必ずバックアップを取得してください。
キーペアの管理とベストプラクティス
キーペアの管理には以下のベストプラクティスがあります。
- 命名規則の統一:プロジェクト名や環境名を含む名前をつける(例:prod-web-keypair)
- 定期的なローテーション:重要なシステムでは3ヶ月に1回程度キーペアを更新する
- アクセス制限:キーペアファイルへのアクセス権限を厳格に設定(chmod 400 my-keypair.pem)
- 複数環境の分離:開発環境、ステージング環境、本番環境で別々のキーペアを使用
AWS Systems Manager(SSM)を使用すると、キーペアを使用せずにEC2インスタンスに接続できるため、セキュリティをさらに強化できます。詳細はAWS Systems Managerセッションマネージャーを参照してください。
セキュリティグループの設定手順
セキュリティグループとは何か?
セキュリティグループは、EC2インスタンスに対するファイアウォールの役割を果たします。以下の特徴があります。
- ステートフルなルール:インバウンドで許可したトラフィックはアウトバウンドで自動的に許可されます
- リソース単位での設定:EC2インスタンスだけでなく、RDS、ELBなどにも適用できます
- 柔軟なルール設定:IPアドレス、ポート、プロトコル単位で制御可能
セキュリティグループは、デフォルトではすべてのアウトバウンドトラフィックを許可し、インバウンドトラフィックは拒否します。そのため、必要なポートのみ明示的に許可する必要があります。
デフォルトセキュリティグループの確認
AWS EC2を初めて起動すると、自動的に「default」という名前のセキュリティグループが作成されます。このグループの設定を確認しましょう。
- EC2ダッシュボードで「セキュリティグループ」を選択します。
- 「default」セキュリティグループを選択し、詳細を確認します。
- デフォルトのルールは以下の通りです:
- アウトバウンド:すべてのトラフィックを許可
- インバウンド:同一セキュリティグループ内のリソースからのトラフィックのみ許可
デフォルトセキュリティグループは、テスト環境などで使用できますが、本番環境ではカスタムセキュリティグループを作成することを推奨します。
カスタムセキュリティグループの作成手順
カスタムセキュリティグループを作成する手順は以下の通りです。
- セキュリティグループの作成:EC2ダッシュボードで「セキュリティグループ」→「セキュリティグループの作成」をクリックします。
- 基本情報を入力:
- セキュリティグループ名:例「web-server-sg」
- 説明:例「Webサーバー用セキュリティグループ」
- VPC:使用するVPCを選択
- インバウンドルールを設定(後述)
- アウトバウンドルールを設定(後述)
- セキュリティグループを作成:[セキュリティグループを作成]ボタンをクリックします。
インバウンドルールの設定(SSH/RDP/HTTP)
インバウンドルールは、EC2インスタンスへのアクセスを制御します。以下は一般的なルール設定です。
| タイプ | プロトコル | ポート範囲 | 送信元 | 用途 |
|---|---|---|---|---|
| SSH | TCP | 22 | 自分のIPアドレス(例:203.0.113.5/32) | Linuxインスタンスへの接続 |
| RDP | TCP | 3389 | 自分のIPアドレス(例:203.0.113.5/32) | Windowsインスタンスへの接続 |
| HTTP | TCP | 80 | 0.0.0.0/0 | Webサイトへのアクセス |
| HTTPS | TCP | 443 | 0.0.0.0/0 | 暗号化されたWebサイトへのアクセス |
| カスタムTCP | TCP | 8080 | 192.168.1.0/24 | 特定のポートへのアクセス制限 |
送信元IPアドレスは、可能な限り特定のIPアドレス(自宅やオフィスのグローバルIP)に制限することを推奨します。0.0.0.0/0(すべてのIPアドレス)は、セキュリティリスクが高いため、必要最小限の期間のみ使用してください。
0.0.0.0/0を送信元とするHTTP/HTTPSポートの開放は、DDoS攻撃のリスクを高めます。必ず必要な期間のみ設定し、不要になったら直ちに削除してください。
アウトバウンドルールの設定
アウトバウンドルールは、EC2インスタンスからインターネットへのアクセスを制御します。デフォルトではすべてのトラフィックが許可されていますが、必要に応じて制限できます。
一般的なアウトバウンドルールの設定例:
- HTTP(80/tcp):インターネットへのWebアクセス
- HTTPS(443/tcp):暗号化されたWebアクセス
- DNS(53/udp):名前解決
- カスタムポート:特定のAPIサーバーへのアクセス
アウトバウンドルールは、インバウンドルールほど厳格に制限する必要はありませんが、不要なポートを開放しないように注意してください。
EC2インスタンス起動時の設定
起動テンプレートの活用
EC2インスタンスを複数回起動する場合、起動テンプレートを使用すると設定を再利用できます。起動テンプレートには以下のメリットがあります。
- 設定の一貫性を保持
- 起動時間の短縮
- バージョン管理が可能
起動テンプレートの作成手順:
- EC2ダッシュボードで「起動テンプレート」→「起動テンプレートの作成」をクリックします。
- テンプレート名と説明を入力します。
- AMI(Amazon Machine Image)を選択します(例:Amazon Linux 2023)。
- インスタンスタイプを選択します(例:t3.micro)。
- キーペアを選択します。
- ネットワーク設定でセキュリティグループを選択します。
- ストレージ設定を構成します。
- [起動テンプレートを作成]ボタンをクリックします。
ネットワーク設定の確認
EC2インスタンスのネットワーク設定には以下の要素があります。
- VPC(Virtual Private Cloud):仮想ネットワーク環境
- サブネット:VPC内のIPアドレス範囲
- パブリックIP自動割り当て:インターネットからアクセス可能なIPアドレス
- プライベートIP:VPC内でのみアクセス可能なIPアドレス
- セキュリティグループ:ファイアウォールルール
- ネットワークACL:サブネットレベルのファイアウォール
ネットワーク設定は、EC2インスタンスのセキュリティとパフォーマンスに大きく影響します。以下の点に注意してください。
- パブリックサブネットとプライベートサブネットを適切に分離する
- 不要なポートを開放しない
- ネットワークACLとセキュリティグループのルールが競合しないようにする
ストレージ設定の最適化
EC2インスタンスのストレージには以下のタイプがあります。
| ストレージタイプ | 用途 | 特徴 | 料金 |
|---|---|---|---|
| EBS(Elastic Block Store) | OSディスク、データディスク | 高い耐久性、スナップショット機能 | GB単位で課金 |
| Instance Store | 一時的なデータ | 高いIOPS、データはインスタンス停止時に消失 | インスタンス料金に含まれる |
| EFS(Elastic File System) | 共有ファイルシステム | 複数インスタンスで共有可能、高い耐久性 | GB単位で課金 |
| S3 | オブジェクトストレージ | 高い耐久性、低コスト、HTTP経由でアクセス | ストレージ容量とリクエスト数で課金 |
一般的なEC2インスタンスでは、OSディスクにEBS(gp3)を使用し、データディスクにEBS(gp3またはio1)を使用します。ストレージ設定時のポイントは以下の通りです。
- OSディスクは8GB以上、データディスクは用途に応じてサイズを決定
- IOPS(Input/Output Operations Per Second)が必要な場合はio1/io2を選択
- スナップショットを定期的に取得し、バックアップを確保
- 暗号化されたEBSボリュームを使用(AWS KMSで暗号化)
EC2インスタンスへの接続テスト
LinuxインスタンスへのSSH接続
LinuxインスタンスにSSH接続する手順は以下の通りです。
- キーペアファイルの権限を変更:
chmod 400 my-keypair.pem - SSH接続コマンドを実行:
ssh -i "my-keypair.pem" ec2-user@EC2のパブリックIPは、EC2ダッシュボードのインスタンス詳細から確認できます。
- 接続確認:正常に接続できると、EC2インスタンスのシェルが表示されます。
接続に失敗する場合の一般的な原因と解決策:
| 原因 | 解決策 |
|---|---|
| キーペアの権限が不適切 | chmod 400で権限を設定し直す |
| セキュリティグループでSSHポート(22)が開放されていない | セキュリティグループのインバウンドルールにSSH(22/tcp)を追加 |
| ネットワークACLでSSHトラフィックが拒否されている | ネットワークACLのインバウンドルールにSSH(22/tcp)を追加 |
| EC2インスタンスが起動していない | EC2ダッシュボードでインスタンスのステータスを確認 |
| キーペアが正しいものではない | 正しいキーペアを使用しているか確認 |
WindowsインスタンスへのRDP接続
WindowsインスタンスにRDP接続する手順は以下の通りです。
- キーペアをPPK形式に変換:
PuTTYgenを使用して.pemファイルを.ppkファイルに変換します。
- PuTTYgenをダウンロードし、起動します。
- [Load]ボタンをクリックし、.pemファイルを選択します。
- [Save private key]ボタンをクリックし、.ppkファイルを保存します。
- RDP接続を実行:
Windowsのリモートデスクトップ接続(mstsc)を起動し、以下の情報を入力します。
- コンピューター名:EC2のパブリックIP
- ユーザー名:Administrator(または設定したユーザー名)
- パスワード:EC2インスタンスのパスワード(キーペアから自動生成される)
- 接続確認:正常に接続できると、Windowsのデスクトップが表示されます。
Windowsインスタンスの初期パスワードは、EC2ダッシュボードの「接続」タブから取得できます。
よくあるトラブルと解決策
EC2初期設定時に発生しやすいトラブルとその解決策をまとめました。
| トラブル | 原因 | 解決策 |
|---|---|---|
| SSH接続がタイムアウトする | セキュリティグループでSSHポート(22)が開放されていない | セキュリティグループのインバウンドルールにSSH(22/tcp)を追加 |
| キーペアが機能しない | キーペアファイルの権限が不適切 | chmod 400で権限を設定し直す |
| EC2インスタンスが起動しない | リソース不足(vCPUやメモリの制限) | インスタンスタイプを変更するか、リージョンを変更 |
| パブリックIPが割り当てられない | サブネットのパブリックIP自動割り当てが無効 | サブネットの設定で「自動割り当てパブリックIP」を有効にする |
| RDP接続ができない | WindowsインスタンスのファイアウォールでRDPポート(3389)がブロックされている | WindowsファイアウォールでRDPポートを許可する |
| ストレージ容量が不足する | EBSボリュームのサイズが小さい | EBSボリュームを拡張するか、新しいボリュームを追加 |
| ネットワーク接続が不安定 | ネットワークACLのルールが競合している | ネットワークACLのルールを確認し、競合を解消 |
トラブルが発生した場合は、AWS公式のトラブルシューティングガイドを参照してください。出典: AWS EC2トラブルシューティング
EC2初期設定のベストプラクティス
EC2初期設定時に実践すべきベストプラクティスをまとめました。
1. セキュリティのベスト…
- 最小権限の原則:必要なリソースと権限のみ付与する
- マルチファクター認証(MFA):AWSアカウントとEC2インスタンスにMFAを有効化
- 定期的なセキュリティ監査:AWS ConfigやAWS Security Hubを使用してセキュリティ設定を監視
- 暗号化の徹底:EBSボリューム、S3バケット、データ転送を暗号化
- 不要なポートの閉鎖:SSH(22)、RDP(3389)などのポートは必要な期間のみ開放
2. コスト最適化のベスト…
- 適切なインスタンスタイプの選択:ワークロードに応じたインスタンスタイプを選択(例:t3.micro vs c5.large)
- リザーブドインスタンスの活用:1年または3年のリザーブドインスタンスを購入し、コストを削減
- スポットインスタンスの活用:耐障害性のあるワークロードにスポットインスタンスを使用
- ストレージの最適化:アクセス頻度に応じたストレージタイプを選択(例:gp3 vs io1)
- タグの活用:リソースにタグを付けて、コスト管理を容易にする
3. パフォーマンス最適化…
- Auto Scalingの活用:負荷に応じてインスタンス数を自動調整
- Elastic Load Balancingの活用:複数のEC2インスタンスにトラフィックを分散
- Amazon CloudFrontの活用:コンテンツ配信を高速化
- Amazon RDSの活用:データベースの管理をAWSに委任
- Amazon EFSの活用:複数のEC2インスタンスで共有ファイルシステムを使用
4. 運用管理のベストプラ…
- AWS Systems Managerの活用:EC2インスタンスの管理と運用を自動化
- AWS CloudWatchの活用:リソースの監視とアラート設定
- AWS Backupの活用:EC2インスタンスとEBSボリュームのバックアップ
- AWS CloudTrailの活用:AWS APIコールのログを記録
- Infrastructure as Code(IaC)の活用:AWS CloudFormationやTerraformを使用してインフラをコード化
これらのベストプラクティスを実践することで、安全でコスト効率の良い、高パフォーマンスなEC2環境を構築できます。
まとめ:安全なEC2環境の構築
AWS EC2の初期設定において、キーペアとセキュリティグループの設定は最も重要なステップです。これらを適切に設定しないと、セキュリティリスクや接続不能の問題が発生します。本
本記事はRoute Bloom編集部がIPA・各クラウドベンダー公式ドキュメントをもとに作成しています。インフラ・セキュリティ設定は本番環境適用前に必ず検証環境でテストしてください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。
この記事で学んだスキルをさらに深めたい方へ
AWS・クラウド技術をさらに深く学びたい方に。試験対策から実践まで網羅した参考書を活用しましょう。
Amazonアソシエイトプログラムを利用しています。




