【簡単・初心者】Oracle Cloud Infrastructure（OCI）でAlways FreeのARMを使ってマインクラフト・サーバーを立ち上げてみた

#はじめに
本記事では、Oracle Cloud Infrastructure（以下OCI）のAlways Free環境でずっーと！**無償**の（高スペックな）マインクラフト・サーバーを立ち上げる手順をお見せします。

仮想マシン（VM）はAMDのコンピュート・シェイプを選ぶこともできますが、今回は5月末にリリースされて、Twitterでも少しバズった(?)**ArmベースのAmpere A1**コンピュート・シェイプを使いたいと思います。
**・Arm-Based Compute詳細： [https://docs.oracle.com/en-us/iaas/Content/Compute/References/arm.htm](https://docs.oracle.com/en-us/iaas/Content/Compute/References/arm.htm)**
>☢注意☢
現在（6月11日時点）ではフェニックス(米国西部)、フランクフルト、ソウル、東京リージョンなどの複数のリージョンで利用制限がかかっているみたいです。（早く解消されることを願ってます。。） 

 OCIの環境は持っているけど、**どんな触り方があるか分からず困っている方**や、OCIの環境が無い方でも、**マイクラでマルチプレイ用のサーバーを立ち上げて、遊んでみたい**という方は、是非参考にしてみてください！

**目次：**
- [1. Always Freeアカウントを開設する](https://qiita.com/sjchorcl/items/20f6741cc2090a1824c2#1-always-free%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%92%E9%96%8B%E8%A8%AD%E3%81%99%E3%82%8B)
- [2. 仮想マシン（VM）インスタンスを作成する](https://qiita.com/sjchorcl/items/20f6741cc2090a1824c2#2-%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3vm%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)
- [3. セキュリティ・リストのルールを追加する](https://qiita.com/sjchorcl/items/20f6741cc2090a1824c2#3-%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%83%AA%E3%82%B9%E3%83%88%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%AB%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B)
- [4. 仮想マシン（VM）にSSH接続して設定する](https://qiita.com/sjchorcl/items/20f6741cc2090a1824c2#4-%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3vm%E3%81%ABssh%E6%8E%A5%E7%B6%9A%E3%81%97%E3%81%A6%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B)
    　・ [マインクラフト・サーバー用のポートを開く](https://qiita.com/sjchorcl/items/20f6741cc2090a1824c2#%E3%83%9E%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%A9%E3%83%95%E3%83%88%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E7%94%A8%E3%81%AE%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E9%96%8B%E3%81%8F)
    　・ [Javaをインストールする](https://qiita.com/sjchorcl/items/20f6741cc2090a1824c2#java%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B)
    　・ [マインクラフト・サーバーをインストールする](https://qiita.com/sjchorcl/items/20f6741cc2090a1824c2#%E3%83%9E%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%A9%E3%83%95%E3%83%88%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B)
- [5. マインクラフトでサーバーに接続して、ゲームを始める](https://qiita.com/sjchorcl/items/20f6741cc2090a1824c2#%E3%83%9E%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%A9%E3%83%95%E3%83%88%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B) 

#1. Always Freeアカウントを開設する

はじめに、OCIのAlways Freeアカウントを開設していない方は、リンク先（<https://www.oracle.com/jp/cloud/sign-in.html>）から「**Sign up**」ボタンをクリックし、アカウントを開設しましょう。
\*`既にアカウントを開設された方は、` [2. 仮想マシン（VM）インスタンスを作成する](https://qiita.com/drafts/20f6741cc2090a1824c2/edit#2-%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3vm%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)`へSkipしてください。`\*

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/d2f5a78d-fc25-f69f-acb0-db5f132da563.png)

次に国/地域、姓名、メールアドレスの情報を入力して「**電子メールの検証**」ボタンをクリックします。
登録したメールアドレス先にOracle Cloudからメールが届きます。
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/edc962cf-aa0b-c08a-3354-9500ad72829f.png)

メールの検証後、**パスワード**を入力します。
![02-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/56851ec8-48e6-df03-3ac4-3e6bbe27e089.png)
次に、**会社名等の情報**と**クラウド・アカウント名**（テナンシとも呼びます）を入力します。
今後はこのアカウント名を使用してログインするため、ユニークで、覚えやすい名前にすることをお勧めします。
また、**ホーム・リージョン**は地理的に近い国・地域をホーム・リージョンとして選択します。（日本の場合、東京/大阪リージョン。）
\*`注意書きとして、Arm Ampere A1コンピュートは需要が高く、東京リージョンを含めた複数のリージョンで利用制限が発生しているという記載があります。`\*
私は今回、Armを使いたいので、今のところ（6月11日時点）利用制限が発生していない**大阪リージョン**を選択しました。
リージョンを選択したら、使用条件を読んだあと「**続行**」ボタンをクリックします。
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/a22677d1-46f9-b5e4-e324-8740770024fb.png)

次に、**住所情報**と**電話番号**を入力し、「**続行**」ボタンをクリックします。
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/350649b7-39a5-9dc8-fee0-3a199b643559.png)

住所情報の登録が完了したら、「**支払検証方法の追加**」ボタンをクリックして、**クレジットカード情報**を入力します。
>安心してください。ユーザーが無償環境のアカウントのアップグレードを行わない限り、請求されることはありません！

![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/ad7ca18a-a42e-614c-b6a9-1840630bd090.png)
最後に、**同意のチェックボックス**に✔して「**無料トライアルの開始**」ボタンをクリックします。
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/8d7178f6-bd6b-33d9-690f-92125e94f6a6.png)
あとは、無事にアカウントが開設されて**メール**が届くのを待つのみです！
![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/89b81c26-3dbe-ca91-4aee-05a57157abcc.png)
![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/cd6575bb-1318-1b5c-f5f7-2d7d01c368a3.png)
しばらくすると、**クラウド・アカウント名**と、**ユーザー名**が記載された内容のメールが届くので、
「**Sign In to Oracle Cloud**」ボタンをクリックしてログインしてください。
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/0ceae7fd-8089-ab1d-8cf7-d8b945464382.png)

>手順通り進めたけど、アカウントの開設ができなかったかたは、以下のQiitaを参考にしてください。
・[Oracle Cloud Always Free の登録でハマりがちな３つのポイントとその対処法](https://qiita.com/Skogkatter112/items/1097c2d51be14fb66652)

<a id="anchor2"></a>

#2. 仮想マシン（VM）インスタンスを作成する

OCIでマインクラフト・サーバーを立ち上げるには、仮想マシン（VM）インスタンスを作成します。
コンソール・ホーム画面の**スタート・ガイド**から「**VMインスタンスの作成**」をクリックすると、簡単にVMインスタンスを作成する事ができます。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/7c9481b2-ebe8-61e1-b764-b59f68ec0faa.png)

インスタンスの**名前**を入力します。（私は"minecraft-server"としました。）
また、**コンパートメント**を選択します。デフォルトで選択されているルート・コンパートメントのままでも結構です。
次にインスタンスを配置する**可用性ドメイン（AD）**を選択します。ADが1つのリージョンの場合はデフォルトのままで結構です。

![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/59b60207-7938-4303-cbea-b6f8577f81bd.png)

スクロールダウンして、**イメージとシェイプ**の項目で__*Oracle Linux7.9*__が選択されていることを確認し、「**シェイプの変更**」ボタンをクリックします。
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/b44595ae-9663-890d-23cd-f97b9c2130ae.png)

インスタンス・タイプは**仮想マシン**を選択、シェイプ・シリーズは**Ampere（Arm）**を選択します。
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/a2fed7aa-855b-b4e6-0db7-9d3f25ae8761.png)
続いて、*VM.Standard.A1.Flex*シェイプに**✔**を入れて、**OCPUの数**と**メモリーの容量**を選択します。
マインクラフトのサーバー要件は、[ここから](https://minecraft.fandom.com/wiki/Server/Requirements/Dedicated) 確認できます。ニーズに合わせて適切なリソースを選んでください。
（私は2 OCPUと6 GBのRAMにしました。マイクラで同時に20人とマルチプレイができるつよつよのサーバーです！しかも、2 OCPUと18 GBのRAMがまだ無償で使える。。）
>OCIのAlways Free環境では**4 OCPU**と**24 GB**のメモリー容量が使えるArmベースのAmpere A1のコンピュートが無償で提供されています。

それぞれ選択したら、「**シェイプの選択**」ボタンをクリックします。
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/64e09bc1-ea9c-e916-80ca-3547bb8b644d.png)


「*Always Free対象*」のマークが確認できます。
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/1d5a5dcf-f31b-355e-f5c1-126d76e44fbd.png)

ネットワーキングの項目に進みます。ここでは、仮想クラウド・ネットワーク（VCN）を選択します。
既に仮想クラウド・ネットワーク（VCN）を作成している方はそのVCNを選択するか、
VCNを作成していない方は、「**新規仮想クラウド・ネットワークの作成**」を選択して、「**新規パブリック・サブネットの作成**」を選択します。名前は入力してもデフォルトのままでも構いません。
「**パブリックIPv4アドレスの割り当て**」も選択されてることを確認してください。\*`選択しない場合、インターネットからこのサーバーに接続することができません。`\*
![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/0852da57-af1a-3cd2-2ab3-e72d45d7d46c.png)
続いて、SSHキーの追加をします。既にSSHキーを用意していれば、公開キーのファイルをアップロードするか、貼り付けることができます。
SSHキーがない方は、「**SSHキー・ペアの生成**」を選択して、「**秘密キーの保存**」と「**公開キーの保存**」をします。
![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/66b128c9-91d8-5e8e-ce68-b69441ff442f.png)
ブート・ボリュームのセクションはデフォルトのままで、最後に「**作成**」ボタンをクリックします。
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/43fce218-c509-8062-82d0-5c0e370fbb81.png)
プロビジョニング中の画面が表示されます。
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/3b905a4e-62fa-40c1-3ed3-accb1a5a3a43.png)
アイコンが緑色に変わると、インスタンスが無事に作成されたことになります。
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/eb74915f-a67a-b4a3-caab-f40f34133359.png)

