AWS ENIとは?
AWSには「ENI」という仮想NICとも言えるサービスがあります。正式名称は「Amazon Elastic※ Network Interface」です。AWS ENIは、VPC「 Virtual Private Cloud」内の仮想ネットワークインターフェースです。
VPC内に作成したEC2インスタンスにアタッチされ、IPアドレスが付与されます。EC2インスタンスは単体ではIPアドレスを持っておらず、ENIを介してネットワーク情報が付与されます。ENIは、物理的な環境におけるNIC(Network Interface Card)のことです。
物理環境におけるNICと同じネットワークの設定を仮想的環境で行うことができます。
この記事では、AWS ENIの概要や特徴、メリットとデメリット、手順や使い方、料金などについて解説していきます。
※AWSのサービスにはよくElasticという単語がよく使われますが、AWSでは「Elastic」はオートスケールを指しており、リクエストの量に応じてサーバリソースが増減する様子を伸縮という言葉で表現しています。
【参考】:Elastic Network Interface |Amazon Elastic Compute Cloud|AWS
AWS ENIの特徴
AWS ENIは、Amazon EC2インスタンスにネットワーキング機能を提供する、仮想ネットワークインターフェースであり、以下のような特徴を持っています。1つずつ見ていきましょう。
弾力性
物理環境では、ネットワークインタフェースの追加にはサーバに対してNICを挿す必要がありましたが、AWS ENIでは、ネットワークインタフェースを作成する場合に仮想インスタンスへのアタッチやデタッチをすべてWebブラウザ上で行えます。
クラウド環境においては、ENIを必要に応じて自由に作成・アタッチできるため、ネットワーク設定の調整が柔軟に行えます。具体的には、1つのEC2インスタンスに対して複数のENIをアタッチすることができます。
スケーラビリティ
AWS ENIでは1つのEC2インスタンスに対して、複数のENIをアタッチできるため、スケーラブルなネットワーク設計が可能です。
例えば、ユーザからシステムへのアクセスはデフォルトネットワークで受けつけ、メンテナンスや管理のためのアクセスは、ENIで追加したネットワークに管理用のパソコンからアクセスするといった使い分けが可能になります。
移植性
AWS ENIはアタッチしたEC2インスタンスからデタッチし、別のインスタンスにアタッチすることができるなど、移植性の高さが特徴の1つです。インスタンスを移動したり、置き換えたりする場合には大変簡単で便利です。
セキュリティ
AWS ENIではセキュリティグループを関連付けて、トラフィック制御を行ったり、ネットワークアクセス制御リスト(NACLs)を利用して、トラフィック制御のルールを適用したりして、さまざまなベストプラクティスを遵守することで、ENIの安全性を高めることができます。
【参考】:Elastic Network Interface - Amazon Elastic Compute Cloud
AWS ENIのメリットとデメリット
AWS ENIの特徴は前記の通りですが、ENIを利用することで、具体的にどのようなメリットやデメリットがあるのか、それぞれ確認していきましょう。
メリット
AWS ENIのメリットとしては、柔軟なネットワーク設定や、冗長化と障害対応、セキュリティ向上などが挙げられます。メリットについて1つずつ見ていきましょう。
1. 柔軟なネットワーク設定 EC2インスタンス自体には IPアドレスは付与されておらず、ネットワーク情報を付与するためにはAWS ENIが必要です。AWS ENIを追加することで、EC2インスタンスに対して複数のIPアドレスを設定することができるため、1台のサーバで異なる役割やセグメントを動作させることが可能になります。
2.冗長性と障害対応 AWS ENIを追加することでネットワークの冗長化を実現でき、障害発生時に別のENIに切り替えることでダウンタイムを短縮し、サービスの継続性を確保できます。
3.セキュリティ強化 ENIごとにセキュリティグループを設定することができます。これにより、EC2 インスタンスにおける仮想ファイアウォールが機能し、受信と送信のトラフィック制御を行え、セキュリティ強化が実現します。
デメリット
以上のようにAWS ENIにはさまざまなメリットが期待できる反面、次のようなデメリットもあります。デメリットは適切な知識や対応によって防げますので、デメリットに注意して利用するようにしましょう。
1.追加費用の検討 AWS ENIの追加によって、ネットワークトラフィックが増加し、利用料金がかさむ可能性があります。またElastic IP(固定グローバルIPアドレス)を割り当てる場合、2つ以上を割り当てると追加費用が発生します。
2.インスタンスタイプの制限 選択するインスタンスタイプによって、それぞれENIの数に制限があります。インスタンスタイプの選択時には必要なENIの数を見積もって選ぶ必要があります。
【参考】:Amazon EC2 インスタンスタイプ |Amazon Elastic Compute Cloud
AWSのネットワーク機能
AWSにはENI以外に同様のネットワーク機能がいくつか提供されています。他の関連機能についても見てみましょう。これらの機能は特定のユースケースや要件に応じて選択が可能です。いずれもAWSのネットワーク設計やパフォーマンス確保に重要なツールですので、覚えておくとよいでしょう。
ENA(Enhanced Network Adapter)
ENAは特定のEC2インスタンスタイプで利用できるネットワークアダプターです。より高いネットワークパフォーマンスが必要な、大量のネットワークトラフィックや大規模な分散コンピューティングタスクに適しています。
【参考】:Linux インスタンスにおける Elastic Network Adapter (ENA) を使用した拡張ネットワーキングの有効化 |Amazon Elastic Compute Cloud
EFA(Elastic Fabric Adapter)
EFAも特定のEC2インスタンスタイプで利用可能なネットワークアダプターです。EFAも非常に高いネットワークパフォーマンスが必要な、高性能コンピューティング(HPC)や機械学習ワークロードなどに最適です。
【参考】:Elastic Fabric Adapter|Amazon Web Services
AWS ENIの料金
AWS ENIの利用によって発生する料金について見ておきましょう。ENIは基本的に無料であり、ENIそのものの利用によって追加費用は発生しません。ただし、選定したインスタンスのモデルによってはENIの数に上限があり、ENIの数次第では追加費用が発生します。
また固定グローバルIPのElastic IPも制限を超えると追加費用が発生します。
トラフィック
ネットワークインターフェースが追加されると、一般的にネットワークトラフィックの増加につながります。そのため、ENIの追加がAWSの利用料金増加を招く可能性があります。
Elastic IP
ENIで追加したネットワークインターフェースへに「Elastic IP」(固定グローバルIPアドレス)を割り当てる場合、追加費用が発生することがあります。仮想インスタンス1つに対して2つ以上の「Elastic IP」を割り当てると、追加料金が発生します。
【参考】:Elastic IP アドレス |Amazon Elastic Compute Cloud
インスタンスモデル
ネットワークインターフェースが増加することで、ネットワークトラフィックが増え、それが利用料金の増加につながることは理解したと思います。
ネットワークインターフェースをより多く追加できるインスタンスタイプを選択することで、ネットワークトラフィックが増大しますので、インスタンスモデルの選択には注意を払う必要があります。
AWS ENIを活用して効率的なネットワークを
ここまで、本記事ではAWS ENIの概要やメリット、利用料金などについて解説しました。従来型のオンプレミス環境では複雑なネットワーク構成に対応するため、複数枚のNICをサーバに挿し、IPアドレスやMACアドレスの設定で対応してきましたが、その管理は物理面でも容易ではありませんでした。
こうした煩わしさも、AWSの仮想環境では不要となり、クリックするだけで必要な設定を行えるようになっています。それを実現しているのがENIです。AWSを利用する際には、仮想NICとも言えるENIをうまく活用して、理想的なネットワーク環境を実現してみましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから