12月7日のOracle Cloud Infrastructure Advent Calendar 2021の内容です。
Oracle Cloud Infrastructure (OCI) のAlways Free TierがすごいというのをたまたまTwitterでみたので、調べてみたところその内容がすごかったので、GCPにて運用していたマイクラ鯖をOCIに移行したことを書いたものです。
ちなみに、OCIに移行しましたがマイクラの動作にストレスを感じることはないです。(1つのサーバー内に複数のワールドをたてても快適に動きます。k8s等は利用してません。そのままマイクラサーバーを実行させています。)
OCIのAlways Free Tierについて
一応、説明しときます。
Always Free Tierは、Oracle Cloud Infrastructureのいろいろを期間の制限なく使用できるサービスです。
自分的にOCIのAlways Free Tierがすごいと思うところは、
1つのVMまたは最大4つのVMとして使用可能な4つのArmベースのAmpere A1コアと24 GBのメモリ。
が無料であるということ。
- 1コアと6 GBメモリのVM4台
- 2コアと12 GBメモリのVM2台
- 2コアと12 GBメモリのVM1台&1コアと6 GBメモリのVM2台
という方法も可能。すごい。
GCPのAlways Free VMと比較してもVMの性能はとても良い。あと、OCIはFree Tierの対象であるかどうかが至るところに書いてあるので間違えることがなくわかりやすい。データベースとかは、Free Tier用の設定ボタンがある。また、300ドルのクレジット(30日間のみ有効)が最初に貰えるのですが、期限が切れるとアップグレードしないとこれは出来ないよみたいなのが項目ごとにわかりやすくでてきます。
それでは、新規登録から始めます。
OCIに新規登録する
ここからOCIに新規登録します。登録方法は、たくさん記事がある・困ることはないと思うので省略します。(カード認証まで必須)
ホームリージョンは、近い方が良いのでOsakaを選択しました。Tokyoリージョンは、Free Tier用のインスタンスに制限があるかもみたいなことが書いてあったのでやめました。
追記(2022/01/14):記事を書いたときには大阪リージョンにAmpere A1(Free Tier用チップ)の余裕があったと思うのですが、今はそこまで余裕がないと思います。(私自身、サーバーを削除してから新たにAmpere A1構成のインスタンスを作成しようとしたところ新規作成ができなかったため)他のリージョンを選択することをおすすめします。どのリージョンだと余裕があるのかと言ったことは検証できないでわかりません…
ホームリージョンの変更は一度選ぶと出来ず、ホームリージョンのみFree Tierの対象となるのでよく考えて選んだ方がよさそうです。
登録すると自動的に33,000円のクレジット(多分、制限あり。30日間)が貰えるのとAlways Free Tierの対象者になります。(詳しくは、こちらを参照)
インスタンスを作る
ハンバーガーメニューから、Compute→Instancesを選択。Create instanceをクリック。
Nameは、インスタンス名。わかりやすいのにするべきなので変更した方が良いかと。
Placementは、そのまま。
イメージは、Ubuntuを使いました。なんでも良いと思います。(Windowsは、Always Free Tierの対象外なので選択不可)
インスタンスタイプ(shape)は、下記の写真のように設定します。Ampere→VM.Standard.A1.Flex→4コアまでバーを持っていきます。(メモリは、勝手に24GBに設定されると思います。されなければ、メモリは24GBに設定してください)
SSHキーの取り扱いは、好みの方法でお願いします。ダウンロードしても良いしアップロードしても問題ありません。
SSHキーは、紛失しないように大切に保管してください。
ここまでできたらCreateをクリックします。
aapanelをインストール
今回は、クラウドだったのでaapanelを利用してファイルを移します。
aapanelは、Linux系インスタンスの管理をGUIでできる超便利システムです。欠点としては、aapanelについての日本語記事が少ないことです…
まず、既に利用しているGCP側のVMに繋いでaapanelをインストールします。
インストール方法は、ここから確認できます。
Ubuntuの方は、下記コマンドを入力します。
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh forum
aapanelは、ポート8888|888|80|443|20|21を利用するのでGCP側のファイアウォール設定で8888|888|80|443|20|21をポート開放しときます。(開放方法は、省略)
インストールすると最後に下のような表示がでるので、この内容をどこかにコピーしときます。
Congratulations! Installed successfully!
aaPanel Internet Address: http:/XXX.XX.XX.XXX:8888/~~~~~~~~
aaPanel Internal Address: http:/XX.X.X.XXX:8888/~~~~~~~~
username: ~~~~~~~~
password: ~~~~~~~~
Warning: If you cannot access the panel,release the following port(8888|888|80|443|20|21) in the security group
ここまでできたらGCP側のインストールは完了です。
続いてるOCI側のVMにインストールをします。
先程作成したVMステータスがRunningになっていることを確認して生成又はダウンロードしたsshキーを利用して接続します。(Public IP Addressは、VM作成後の画面に表示されています。)
GCP側に入力したのと同様のコマンドをOCIのVMにも実行させます。
実行前に、パッケージの更新もすることをおすすめします。
apt update
apt upgrade
OCIでもポート(8888|888|80|443|20|21)開放をします。
OCIポート開放方法
OCIのインスタンス一覧[Compute] → [Instances]から先程作成したVMの名前をクリックします。
Instance detailsの中のVirtual cloud network名をクリックします。VCN名には、作成したVMと似たような名前がついていると思います。
クリックするとサブネットがでてくるのでサブネット名をクリックします。下記画像では、minecraft-subnetになっています。
Default Security List for {VCN名}と書かれたセキュリティリストがあると思うのでそれをクリックします。Add Ingress Rulesとあるのでクリックします。
下記画像のように入力します。
Source CIDR: 0.0.0.0/0
IP Protocol: TCP
Destination Port Range: 8888,888,80,443,20,21
入力できたらAdd Ingress Rulesをクリックします。
これで、OCI側でのポート開放は、完了です。
VMポート開放方法
続いてVM側からポート開放をします。(OCIは、VM側からもしないといけないっぽい?)
firewall-cmdを利用します。
sudo apt install firewalld
ポート開放をします。
sudo firewall-cmd --zone=public --permanent --add-port=8888/tcp
sudo firewall-cmd --zone=public --permanent --add-port=80/tcp
sudo firewall-cmd --zone=public --permanent --add-port=443/tcp
sudo firewall-cmd --zone=public --permanent --add-port=20/tcp
sudo firewall-cmd --zone=public --permanent --add-port=21/tcp
リロードします。
sudo firewall-cmd --reload
これで、ポート開放は完了です。後程、マイクラ用のポートを開けます。22
ポートにLIMIT
を指定しといても良いかもしれません。
aapanelにアクセスしてワールドデータをzip化する
続いて、元々利用していたGCP側のサーバー内のマイクラのワールドやプラグインデータをzip化します。
GCP側でaapanelをインストールした際に最後に出力された下記表示のうち、
Congratulations! Installed successfully!
aaPanel Internet Address: http:/XXX.XX.XX.XXX:8888/~~~~~~~~
aaPanel Internal Address: http:/XX.X.X.XXX:8888/~~~~~~~~
username: ~~~~~~~~
password: ~~~~~~~~
Warning: If you cannot access the panel,release the following port(8888|888|80|443|20|21) in the security group
aaPanel Internet Address
とグローバルIPの書いてあるリンクにアクセスします。
アクセスすると下記画面のようになっていると思うので、出力テキストにあるusernameとpasswordを入力します。入力できたらログインしてください。
ログインするとサーバーステータス等色々でてきますが、初期パスワードが嫌だという方は、[Settings]から変更できます。
マイクラのワールドデータをzip化します。
まず、マイクラのワールドを停止させます。screenやtmuxを利用している場合は、アタッチしてstopと入力してください。(それぞれの方法で停止させてください)
横の一覧から[Files]をクリックします。マイクラのワールドテータが入っているディレクトリまで移動します。
マイクラワールドの入っているルートディレクトリを一括でzip化します。まず、データが入っているルートディレクトリの上にマウスを会わせると右側に色々とオプションがでてくるので、[Zip]をクリックします。
Dynmapなどのプラグインを利用していて容量が大きい(4GB)を越える場合、分割してzip化してください。
Zip化する際に保存ディレクトリを選択できると思うのですが、私の試した限りだと元から設定されているパスに保存させると何故かうまく行きませんでした。なので、/hone/ubuntuとかユーザーディレクトリを指定することをおすすめします。
ファイル名は、フォルダ名になっていると思うのでそのままで良いかと思います。
zipファイルが生成されるまで数分待ちます。
zipファイルが生成できたら、保存ディレクトリにいって生成されたファイルにカーソルを会わせると右側に色々表示されると思うので[More] → [Download]をクリックします。
ローカル端末にダウンロードが始まるので終わるまで待ちます。ファイルを分割した場合、全てダウンロードします。(ディレクトリ配置を忘れないように注意してください)
ダウンロードできたらこのステップは終了です。
OCIのVMにワールドデータをアップロードする
続いて、OCI側のVMに先程のzipファイルをアップロードします。
OCI側のVMでaapanelをインストールした際に最後に表示されたログインリンク・ユーザーネーム・パスワードを利用してGCPと同様にaapanelにログインします。
パスワードの変更を行う場合は、行ってください。
[Files]にアクセスします。配置したい場所に移動して先程のzipファイルをアップロードします。(右上に[Upload]とあると思うのでクリックして、表示されたパネルにドラッグするか[Upload file]からファイルを配置して右下の[Upload]ボタンをクリックしてアップロードします)
UploadステータスがUploadedになったらアップロードパネルを閉じます。アップロードしたzipファイルのうえにカーソルをあわせると[UnZip]という表示がでてくるので実行します。
正常に展開できたら完了です。
マイクラ用のポート開放をする
先程のポート解放時と同様なので省略します。
25565/tcpポートを開放します。(Geyser等を利用して統合版とのクロスプレイを行っている場合、TCPではなくUDPの19132を開放する必要があります)
↓Geyser等でBE版とのクロスプレイプロキシを利用している場合
sudo firewall-cmd --zone=public --permanent --add-port=19132/udp
上記コマンド入力後は、必ずfirewall-cmd
をリロードしてください。
javaをインストールする
java17(openjdk)なら、下記コマンドでインストールできます。(v1.17)
apt install openjdk-17-jdk -y
せっかくなので、Oracle JDKのインストールを紹介しようと思ったのですが面倒なので割愛
起動
前のサーバーと同じように起動させてください。当たり前ですが、Dockerを利用していたらDockerをいれてから動させてください。
エラーがでて困ったらコメントください。可能な限り対応します!
最後に
GCPのときは、月々4,000円程度かかっていたサーバー費が0円になって驚いています笑
かなりスペック的にも余裕があるので、wordpressもいれて、GCPのAlways Freeで運用しているVMからブログ用サーバーを移行しようかなとか考えています。
Oracleさん、すごい!(いつまで続くかな…)
追記内容
- 2022年1月18日
- 記事がOCIjpにて紹介されるようなので文法的なミスを修正しました。
- 大坂リージョンにおけるAmpere A1の状況を追記しました。