OCI
Oracle Cloud Infrastructure の略でオラクルが運営するクラウドサービス.
経緯
OCIでは月10TBまでのアウトバウンド通信が、無料で使えます。AWS,GCPと比べても格別です。
このOCIを使ってプログラムを動かしていたのですが、ある機能を追加した瞬間に全く関係ないネットワーク通信量が加算されていることに気が付きました。
追加した機能はそこそこの量のデータを計算によって作成してブロックストレージに保存するもので、ネットワークの通信はしないものです。
ブートボリュームに大量のデータを保存するのは嫌だったので、新たにブロックストレージを作成してマウントし、そこに保存するようにしました。
プログラムは意図したとおりに動き始めたのですが、しばらくするとOCIコンソール上のインスタンスモニタのNetwork (R/T) Bytes
の項が凄まじい通信量を記録していることに気が付きました。
いくら無料枠が大きいとはいえ、このままでは軽々とオーバーしてしまいそうです。
原因
OCIでは、ブロックストレージをアタッチする際に
- Paravirtualized
- iSCSI
が選べます。
ここでiSCSIを選択したのが原因でした。
iSCSIは、TCP/IPを利用して、ブロックストレージに対する読み書きを行います。
そのため、外部のアドレスに対するネットワークの通信が行われない操作でも、コンソール上のネットワーク通信量が急増したのでした。
対処
Paravirtualizedでマウントし直しました。
ネットワーク転送料金の計算に、iSCSIでの通信も含まれるのかどうかの記述がなかったため、だれか知っている方がいれば教えて下さい。
おわりに
ネットワークの通信量を外部へのネットワーク通信だと決めつけていたことを反省しました。