クラウド上にサーバーを構築して運用するにしても通常は課金せねばなりません。
Oracle社が提供するクラウドサービスでは、永久無償サービス(Always Free Cloud Services)が存在します。
個人利用においては、とても魅力的なプランです。
デメリットとしてはクラウドによるサーバー構築が知識ゼロベースだと敷居はとてつもなく高いです。
感覚は人それぞれでしょうが、新しく国の言葉を覚えるくらいの敷居でしょうか。
もし利用可能であるならば、マインクラフトのサーバーを持ったりなど色々と出来るらしいので使用者次第で色々と遊べそうです。
さて、今回このサービスを利用する経緯です。
自宅でNAS上に構築したサーバーを運用しており、WEBサービスやらDBサービスなど諸々扱っています。
そもそもNAS上に構築しているので、メモリ等のサーバーリソースを消費するDBサービスを外出しに出来ないかと常々思っておりました。
そんな中、無償のクラウドサービスがあることを知り、試してみることにした次第です。
なお、クラウドコンピューティングサービスとして触ったことがあるのは、趣味でConoHaなど、仕事でFJcloudなどの経験ありです。
※この場は製品(クラウドサービス)レビューとなるので、詳細な実作業(環境構築等)については省略します。
※「Oracle Cloud Infrastructure」以降OCIと記載していきます。
無償枠で試した結果、OCIで出来そうなこと。(最終更新:2022-08-07)
・VPN接続したときだけアクセス可能な開発環境
WEBサービス関連、DBサービス関連、バージョン管理システム関連など
・最小20GB、最大100GBのクラウドストレージ利用(ただし10Mbpsという低速)
専門用語が沢山
試す前に、ざっくり構想していたことといえば、「OCI上のサーバーのDBサービスを構築して自宅ネットワークからVPNで常時繋げてアクセスしよう。」という感じでした。
最初はサイトから「OCIを無償で試す」から始まります。
https://www.oracle.com/jp/cloud/
基本的には「Always Free Cloud Services」と「30日間無料トライアル」の2種類になります。
「Always Free」対象のサービスを常に選べば常に無償。対象外を選ぶと30日後に課金スタートとなります。
「Always Free」は下記のように書かれています。(以下、文言抜粋)
期間の制限なく使用できるサービスです。
- Oracle APEX やOracle SQL Developerなどのパワフルなツールで2種類のOracle Autonomous Databaseをお試しください。
- 2つのAMDコンピュートVM
- Arm Ampere A1 Computeの最大4つのインスタンス
- ブロックストレージ、オブジェクト・ストレージ、およびアーカイブストレージ。ロードバランサとデータ送信。監視と通知
そのほか、色々と制限があります。
無償で試すにしてもクレジットカード登録などOracleアカウント登録などが必要です。
登録完了するとメールが届きます。
今後はメールに記載のURLからOCIのサイトへ移動するとスムーズかもしれません。
特にメモなどを残していないのでうろ覚えですが、リージョンというクラウドサービスのサーバーセンター場所?を選ぶことになります。
日本国内だと東京と大阪が選べます。
東京だと使用できるサービスは多いですが、無償利用だとサービスの利用制限が入るそうです。
サーバー増強とかされると解消する問題なので、構わず東京リージョンにしました。
以降、OCIのサイトにてサーバーやらネットワークの構築です。
専門用語が9割かな。10割かな。
無償枠でも表示される内容については制限が無いので全部出ていると思います。
何をすればよいのか見当しにくいですね。
さすが専門用語。
参考までに・・・APEXとはゲームのことではなく、Oracle Application Expressのことです。
メインメニューの一覧はこのような感じ。
マーケットプレイスでOpenVPNを選択して用意された環境のイメージファイルからインスタンス作成も出来るようですが、SSH接続するためのキー生成がよくわからなくて断念しました。
とりあえず、作成ウィザードなどを利用してインスタンス(仮想サーバー作成)、VCN(仮想クラウドネットワーク)などを手動で構築していくことにしました。
無償で利用出来るサーバー資源は「VM.Standard.E2.1.Micro」のみでした。
OCPU数:1
ネットワーク帯域幅(Gbps):0.48
メモリー(GB):1
ローカル・ディスク:ブロック・ストレージのみ(詳細を見ると47 GB)
なお、OCPU というのは Oracle Computing UnitというOracle用語。
1OCPU は、2vCPU と同じで、OCPUはハイパースレッド分を含んだもの。
ざっくり 1 OCPU = 1 物理コアと同じようです。
専門用語にはOracle用語も含まれてきます。。。
色々と触った構築した結果、下記のように構築しました。
ネットワーク図はCacooで作成。
赤い線はOpenVPNのPCからPCへの直通ルート。
◆構築ポイント
- OCIに構築したサーバー内にOpenVPNサービスを構築。
- 自宅サーバーにOpenVPN ClientでVPN接続。
- OpenVPNで繋げている時のみOCIサーバーにアクセス可能とした。
- OCIのファイアウォール機能でインターネットからはOpenVPN以外のポートを遮断した。
- SSH接続時はデフォルトの鍵ファイルでの接続とした。
結果、インターネットからアクセス可能なポートはOpenVPNで使用するポートのみとなり、個人使用としては比較的安全な設計としました。
現在は自宅サーバー上のDBサーバーをOCIのDBサーバーへ切り替える作業と安定動作するかの検証中です。
今のところ、不具合無く動作しており、ローカルネットワークと同等の速度でSQL結果が返却されており非常に満足です。
★2022-08-06追記
クラウドストレージとして使えるのではないかと思い立った。
まずはddによるストレージ速度
# dd if=/dev/zero of=write.tmp ibs=1M obs=1M count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB, 128 MiB) copied, 1.23461 s, 109 MB/s
# dd if=/dev/zero of=write.tmp ibs=1M obs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 18.5659 s, 57.8 MB/s
メモリキャッシュが効かない状態だと57MB/sくらいと見た方が良さそう。
Samba 4.15.8をインストール。
OpenVPN経由でファイル共有で計測。
遅い。完全にネットワーク制限受けている。
速度的には50Mbpsくらい?
OpenVPN経由でNFSv4にてddで計測してみた。
# dd if=/dev/zero of=write.tmp ibs=1M obs=1M count=128
128+0 レコード入力
128+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 35.9501 s, 3.7 MB/s
# dd if=/dev/zero of=write.tmp ibs=1M obs=1M count=1024
1024+0 レコード入力
1024+0 レコード出力
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 285.382 s, 3.8 MB/s
速度的に30Mbpsくらいか。
ベストエフォートだと思うし、インターネットを使用する時間帯でも左右されそうだ。
あくまで参考値として判断してほしい。
クオータによる容量制限をかけたとして、1インスタンスあたり20GBくらい使える。
無料枠は4インスタンスまでなので合計80GBは使用できることになる。
しかし、上記の速度である。
うーん。
★2022-08-07追記
OpenVPNが繋がらない。
昨日はOCIのファイアウォール関連が原因で繋がらなくなっていたが、本日は原因がよくわからない。
OpenVPNは運用歴が無いので根本の解消方法がわからない。
とりあえずOpenVPN接続してからSSH接続出来るようにしているためサーバーに入ることが出来ない。
(ファイアウォール変更すれば入れるようになるが、毎回それをするのはアカン)
OCIにはコンソール接続というものが用意されています。
これはWEB上からコンソール接続出来る機能。
SSH接続が出来なくなっても別の手段でサーバーアクセスが可能となる。
この機能は事前にログインユーザーのパスワードが設定済みであることか、SSHキーを一時的に作成して、ログインすることが可能となっている。
今回は事前にパスワード設定を済ませているので、そのまま接続する。
接続すると下記のように表示される。
ログインユーザーとパスワードが求められるので通常のコンソール画面と同様に操作をする。
ひとまず、OpenVPNサービスを再起動してみて、OpenVPNクライアントで再接続してみたらVPN接続が出来るようになった。
サーバー側のログを見ても何か出している様子はないし・・・何が原因なんだろう。
OpenVPNのログを見たらタイムスタンプが無くて解析が難しい。
以下の情報を参考にしてサービス起動情報を修正した。
https://medium.com/@Dylan.Wang/enable-openvpn-log-and-add-timestamp-in-log-dfdd7bb186b8
次回発生した際に、発生時間帯含めて確認可能?となった。
あー、ネットワーク速度を調べてたら、速度についてはこれが原因だなぁ。
# ethtool tun0
Settings for tun0:
Supported ports: [ ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
MDI-X: Unknown
Current message level: 0xffffffa1 (-95)
drv ifup tx_err tx_queued intr tx_done rx_status pktdata hw wol 0xffff8000
Link detected: yes
10Mb/sでは速度でないよね。
iperf での帯域測定検証しようと思っていたが、やる意味がなさそう。
物理NICがそもそも制限されていそうだ。
詳細は以下に書いてあった。(やはり無償利用では10Mbpsだった)
具体的にはこのような感じ。
単位変換すると・・・10Mbps=1.25MB/s
上記理論値より速度が出ているのは圧縮通信やキャッシュなどが効いているせいか・・・。
へぇー情報。
# ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9000
inet 10.0.0.x netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::x:x:x prefixlen 64 scopeid 0x20<link>
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 4470433 bytes 5076283695 (4.7 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2703785 bytes 1826504188 (1.7 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
MTUが1500ではなく9000で設定されている。
★2023-08-07追記
規約改定やログイン認証方式が追加になったりすると、サーバー再起動を週1などで自動設定しているとグローバルIPアドレスでサーバーに繋げられなくなる模様。
定期的にブラウザログインして適切に設定したあとにサーバー再起動すると接続可能になる。
無償利用だから仕方ないかな。
そういえば運用して1年か。
特に問題なく利用出来ています。
OpenVPNで使用する証明書が発行から2年で切れるので注意かな。
-
購入金額
0円
-
購入日
2022年08月05日
-
購入場所
Oracle
MAGNETさん
2022/08/06
かもみーるさん
2022/08/06
コメントありがとうございます。
構築や運用にあたり認定資格もあるくらいなので今後…というのは難しいのが現状です。
ひとまず無償枠の範囲内では継続していくつもりです。
これから検証という段階ですが、無償で20GB x 4くらいのオンラインストレージとして利用可能なんじゃないかなと考えています。
Rasberry Piなどの低電力サーバーと併用すると使い勝手もよく相性が良いのではと思います。
とはいえ、自宅のインターネット速度がそれなりに出て安定してることが最低条件でしょうが。