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 サーバーには届いているので、鍵とユーザー名を先に疑います。