<a id="anchor3"></a>

#3. セキュリティ・リストのルールを追加する

マインクラフト・サーバーを立ち上げたら、プレーヤーからサーバーに接続できるようにセキュリティ・ルールを追加します。

インスタンスの詳細画面から**サブネットのリンク**をクリックします。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/e737f292-b932-962c-9e8d-b5856c77763a.png)

**セキュリティ・リスト**をクリックします。
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/c17b42ce-2727-c8ac-d988-bffc5fc38cfb.png)
「**イングレス・ルールの追加**」ボタンをクリックします。
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/20e0b74b-f2fb-8784-e55a-490703f37fe1.png)
以下のように、**TCPとUDPプロトコル**用の2つのイングレス・ルールを追加します。それぞれの「ソースCIDR」は**0.0.0.0/0**で、「宛先ポート範囲」は**25565**です。
入力後、「**イングレス・ルールの追加**」ボタンをクリックします。
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/c8e1ca3a-432e-a120-ffa8-94cbf4f25777.png)
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/86cfd59b-baa2-19bd-ae23-c8b03f170e62.png)
ここまででOCIコンソールを使った設定は完了です。

#4. 仮想マシン（VM）にSSH接続して設定する

早速、仮想マシンに接続してましょう。今回はSSHクライアントとしてTeraTermを使用します。
[【<font color="RED">こちら</font>】](https://ja.osdn.net/projects/ttssh2/)からTeraTermのダウンロードができます。
MacやLinuxユーザーの方はターミナルよりSSHコマンドで仮想マシンに接続できます。

TeraTermを開いたら、**「ホスト」**に前の手順で作成した仮想マシンの**パブリックIPアドレス**を入力して、「**OK**」をクリックします。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/0e74872a-caec-9b7e-ced8-d91e40178a0d.png)
セキュリティ警告の画面が表示されたら、「**続行**」をクリックします。
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/7864692b-97ba-977f-a291-16ec8b0954c9.png)
「ユーザ名」に**opc**（**O**racle **P**ublic **C**loudの略です）を入力し、「RSA/DSA/ECDSA/ED25519鍵を使う」を選択後、仮想マシンを作成する際に保存した**秘密鍵**を選択して「**OK**」をクリックします。
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/27f1763e-1d86-c947-9c9a-a97afd1f5a44.png)

