Oracle Cloud で Compute にWebサーバーを立てたメモ
はじめに
Oracle Cloud の Always Free 枠、シビれましたね。
何がすごいって、O(racle)CPU 1 個、メモリ 1GB の VM インスタンスを 2 個も作らせてくれると。
OCPU は Xeon の物理 1 コア+HT をそのまま割り当てするので、OS から見ると 2 コアです。すげー。
ということで、ホイホイ釣られてサーバーとして使用している機能を一部試しに移してみようと思ったらハマったので記事化することにしました。
個人的な好みで Ubuntu 18.04LTS を使用します。
Oracle Cloud 上での作業
Compute を作成します。ここは Web から普通に作業すれば良いので省略します。
サーバーへの接続(ssh)も省略します。 接続後、 apt install nginx
したものとして記述します。
ハマりポイント
インスタンス名は、あとから変更できません
Web からは変更できなそうです。CLI 使うと変更できるかもしれません。
インスタンス名は、Compute のホスト名として使用されてしまう
日本語を入れると sudo するたびに怒られます。
hostnamectl を使ってホスト名を変更し、 /etc/hosts に 127.0.1.1 yourhostname という感じに記述すると治ります。
作業手順
セキュリティリストの編集
- 左ペインの、
ネットワーキング→仮想クラウド・ネットワーク
を選択 -
VirtualCloudNetwork-201909xx-xxxx
のような名前の VCN を選択。 - サブネット
Default Subnet for xxx
を選択。 - セキュリティリスト
Default Security List for Virtual...
を選択 - イングレス・ルールの追加をクリック
- ソースタイプ
CIDR
、ソース CIDR0.0.0.0/0
IP プロトコルTCP
ソース・ポート範囲All
(空欄にするか All と入れる) 宛先ポート範囲80
を指定して、イングレス・ルールの追加 ボタンをクリック
※ default security list をいじるのではなく、セキュリティリストを追加すべきですが手順短縮の為にこうしています。
この手順で、Compute(=VM)まで 80 番宛のパケットが届くようになります。
OS のファイヤウォールの設定
Ubuntu 18.04 のイメージでは、iptables が最初から有効になっています。
Oracle Cloud 用のルールが入っているので、UFW に乗り換えるのは大変そうです。
仕方が無いので、iptables に設定を入れていきます。
お行儀がわるいのですが、ルールファイルを直接編集します。
vi /etc/iptables/rules.v4
(/etc/sysconfig/iptables ではありませんでした)
-A INPUT -p udp --sport 123 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT <= この行追加
-A INPUT -j REJECT --reject-with icmp-host-prohibited <= これより前に追加すること
編集後に、 /etc/init.d/netfilter-persistent reload
を実行します。
これで、外からの http アクセスを受け付けられるようになりました。
蛇足
http アクセスだったら LoadBalancer とか使うべきかもしれませんが、あれは Always Free 枠ではないので割愛。
Discussion