OCI Computeのシェイプの選び方と、2台をFDに分けて公開IPなしで作る手順

※当ページにはAmazonアソシエイト等の広告リンクを含みます。

公式ドキュメントで検証最終検証 2026-11-01編集部出典 18件

1. シェイプを選ぶ:Armとx86の違い

シェイプは、インスタンスのCPU、メモリ、ネットワークの組み合わせです。Flexシェイプなら、OCPUとメモリを別々に指定できます。メモリの最小は1GB、またはOCPU数の大きいほうです。最大は1 OCPUあたり64GBで、シェイプごとに合計の上限があります。

主なFlexシェイプを表1に示します。

表1:主なFlexシェイプ(2026-11-01確認。最新は公式で確認)

シェイプCPU種類1 OCPUの中身最大OCPU
VM.Standard.A1.FlexAmpere AltraArm1 vCPU76
VM.Standard.A2.FlexAmpereOneArm2 vCPU78
VM.Standard.A4.FlexAmpereOne MArm2 vCPU45
VM.Standard.E5.FlexAMD EPYCx862 vCPU126
VM.Standard.E6.FlexAMD EPYCx862 vCPU126
VM.Standard3.FlexIntel Xeonx862 vCPU32

A1の無料枠は、月に1,500 OCPU時間と9,000 GB時間です。2 OCPU、メモリ12GB相当で、1 OCPU・6GBの2台なら、31日の月でも枠に収まります(2026-11-01確認。最新は公式で確認してください)。

Always FreeのComputeはホームリージョンに作ります。ホームリージョンが東京でないと、東京のA1は枠の対象になりません。料金は公式の価格表と料金のページで確かめてください。

OCPUの数え方

OCPUは、OCIのCPUの課金と割り当ての単位です。AWSのvCPUと同じではありません。

OCPU Counting1 OCPUの中身を比べる
A1(Arm)VM.Standard.A1.Flex1 OCPUコアvCPU4 vCPU を用意するなら4 OCPUx86(AMD・Intel)E5.Flex、Standard3.Flex など1 OCPUコアvCPUvCPU4 vCPU を用意するなら2 OCPUA2・A4(Arm)VM.Standard.A2.Flex、A4.Flex1 OCPUコアvCPUコアvCPU4 vCPU を用意するなら2 OCPU
図1:同じ4 vCPUでも、指定するOCPUの数はシェイプで変わる

EC2の多くのインスタンスは、1スレッドを1 vCPUとして数えます。x86のOCPUは1コア2スレッドなので、2 vCPUです。ただし、OCPUの数をそろえても同じ性能とは限りません。CPUの種類をまたぐなら、自分のアプリで負荷を測って決めます。

あとから変えられるもの

Flexシェイプは、同じシェイプのままOCPUとメモリを変えられます。インスタンスが動いていれば再起動されるので、作業時間を決めて行います。

一方、Armとx86をまたぐ変更は簡単ではありません。シェイプの変更には、作成時のイメージが新しいシェイプに対応している必要があります。Armとx86のイメージは互換性がなく、名前に aarch64 が入っているものがArm用です。作り直す前提で考えます。

2. アプリのArm対応を確かめる

A1を選ぶ前に、アプリが動くかを確かめます。経費申請アプリなら、OSから順に下から見ていきます。

表2:Arm対応の確認リスト

確認するもの確かめること公式で分かること
OSイメージArm用のイメージがあるかOracle LinuxとUbuntuに対応。Ubuntuでは Minimal ではなく標準のイメージを使う。WindowsはAmpereシェイプに非対応
実行環境使う言語のArm版があるかJava、GraalVM、MySQLなどの開発資料がある
DB接続ドライバがArmで動くかA1のTomcatからAutonomous DatabaseへJDBCで接続する構成例がある。Instant Clientにはaarch64のRPMがある
コンテナArm用の依存物を含むイメージかFunctionsの解説では、1つのタグでx86とArmを含むマルチアーキテクチャイメージを案内している
独自のライブラリx86向けのビルドだけではないか製品ごとに提供元の案内を確認する

もう1つ、Bastionとの相性もあります。A1でOracle Linux以外のOSを使うと、マネージドSSHセッションは使えません。ポート転送セッションに切り替えることになります。今回は運用を簡単にするため、Oracle Linuxを選びます。

3. 2台をFDに分ける

東京リージョンのADは1つです(2026-11-01確認)。ADをまたいだ分散はできませんが、1つのADには3つのフォルトドメイン(FD)があります。

FDは、AD内のハードウェアとインフラのまとまりです。2台を別のFDに置くと、同じ物理ハードウェアに載らなくなります。

Fault Domains2台を別のFDに置いたときの障害の影響
東京リージョン(ADは1つ)ADFD 1Compute 1ハードウェア障害LBの振り分けから外れるFD 2Compute 2影響を受けない通信を受け続けるFD 3今回は空き容量不足のときの移動先LBpublic-lb
  1. FDで防げるもの:1つのFDのハードウェア障害と、Computeのハードウェア保守の影響です。
  2. FDで防げないもの:AD全体やリージョン全体の障害です。東京はADが1つなので、別ADへは逃がせません。
図2:1つのFDでハードウェア障害が起きても、別のFDのComputeはLBから通信を受け続ける