## マインクラフト・サーバー用のポートを開く
仮想マシンへのアクセスができたら、まずはポートを開放します。
以下のコマンドを実行します。

```ruby:ポートを開放
sudo firewall-cmd --permanent --zone=public --add-port=25565/tcp
sudo firewall-cmd --permanent --zone=public --add-port=25565/udp
sudo firewall-cmd --reload
```
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/e1672c79-2686-9b7f-5b2e-8335b6dbcb5c.png)

## Javaをインストールする
マインクラフトはJavaで動いているので、Javaをインストールする必要があります。
また、最近（6月9日）リリースされた、Java Edition 1.17で遊ぶには**Java 16**以降をインストールする必要があります。
>参考URL：<https://help.minecraft.net/hc/en-us/articles/360035131371-Minecraft-Java-Edition-System-Requirements->

ここでは、Open Java Development Kit（JDK）Java 16のインストールをSDK MANで実行します。
SDK MANのインストールは以下のコマンドを実行します。

```ruby:SDKMANインストール
curl -s "https://get.sdkman.io" | bash
```
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/3d27d42c-f64a-4902-457f-c5bb6361f9f9.png)
次に、以下のコマンドを実行します。

```ruby:SDKMANインストール
source /home/opc/.sdkman/bin/sdkman-init.sh
sdk help 
```
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/72e87c6c-e456-35f5-fb99-48a004df7a14.png)
SDK MANのインストールが完了したら、以下のコマンドを実行してJava 16をインストールします。

