AWSのUbuntu18.04にセカンダリIPを付与する方法
この記事を読むと得られる情報
AWS上でUbuntu18.04をイメージに作成したEC2インスタンスにセカンダリープライベートIPを付与したい
AWSではすでにUbuntu18.04がメインでリリースされていますが、ネットワークの設定ファイルがnetplanへ変更になって、セカンダリIPの設定が不明だったためその方法を共有したいと思います。
AWSコンソール上での作業
EC2コンソールより、セカンダリーIPを付与したいインスタンスを右クリック。
上記のようなメニューが出ますので
ネットワーキング > IPアドレスの管理
をクリック。
「新しいIPの割り当て」をクリックし、必要があればIPを指定して「更新する」をクリック。
これでAWSコンソールでの作業は完了です。
EC2インスタンスでの作業
AWS上では対象インスタンスにセカンダリーIPを付与できたが、次はOSに認識させる必要がある。
早速、EC2インスタンスにログインした後、次のようにネットワークのyamlファイルを作成します。
# 40-cloud-init.yamlの作成
sudo vi /etc/netplan/40-cloud-init.yaml
network:
version: 2
renderer: networkd
ethernets:
ens5: # NIC name
addresses: [xxx.xxx.xxx.xxx/xx, yyy.yyy.yyy.yyy/yy]
dhcp4: no
routes:
- to: 0.0.0.0/0
via: zzz.zzz.zzz.zzz # Default gateway
table: 1000
- to: xxx.xxx.xxx.xxx
via: 0.0.0.0
scope: link
table: 1000
- to: yyy.yyy.yyy.yyy
via: 0.0.0.0
scope: link
table: 1000
routing-policy:
- from: xxx.xxx.xxx.xxx
table: 1000
- from: yyy.yyy.yyy.yyy
table: 1000
同ディレクトリに50-cloud-init.yamlというのがありますが、それはそのままにしてください。
削除厳禁です。
また、先頭の番号で優先順位があるので、50より若くしておくといいです。
書き終わったら、下記コマンドで更新します。
# netplanの更新
sudo netplan --debug apply
でエラーログがでなければ完了。
# IPの確認
ip a
で確認してください。
# ip a の結果
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
link/ether hoge brd ff:ff:ff:ff:ff:ff
inet xxx.xxx.xxx.xxx/xx brd hoge scope global dynamic ens5
valid_lft 3549sec preferred_lft 3549sec
inet yyy.yyy.yyy.yyy/yy brd hoge scope global secondary ens5
valid_lft forever preferred_lft forever
inet6 hoge scope link
valid_lft forever preferred_lft forever
上記のようにIPが2つ出たら成功。
一応wgetやcurlで外と疎通できるか確認するとなおよし。
(確認大事)
再起動後、ネットの疎通がしばらく遅くなりますが、辛抱強く待ちましょう!!
お疲れ様でした!
ディスカッション
コメント一覧
まだ、コメントがありません