😊
[AWS]EC2管理・運用(拡張ネットワーキング,キーペア,AWSのEC2自動化ツール)
拡張ネットワーキング(Enhanced Networking)
- EC2のネットワーク速度を向上させるオプション
- 専用ハードウェアを使って、ネットワークI/Oの処理をオフロードする
- 対応するインスタンスタイプ(C5, M5, R5など)で追加設定すると利用可能
📌 ポイント
- ネットワークパフォーマンスを最大限に引き出したい場合に使う
- デフォルトでは無効なので、対応インスタンスで手動設定が必要
ネットワークI/O
I/Oとは、Input/Outputの略で「入出力」を意味
「ネットワークI/O(Input/Output)」は、EC2インスタンスがネットワークを通じてデータを送受信することを指す。簡単に言うと、「EC2の通信量」や「データのやりとり」のこと!
「オフロード(Offload)」とは、「負荷を軽減する」という意味。
ネットワークACL(NACL:Network Access Control List)
- VPCのサブネット単位で適用されるファイアウォール
- 「許可(Allow)」だけでなく「拒否(Deny)」のルールも設定できる
- セキュリティグループよりも大枠のアクセス制御をする場合に使う
📌セキュリティグループとの違い
項目 | ネットワークACL(NACL) | セキュリティグループ(SG) |
---|---|---|
適用範囲 | サブネット単位 | インスタンス単位 |
ルール | 許可(Allow)と拒否(Deny)の両方設定可能 | 許可(Allow)のみ設定可能 |
優先度 | ルール番号順に評価 | すべてのルールが適用 |
ステートフル性 | ステートレス(戻り通信も許可設定が必要) | ステートフル(リクエストを許可するとレスポンスも自動許可) |
📌使いどころ
- 大枠のセキュリティポリシーをNACLで管理し、細かい制御はセキュリティグループで行う
- 「特定のIPアドレスからのアクセスを全拒否」など、強力なアクセス制御が必要な場合に使う
VPN(仮想プライベートネットワーク)
AWSのVPCと、他のネットワーク(オンプレミスや別のクラウド環境)を安全に接続するための機能
以下、2種類のVPNをサポート
- サイト間VPN(Site-to-Site VPN)
- 企業のデータセンターやオンプレミス環境とAWSをVPNで接続
- AWS Direct Connect よりもコストが低く、簡単にセットアップ可能
- クライアントVPN(Client VPN)
- 個々のPCやリモートワーク環境からAWSのVPCへ安全にアクセス
- VPNソフトを使ってAWSのネットワークに接続できる
📌使いどころ
- オンプレミス環境とAWSを接続して、AWSを社内ネットワークのように使いたい場合
- リモートワーク環境からAWSのリソースに安全にアクセスしたい場合
キーペア
EC2にSSHでログインするための認証方式
「公開鍵」と「秘密鍵」のペアを使い、安全にアクセスを管理
📌キーペアの仕組み
- AWSでキーペアを作成(マネジメントコンソールやCLIで)
- インスタンス作成時にキーペアを指定
- EC2にログインするときに秘密鍵(.pem ファイル)を使用
- 秘密鍵を持っている人だけがEC2にアクセスできる
📌使いどころ
- パスワード認証よりも強力なセキュリティを確保できる
- 秘密鍵を適切に管理すれば、不正アクセスのリスクを減らせる
- 複数のキーペアを作成し、インスタンスごとに異なる鍵を使うことも可能
AWSのEC2自動化ツール
EC2の起動や設定を 手動で行うと時間がかかるし、ミスが発生しやすい。
そのため、AWSでは 「標準化」や「自動化」 をサポートするツールが用意されている。
主要な自動化ツール
ツール名 | 役割 | 使いどころ |
---|---|---|
User Data | インスタンス起動時にスクリプトを自動実行 | 初回起動時のアプリインストールや設定 |
Instance Metadata | インスタンスの情報を取得 | EC2の内部情報(IPやホスト名など)を取得したいとき |
Launch Template | 事前に設定したテンプレートを元にEC2を起動 | 繰り返し同じ設定のEC2を作成する場合 |
User Data(ユーザーデータ)
EC2インスタンスの起動時に、自動でスクリプトを実行できる機能
シェルスクリプトやクラウド設定(Cloud-init)を記述できる
EC2インスタンス起動時に自動で「nginx」をインストールする場合
「高度な詳細」を開いた画面の「ユーザーデータ」欄に、以下のコマンドを記述すればnginxがインストールされる。
#!/bin/bash
sudo amazon-linux-extras install -y nginx1
sudo systemctl start nginx
sudo systemctl enable nginx
💡 ポイント
- OSセットアップやアプリのインストールを自動化
- 毎回手動で設定しなくても、決まった設定をEC2起動時に適用できる
Instance Metadata(インスタンスメタデータ)
EC2インスタンス内から、そのインスタンスの情報(メタデータ)を取得できる
IPアドレス、ホスト名、セキュリティグループ、IAMロールなどを取得可能
📌 使いどころ
- EC2の情報を取得し、アプリの設定に利用
- スクリプトの中で、動的にEC2の設定を反映
💡 ポイント
- EC2内部からのみアクセス可能
- パスを指定すれば、個別の情報を取得できる
Launch Template(起動テンプレート)
事前に設定したテンプレートを元に、EC2を素早く起動できる機能
AMI、インスタンスタイプ、ネットワーク設定、セキュリティグループなどをテンプレート化
📌 使いどころ
- 同じ構成のEC2を何台も起動したいとき
- Auto Scalingと組み合わせてスケールアウト
- EC2起動時の設定ミスを防ぐ
💡 ポイント
- 手動設定不要で、統一された構成のEC2をデプロイ可能
- 設定のバージョン管理ができるので、環境の再現が簡単
Discussion