公式のベストプラクティスも、Webサーバーを2台に分けて、1つのFDの障害でアプリが止まらないようにする構成を示しています。1つのFDの障害やComputeのハードウェア保守は、別のFDのインスタンスに影響しません。

アプリ側にも準備が要ります。片方が止まってもログインが切れないよう、セッションや領収書をCompute内に置かず、DBやObject Storageに置きます。ヘルスチェックの設定は、LBの項目で扱います。

FDは作成時に指定する

FDを指定しないと、システムが選びます。ベストエフォートでFDを分けて配置しますが、確実に分けたいなら自分で指定します。1台目を FD 1、2台目を FD 2 にします。

作成時に Out of host capacity のエラーが出ることがあります。そのシェイプの物理的な容量が、指定したFDやADで足りないという意味です。東京ではADを変えられないので、別のFDを指定するか、少し待って試します。FD 1 とFD 2 にこだわる必要はありません。2台が別のFDなら、FD 3 でもかまいません。

4. 公開IPなしで作る

Computeは private-app に置きます。プライベートサブネットのVNICは公開IPを持てないので、付け忘れの心配もありません。

Private Access公開IPなしのComputeへの入り方
管理者のPC秘密鍵はここだけBastion接続元と時間を制限インターネットVCN 10.0.0.0/16private-app 10.0.1.0/24Compute 1FD 1・公開IPなしCompute 2FD 2・公開IPなしauthorized_keys公開鍵だけを置くauthorized_keys公開鍵だけを置く公開IPがないので直接は届かない123
  1. 接続元:Bastionが許可した接続元のIPからセッションを始めます。
  2. Compute へ:Bastion経由でプライベートIPに届きます。手順は次の項目で扱います。
  3. 遮断:プライベートサブネットのVNICは公開IPを持てません。
図3:管理者はBastionを通して入り、インターネットからCompute 2台へは直接届かない

作成の手順

コンソールのインスタンス作成画面で、次のように指定します。1台目を作ったら、名前とFDを変えて2台目も作ります。

  1. Compartment に app を選びます。VCNが network にあっても問題ありません。
  2. Advanced options の Fault domain で、1台目のFDを選びます。
  3. Image に、Oracle LinuxのArm用イメージを選びます。
  4. Change shape で Ampere の VM.Standard.A1.Flex を選び、Number of OCPUs と Amount of memory (GB) を入れます。
  5. Primary network で既存のVCNと private-app を選びます。
  6. SSH鍵は、自分で作った公開鍵をアップロードするか貼り付けます。
  7. Oracle Cloud Agentの設定で、Bastionプラグインを有効にします。
  8. 作成後、インスタンスの詳細で、公開IPがないこととFDを確かめます。

NSGは、アプリ用のものをここで付けます。Bastionを使う接続はBastionの解説で扱います。

SSH鍵を管理する

Linuxインスタンスにはパスワードではなく、SSH鍵で入ります。鍵の扱いは、作る前に決めておきます。

表3:SSH鍵の選び方

選択肢特徴今回の扱い
Generate a key pair for meコンソールが生成する。秘密鍵はOracleに残らない試すだけなら可。保存を忘れない
Upload public key files / Paste public keys手元で作った公開鍵を渡すこれを使う
No SSH keys作成後に鍵の追加や生成鍵の保存ができない使わない

手元で鍵を作る例です。パスフレーズを付けると、鍵が漏れたときの備えになります。

ssh-keygen -t ed25519 -f ~/.ssh/oci-expense-app -C "expense-app-admin"
chmod 400 ~/.ssh/oci-expense-app

決めておくことは4つです。

  • 秘密鍵は管理者の手元だけに置き、Gitやチャットに置きません。
  • 秘密鍵をなくしたときの対応を決めます。公式は新しいインスタンスを作る方法のほか、Oracle Linuxではシリアルコンソールの保守モードで opc の鍵を設定し直す方法を案内しています。
  • 管理者が増えるときは、各自のユーザーと鍵を作ります。
  • ログインユーザーを確かめます。Oracle Linuxは opc で、作成時の公開鍵は /home/opc/.ssh/authorized_keys に入ります。

アプリのDBパスワードやAPIキーは、SSH鍵と分けて考えます。Compute内にファイルで置かず、Vaultと動的グループを使う方法をIAMの解説で確かめてください。

次に読むページ

ロードマップの次の項目は「Bastionでログインする」です。セッションの方式、接続元の制限、時間の上限を押さえます。そのあとに「OS更新の通信を確かめる」へ進みます。

よくある質問(FAQ)

1 OCPUは何vCPUですか?
シェイプによって違います。x86は1 OCPUが2 vCPUです。ArmのA1は1 OCPUが1 vCPU、A2とA4は1 OCPUが2 vCPUです。詳しくは公式のCompute Shapesで確認してください(2026-11-01確認)。
東京リージョンでAD障害に備えるにはどうすればいいですか?
東京はADが1つなので、同じリージョンの別ADには逃がせません。FDでは、AD全体の障害は防げません。必要なら別リージョンへの復旧を考えます。今回の題材の範囲外で、ロードマップの中級編以降で扱う内容です。
作成時にSSH鍵を指定しないとどうなりますか?
「No SSH keys」を選ぶと、作成後にコンソールから鍵を追加できません。Linuxインスタンスでは、自分で作った鍵の公開鍵を作成時に指定します。
目次