プロローグ
OCI東京リージョンでARMインスタンス争奪戦争に参加しており、インスタンス作成するTerraformをLINUXでぐるぐる回しているのですが、インスタンスの争奪戦に勝利してインスタンス作成が始まってもすぐ終了済みになってしまう事象に遭遇したので備忘録がてら記載しておきます。
事象
自宅内にあるLinux機からTerraformを5秒に1回 回しており、インスタンスがゲットできるとインスタンツが自動的に作成されるのですが、作成された通知の直後にインスタンスを見に行っても終了済みになっています。
インスタンスの詳細をよく見てみると、作業リクエストを見ろとの指示。
作業リクエストを見てみると…
A problem occurred while preparing the instance's VNIC. ((409, Conflict, false) All 1 non-reserved IP addresses of 10.10.10.0/30 for ocid1.subnet.oc1.ap-tokyo-1.xxxxxxx have already been allocated. (opc-request-id: dummyRequestId))
どうやらVNICを作成してアタッチするタイミングで、IPが払い出せず?そのせいでインスタンス作成に失敗しているらしい。
ただ該当サブネットは30ビットだからホストは2台まで払い出せるはずで、現時点であと1台まで払い出せるはずじゃ?とよくよく調べてみると
OCI NWに関するメモ - Qiita
各サブネットを作成した際には、下記3アドレスは使用不可 CIDRの最初(ネットワークアドレス) CIDRの2つ目(サブネットのデフォルトゲートウェイ) CIDRの最後(ブロードキャストアドレス)
あれ、これって何か聞き覚えあるなと思ったらAWSでも似たようなのあったよね・・・
VPC のサブネット - Amazon Virtual Private Cloud
各サブネット CIDR ブロックの最初の 4 つの IP アドレスと最後の IP アドレスは使用できず、EC2 インスタンスなどのリソースに割り当てることができません。例えば、CIDR ブロック 10.0.0.0/24 を持つサブネットの場合、次の 5 つの IP アドレスが予約されます。 10.0.0.0.: ネットワークアドレスです。 10.0.0.1: AWS が VPC ルーター用に予約しています。 10.0.0.2: AWS が予約しています。DNS サーバーの IP アドレスは、VPC ネットワーク範囲のベースにプラス 2 したものです。複数の CIDR ブロックを持つ VPC の場合、DNS サーバーの IP アドレスはプライマリ CIDR にあります。また、VPC 内のすべての CIDR ブロックに対して、各サブネットの範囲 + 2 のベースを予約します。詳細については、「Amazon DNS サーバー」を参照してください。 10.0.0.3: 将来の利用のために AWS が予約しています。 10.0.0.255: ネットワークブロードキャストアドレスです。VPC ではブロードキャストがサポートされないため、このアドレスを予約します。
エピローグ
ということで、今回のエラーはサブネットが30ビットで空きIPがなかったため起きたものでした。
とても初歩的な内容でした。
10.10.10.0/30 10.10.10.0 ・・・ネットワークアドレス 10.10.10.1 ・・・サブネットのデフォルトゲートウェイ 10.10.10.2 ・・・既存インスタンス 10.10.10.3 ・・・ブロードキャストアドレス
記事は以上