```ruby:Java16インストール
sdk install java 21.1.0.r16-grl install graal vm java 16 compat version
```
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/e2ff4d4c-18e4-2be3-26f8-f8e22df6755a.png)

インストールが完了したら、以下のコマンドで正しくインストールされたかを確認します。

```ruby:Java16インストール
java -version
```
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/2b16f6a4-454e-8d72-81f4-d22e15a9ea27.png)

## マインクラフト・サーバーをインストールする
Javaのインストールが完了したので、 いよいよマインクラフト・サーバーのインストールです！

[【<font color="RED">こちら</font>】](https://www.minecraft.net/ja-jp/download/server)をクリックして、リンク先の公式サイトから最新のマインクラフト・サーバーの.jarファイルの**リンクをコピー**します。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/0c428308-2ed0-7cf9-4f3c-6bcf9a1585bd.png)

リンクを貼り付けて、`wget コマンド`でダウンロードします。

```ruby:サーバーのダウンロード
wget https://launcher.mojang.com/v1/objects/0a269b5f2c5b93b1712d0f5dc43b6182b9ab254e/server.jar
```
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/60c5f531-da73-b6cf-2827-9944e6ea9bcb.png)
以下のコマンドで実行します。（エラーが発生しても大丈夫です。）

```ruby:サーバーの実行
java -Xmx1024M -Xms1024M -jar server.jar nogui
```
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/aa19c729-9146-3d52-b90b-28897a201e77.png)

サーバーを実行すると、.jarファイルが置いてある同じディレクトリ上に`eula.txt`ファイルが生成されます。
この`eula.txt`ファイルを開き、編集します。
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/8848d77d-a8d5-8e85-ee8f-1e18bbfa7c02.png)
ファイルの中の`false`を`true`に変更します。
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/28546910-1295-0d4d-6e0d-b05b2eb209c9.png)
`eula.txt`ファイルを編集したら、再度サーバーを実行します。

```ruby:サーバーの実行
java -Xmx1024M -Xms1024M -jar server.jar nogui
```
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/c1920884-557b-38ed-f6e6-f67f0efe3432.png)
![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/1895db8b-d152-1edf-1835-145e2d3ab55d.png)
少し経過して、`Done(XX.XXXs)!`が表示されれば、マインクラフト・サーバーの実行が完了しました！

#5. マインクラフトでサーバーに接続して、ゲームを始める

サーバーに接続するために、マインクラフトを起動します。
起動したら、「**マルチプレイ**」ボタンをクリックします。
![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/b1ef0a6f-fca1-82d6-faaa-a41d40f7a3d7.png)
「**ダイレクト接続**」ボタンをクリックします。サーバーへの接続は今後も行うため、「サーバーを追加」ボタンからサーバーを追加しても構いません。
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/cffec777-97e8-6682-2b6e-cbd381fad2ea.png)
「サーバーアドレス」に作成した仮想マシン（VM）の**パブリックIPアドレス**を入力します。
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/72d0b6cc-c9d3-bada-c1b8-d27e4a7dbc65.png)

![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1318052/d88e9a0a-3eb0-021e-2209-bfdea95727c5.png)
ワールドに入れば、あとはゲームを楽しんでください！
同じワールドに別のプレイヤーが入ると、チャット欄に通知が入ります。
>マインクラフト・チュートリアル：<https://minecraft.fandom.com/ja/wiki/%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB>

# 最後に

いかがでしょうか。本記事では、Oracle Cloud Infrastructure（OCI）Always Free環境で、Always FreeなArmコンピュートを使ってマインクラフト・サーバーを立ち上げる手順をお見せしました。
是非、興味のある方は[【<font color="RED">こちら</font>】](https://www.oracle.com/jp/cloud/free/)からOCIのアカウントを開設して、"ワールド"を構築してみてください。