LoginSignup
10
8

More than 5 years have passed since last update.

AWS EC2で複数ENIをLinux系OSでもっと手軽に扱うための何か

Last updated at Posted at 2015-06-16

実現すべき目標

AWS EC2として動くCentOS/RHELにてENIの追加削除を行った際に手放しで利用が出来る状態にすることが目的です。

事の発端

ENIを付け替えることによるfailoverを実装しようとしていました。
Amazon Linuxであれば手放しですが、CentOSで稼働しているインスタンス群で実現する必要がありました。

先人の苦悩

すでに悩んでい(る|た)方の試行錯誤をなぞります。
汎用的に落としこむ部分がやはりみなさん悩ましかったようです。 1
もう一度ENIについて考えてみた(Linux編)
EC2(CentOS6)起動時に2つの別々サブネットのENIと通信できるようにしてみた

Amazon Linuxはどうやって実現しているか

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-eni.html
ec2-utilsというツールが実装されていて、そのスクリプト群でENIのアタッチ・デタッチを認識して処理を行っているようです。

実践

ソースコードの入手

Amazon Linuxが稼働しているインスタンスでソースコードを取得します。

get_reference_source -p ec2-utils

ec2-utils-0.4-1.22.amzn1.src.rpm (2015年6月16日現在)をどうにかして作業環境へ移します。

ソースコードの展開

rpm -ivh ec2-utils-0.4-1.22.amzn1.src.rpm

rpmbuild/ が作成され、rpmbuildを実施するファイル群が設置されます。

rpmbuildを実施する

rpmbuildでrpmを作成します。

CentOS6/RHEL6の場合のコマンド

rpmbuild -ba SPECS/ec2-utils.spec

CentOS7/RHEL7の場合のコマンド

CentOS7はsystemdで稼働しますので、以下のように指示します。

rpmbuild -ba --without upstart SPECS/ec2-utils.spec

specファイルにも以下のような記述がありました(抜粋)。

%bcond_without upstart
%if %{with upstart}
Requires:  upstart
%endif

rpmをインストールする

作成されたrpmをEC2インスタンスで動くCentOS/RHELへインストールします。
以下にCentOS6での実施例を示します。

rpm -ivh ec2-utils-0.4-1.22.el6.noarch.rpm ec2-net-utils-0.4-1.22.el6.noarch.rpm 

Enjoy!


  1. 案外最近の記事がないので、すでに興味の持たれない分野なのでしょうか 

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8