投稿

Oracle Cloud の無料枠で A1 が取れないとき、AMD Micro で Ubuntu VPS を立てる

Oracle Cloud の無料枠で A1 が取れないとき、AMD Micro で Ubuntu VPS を立てる

参考: Always Free リソース

まとめ

  • Arm の VM.Standard.A1.Flex が Out of capacity になったら、AD を変えて試し、取れなければ VM.Standard.E2.1.Micro(AMD Micro)を先に確保する。
  • インスタンス作成画面で Public Subnet を選べないときは、作成画面に戻らず、先に Networking の VCN ウィザードでネットワークを作る。
  • SSH が agent refused operation で失敗したら、IdentityAgent=none と IdentitiesOnly=yes を付けて、エージェントを経由せず鍵を直接使う。

詰まった3箇所と対処

London リージョンで Ubuntu 24.04 の VPS を作るまでに止まったのは次の3箇所でした。

表1: 詰まった3箇所

症状 原因 対処
A1.Flex の作成で Out of capacity 該当 AD のホスト容量が不足している 別 AD、Fault domain の自動選択、構成の縮小を試す。取れなければ AMD Micro に切り替える
Public IPv4 の割り当てで You must select a public subnet Public Subnet が未作成、または未選択 Networking で先に VCN と Public Subnet を作り、Compute では既存のものを選ぶ
SSH で agent refused operation、続いて Permission denied (publickey) ローカルの SSH エージェントが RSA 署名を拒否している エージェントを無効にして鍵ファイルを直接指定する

VCN は Compute 画面ではなく先に作る

Compute の作成画面から VCN を自動作成する途中で、IPv4 の項目が選べなくなりました。そこで Networking > Virtual Cloud Networks > Start VCN Wizard を開き、Create VCN with Internet Connectivity で先にネットワークを作りました。 ウィザードは Public Subnet、Private Subnet、Internet Gateway、NAT Gateway、Service Gateway、Route Table、基本の Security List をまとめて作るので、手動で重ねて作る必要はありません。

確認する場所は Subnet 側の Route Table です。Internet Gateway の詳細画面に出る Route Table: — は任意の関連付け欄で、空でも通信に支障はありません。Subnet の Route Table に 0.0.0.0/0 → Internet Gateway があれば、インターネットへ出られます。このルートは経路を開くだけで、全ポートの公開にはなりません。通信の許可は Security List と NSG、OS 側のファイアウォールで決まります。SSH の TCP 22 は、接続元の IP を /32 で絞るのが安全です。

Internet
   |
Internet Gateway: London-ig
   |  Public Subnet の Route Table: 0.0.0.0/0 -> London-ig
VCN: London (10.0.0.0/16)
   |
Public Subnet: London-subnet (10.0.0.0/24)
   |
Ubuntu VPS (Private IPv4 + Public IPv4)

AMD Micro を選ぶ判断

Always Free の Shape は、無料対象でも空き容量が保証されません。今回は A1 が AD-1 と AD-3 で容量不足、AD-2 では Shape 自体が選択肢に出ませんでした。AMD Micro は AD-3 で選択できたので、そこに作りました。

AMD Micro は 1/8 OCPU・1GB RAM で、無料枠では最大2台まで作れます。Docker や n8n のようにメモリを使うものには向きません。A1 に空きが出た時点で、アプリ側を A1 に移し、AMD Micro は監視や管理の用途に残す、という使い分けができます。

先に作る側を AMD Micro にしたのは、A1 の空きが出る時期が分からないためです。取れるものを先に確保しておけば、サーバーを使い始められます。

作成時に確認する設定は次のとおりです。

  • Shape に Always Free-eligible と出ていること。イメージ一覧の Price: Free は OS ライセンスの表示で、VM 全体の無料を意味しません。
  • ブートボリュームを含むブロックストレージは、合計 200GB が無料枠の上限です。
  • ホームリージョンは後から変更できません。

SSH 接続

秘密鍵のパーミッションを絞り、エージェントを経由せずに接続します。<PUBLIC_IP> はインスタンス詳細に出る公開 IP に置き換えます。Ubuntu イメージの初期ユーザーは ubuntu です。

chmod 600 ~/.ssh/id_oracle.key

ssh -o IdentityAgent=none \
  -o IdentitiesOnly=yes \
  -i ~/.ssh/id_oracle.key \
  ubuntu@<PUBLIC_IP>

毎回オプションを付けないよう、~/.ssh/config に登録します。

Host oracle-london
    HostName <PUBLIC_IP>
    User ubuntu
    IdentityFile ~/.ssh/id_oracle.key
    IdentitiesOnly yes
    IdentityAgent none

これで ssh oracle-london だけで入れます。それでも失敗するときは ssh -vvv で確認します。Permission denied が返っているなら、SSH サーバーには届いているので、鍵とユーザー名を先に疑います。