😊

[AWS]EC2管理・運用(拡張ネットワーキング,キーペア,AWSのEC2自動化ツール)

2025/02/19に公開

拡張ネットワーキング(Enhanced Networking)

  • EC2のネットワーク速度を向上させるオプション
  • 専用ハードウェアを使って、ネットワークI/Oの処理をオフロードする
  • 対応するインスタンスタイプ(C5, M5, R5など)で追加設定すると利用可能

📌 ポイント

  • ネットワークパフォーマンスを最大限に引き出したい場合に使う
  • デフォルトでは無効なので、対応インスタンスで手動設定が必要

ネットワークI/O

I/Oとは、Input/Outputの略で「入出力」を意味

https://www.idcf.jp/words/io.html

「ネットワーク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をサポート

  1. サイト間VPN(Site-to-Site VPN)
  • 企業のデータセンターやオンプレミス環境とAWSをVPNで接続
  • AWS Direct Connect よりもコストが低く、簡単にセットアップ可能
  1. クライアントVPN(Client VPN)
  • 個々のPCやリモートワーク環境からAWSのVPCへ安全にアクセス
  • VPNソフトを使ってAWSのネットワークに接続できる

📌使いどころ

  • オンプレミス環境とAWSを接続して、AWSを社内ネットワークのように使いたい場合
  • リモートワーク環境からAWSのリソースに安全にアクセスしたい場合

キーペア

EC2にSSHでログインするための認証方式
「公開鍵」と「秘密鍵」のペアを使い、安全にアクセスを管理

📌キーペアの仕組み

  1. AWSでキーペアを作成(マネジメントコンソールやCLIで)
  2. インスタンス作成時にキーペアを指定
  3. EC2にログインするときに秘密鍵(.pem ファイル)を使用
  4. 秘密鍵を持っている人だけが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