はじめに
初投稿です。
インフラ素人ですが Oracle Cloud Always Free で分散 SNS の Dolphin が立ち上げられたので記事を書くことにしました。
[2021/6/22 追記] この記事では AMD VM.Standard.E2.1.Micro の VM を作成しています。
[2021/6/22 追記] NAT インスタンスの設定 の項を追記しました。
目標
VM インスタンスの作成と SSH での接続、さらにオブジェクト・ストレージの作成を行います。
今回は分散 SNS の Dolphin をインストールするために必要な構成としていますが、他の一般的なサーバーでも使える構成になると思います。
Always Free では 2 つの VM インスタンス、2 つの Oracle Autonomous Database、10 GB 20 GB のオブジェクト・ストレージ等が無料で利用できますが、今回は Oracle Autonomous Database は使用せず、代わりに PostgreSQL を使用する前提でインスタンスを建てることとします。
参考: Always Freeリソースの詳細
VM インスタンスは 2 つまで作成できるので、有効に使うために WEB AP サーバーと DB サーバーに分けて作成します。
前提条件
-
ssh
とssh-keygen
コマンドが使える端末 - Oracle Cloudでホームリージョンが東京のアカウントが作成されている
【OCI】oracle cloud -アカウントの登録編-等を参考にアカウントを作成しておいてください。
ネットワーキング
仮想クラウド・ネットワークの作成
VM インスタンスを作成する前に仮想クラウド・ネットワークを作成します。
今回は WEB サーバーのみ外部に公開(public)し DB サーバーは非公開(private)の構成にします。
Oracle Cloud Infrastructure コンソール にサインインし、左上の三本線メニューをクリックして「ネットワーキング > 仮想クラウド・ネットワーク」をクリックします。
表示された入力画面に次のように入力します。
名前は他と区別できればどんな名前でもよいです。
項目 | 値 |
---|---|
名前 | Dolphin VCN |
コンパートメントに作成 | username (ルート) |
CIDRブロック | 10.0.0.0/16 |
このVCNでDNSホスト名を使用 | ✓ |
DNSラベル | dolphinvcn |
入力したら「VCNの作成」ボタンをクリックします。
続けて関連リソースを作成していきます。
リソースの一覧は同画面の左下の方に表示されています。
パブリック・サブネットの作成
まずは WEB サーバー用のパブリック・サブネットを作成するためリソースの「サブネット」をクリックし、表示された画面の「サブネットの作成」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
名前 | Public Subnet Dolphin VCN |
コンパートメントに作成 | username (ルート) |
サブネット・タイプ | リージョナル(推奨) |
CIDRブロック | 10.0.0.0/24 |
ルート表コンパートメント | Default Route Table for Dolphin VCN |
サブネット・アクセス | パブリック・サブネット |
このSUBNETでDNSホスト名を使用 | ✓ |
DNSラベル | publicsubnet |
DHCPオプション・コンパートメント | Default DHCP Options for Dolphin VCN |
セキュリティ・リスト | Default Security List for Dolphin VCN |
この設定でプライベート IP アドレスが 10.0.0.0/24 (10.0.0.0 〜 10.0.0.255) の範囲で、外部に公開できるパブリック・サブネットが作成されます。
入力したら「サブネットの作成」ボタンをクリックしてパブリック・サブネットを作成します。
インターネット・ゲートウェイの作成
パブリック・サブネットではインターネット・ゲートウェイを設定しないとネットワークに接続できないので設定します。
リソースの「インターネット・ゲートウェイ」をクリックし、表示された画面の「インターネット・ゲートウェイの作成」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
名前 | Internet Gateway Dolphin VCN |
コンパートメントに作成 | username (ルート) |
入力したら「インターネット・ゲートウェイの作成」ボタンをクリックします。
続けてインターネット・ゲートウェイをルート表に追加します。
リソースの「ルート表」をクリックし、表示された画面の「Default Route Table for Dolphin VCN」をクリックし、表示された画面の「ルート・ルールの追加」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
ターゲット・タイプ | インターネット・ゲートウェイ |
宛先CIDRブロック | 0.0.0.0/0 |
ターゲット・インターネット・ゲートウェイ | Internet Gateway Dolphin VCN |
入力したら「ルート・ルールの追加」ボタンをクリックしてインターネット・ゲートウェイのルートを追加します。
WEB サーバー用のネットワーク・セキュリティ・グループの作成
WEB サーバーは 80 と 443 ポートを公開するため、ネットワーク・セキュリティ・グループで公開ポートの設定をします。
WEB サーバー用のネットワーク・セキュリティ・グループを作成するため、リソースの「ネットワーク・セキュリティ・グループ」をクリックし、表示された画面の「ネットワーク・セキュリティ・グループの作成」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
名前 | WEB Network Security Group Dolphin VCN |
コンパートメントに作成 | username (ルート) |
「次」ボタンをクリックしてセキュリティ・ルールを入力します。
項目 | 値 |
---|---|
ステートレス | 未チェック |
方向 | イングレス |
ソース・タイプ | CIDR |
ソースCIDR | 0.0.0.0/0 |
IPプロトコル | TCP |
ソース・ポート | 空欄 |
宛先ポート範囲 | 80,443 |
入力したら「作成」ボタンをクリックして WEB サーバー用のネットワーク・セキュリティ・グループを作成します。
プライベート・サブネット用のルート表の作成
次に DB サーバー用のプライベート・サブネットの作成をする前に、プライベート・サブネット用のルート表を作成します。
リソースの「ルート表」をクリックし、表示された画面の「ルート表の作成」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
名前 | Private Subnet Route Table Dolphin VCN |
コンパートメントに作成 | username (ルート) |
入力したら「ルート表の作成」ボタンをクリックしてプライベート・サブネット用のルート表を作成します。
プライベート・サブネットの作成
DB サーバー用のプライベート・サブネットを作成するためリソースの「サブネット」をクリックし、表示された画面の「サブネットの作成」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
名前 | Private Subnet Dolphin VCN |
コンパートメントに作成 | username (ルート) |
サブネット・タイプ | リージョナル(推奨) |
CIDRブロック | 10.0.1.0/24 |
ルート表 | Private Subnet Route Table Dolphin VCN |
サブネット・アクセス | プライベート・サブネット |
このSUBNETでDNSホスト名を使用 | ✓ |
DNSラベル | privatesubnet |
DHCPオプション | Default DHCP Options for Dolphin VCN |
セキュリティ・リスト | Default Security List for Dolphin VCN |
パブリック・サブネットの設定と微妙に異なっているので注意してください。
この設定でプライベート IP アドレスが 10.0.1.0/24 (10.0.1.0 〜 10.0.1.255) の範囲で、外部に公開できないプライベート・サブネットが作成されます。
入力したら「サブネットの作成」ボタンをクリックしてプライベート・サブネットを作成します。
NAT ゲートウェイの作成
[2021/6/22 追記]
Always Free の範囲内で NAT ゲートウェイが作成できると思っていたのですが、Always Free では作成できないようです。
代わりに WEB サーバーを NAT インスタンスとすることでインターネット接続する方法が分かったので、この項は飛ばして 次項 に進んでください。
この項はそのまま残しておきます。
[追記終わり]
プライベート・サブネット内のインスタンスはインターネットに公開されないのですが、このままではインターネットに接続ができないためインスタンスの構築に必要なソフトウェアのダウンロードもできません。
内部からインターネットに接続できるように NAT ゲートウェイを作成します。
リソースの「NATゲートウェイ」をクリックし、表示された画面の「NATゲートウェイの作成」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
名前 | NAT Gateway Dolphin VCN |
コンパートメントに作成 | username (ルート) |
エフェメラル・パブリックIPアドレス |
入力したら「NATゲートウェイの作成」ボタンをクリックして NAT ゲートウェイを作成します。
続けて NAT ゲートウェイをプライベート・サブネット用のルート表に追加します。
リソースの「ルート表」をクリックし、表示された画面の「Private Subnet Route Table Dolphin VCN」をクリックし、表示された画面の「ルート・ルールの追加」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
ターゲット・タイプ | NATゲートウェイ |
宛先CIDRブロック | 0.0.0.0/0 |
ターゲットNATゲートウェイ | NAT Gateway Dolphin VCN |
入力したら「ルート・ルールの追加」ボタンをクリックして NAT ゲートウェイのルートを追加します。
DB サーバー用のネットワーク・セキュリティ・グループの作成
DB サーバーは PostgreSQL の 5432 ポートを公開するため、ネットワーク・セキュリティ・グループで公開ポートの設定をします。
DB サーバー用のネットワーク・セキュリティ・グループを作成するため、リソースの「ネットワーク・セキュリティ・グループ」をクリックし、表示された画面の「ネットワーク・セキュリティ・グループの作成」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
名前 | DB Network Security Group Dolphin VCN |
コンパートメントに作成 | username (ルート) |
「次」ボタンをクリックしてセキュリティ・ルールを入力します。
項目 | 値 |
---|---|
ステートレス | 未チェック |
方向 | イングレス |
ソース・タイプ | CIDR |
ソースCIDR | 0.0.0.0/0 |
IPプロトコル | TCP |
ソース・ポート | 空欄 |
宛先ポート範囲 | 5432 |
入力したら「作成」ボタンをクリックして DB サーバー用のネットワーク・セキュリティ・グループを作成します。
コンピュート
SSH 認証のための公開鍵と秘密鍵の作成
インスタンスを作成する際に SSH 公開鍵の登録が必要なため、Linuxインスタンスでのキー・ペアの管理等を参考に SSH 公開鍵と秘密鍵を作成します。
ターミナルを起動し、次のコマンドを入力します。
your_email@example.com
の箇所は適宜変更して入力してください。
$ ssh-keygen -t rsa -N "" -b 2048 -C your_email@example.com -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:iaevhEsnkIKkcZjfXHfIawOU6iiAYERNgDxfBSxIH5w your_email@example.com
The key's randomart image is:
+---[RSA 2048]----+
|*=*oo.+o |
|oB.E.+.. . |
|B.+.o.o + . |
|*+ =.. + + |
|= +oo . S |
|...... + . |
| . + + |
| . = . |
| . ... |
+----[SHA256]-----+
~/.ssh/id_rsa
に秘密鍵が作成され、~/.ssh/id_rsa.pub
に公開鍵が作成されました。
WEB サーバーのインスタンスの作成
WEB サーバーのインスタンスを作成します。
左上の三本線メニューをクリックして「コンピュート > インスタンス」をクリックします。
表示されたページの「インスタンスの作成」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
インスタンスの命名 | Dolphin |
コンパートメントに作成 | username (ルート) |
続けて「Configure placement and hardware」の右側にある「編集」をクリックします。
項目 | 値 |
---|---|
可用性ドメイン | AD 1 [Always Free対象] |
Choose a fault domain for this instance | 未チェック |
使用する OS を変更するため「イメージの変更」ボタンをクリックします。
OS は Ubuntu、CentOS、Oracle Linux、Windows Server 等がありますが、Windows Server は Always Free の対象ではありません。
「Always Free対象」と書かれている OS イメージを選択しましょう。
項目 | 値 |
---|---|
オペレーティング・システム | Canonical Ubuntu 20.04 Minimal [Always Free対象] |
「イメージの選択」ボタンをクリックして OS を選択します。
「シェイプの変更」ボタンをクリックします。
項目 | 値 |
---|---|
インスタンス・タイプ | 仮想マシン [Always Free対象] |
シェイプ・シリーズ | 専門とレガシー |
シェイプ名 | VM.Standard.E2.1.Micro [Always Free対象] |
インスタンスのシェイプは VM.Standard.E2.1.Micro (仮想マシン、1コアOCPU、1 GBメモリー、0.48 Gbpsネットワーク帯域幅) のみが Always Free の対象です。
「シェイプの選択」ボタンをクリックしてシェイプを選択します。
続けてネットワーキングの構成の編集をクリックします。
項目 | 値 |
---|---|
ネットワーク | Select existing virtual cloud network |
Virtual cloud network | Dolphin VCN |
サブネット | Select existing subnet |
Subnet | Public Subnet Dolphin VCN (リージョナル) |
ネットワーク・セキュリティ・グループを使用してトラフィックを制御 | ✓ |
ネットワーク・セキュリティ・グループ | WEB Network Security Group Dolphin VCN |
Public IP address | パブリックIPアドレスの割当て |
ここでパブリック IP アドレスの割当てを選択しないとパブリック IP アドレスが割り当てられず外部に公開できません。
この設定は後から変更できないようなので注意してください。
続けて SSH 公開鍵ファイルを追加します。
先程作成した公開鍵(拡張子 .pub のファイル)を SSH キー・ファイルに設定します。
項目 | 値 |
---|---|
SSHキー・ファイルの選択 | ✓ |
SSHキー | ~/.ssh/id_rsa.pub |
Configure boot volume で次の値を入力します。
項目 | 値 |
---|---|
カスタム・ブート・ボリューム・サイズを指定します | ✓ |
ブート・ボリューム・サイズ(GB) | 50 |
転送中暗号化の使用 | 未チェック |
自分が管理するキーでこのボリュームを暗号化 | 未チェック |
「拡張オプションの表示」をクリックして隠れている項目を表示し、「ネットワーキング」をクリックし次の値を入力します。
項目 | 値 |
---|---|
ホスト名 | dolphin |
この設定により内部 FQDN がdolphin.publicsubnet.dolphinvcn.oraclevcn.com
となります。
入力したら「作成」ボタンをクリックして WEB サーバーのインスタンスを作成します。
DB サーバーのインスタンスの作成
続けて DB サーバーのインスタンスを作成します。
WEB サーバーのインスタンスの作成と同じようにして DB サーバーのインスタンスの値を設定していきます。
項目 | 値 |
---|---|
インスタンスの命名 | Dolphin DB |
コンパートメントに作成 | username (ルート) |
可用性ドメイン | AD 1 [Always Free対象] |
Choose a fault domain for this instance | 未チェック |
オペレーティング・システム | Canonical Ubuntu 20.04 Minimal [Always Free対象] |
インスタンス・タイプ | 仮想マシン [Always Free対象] |
シェイプ・シリーズ | 専門とレガシー |
シェイプ名 | VM.Standard.E2.1.Micro [Always Free対象] |
ネットワーク | Select existing virtual cloud network |
Virtual cloud network | Dolphin VCN |
サブネット | Select existing subnet |
Subnet | Private Subnet Dolphin VCN (リージョナル) |
ネットワーク・セキュリティ・グループを使用してトラフィックを制御 | ✓ |
ネットワーク・セキュリティ・グループ | DB Network Security Group Dolphin VCN |
Public IP address | パブリックIPアドレスを割り当てないでください |
SSHキー・ファイルの選択 | ✓ |
SSHキー | ~/.ssh/id_rsa.pub |
カスタム・ブート・ボリューム・サイズを指定します | ✓ |
ブート・ボリューム・サイズ(GB) | 50 |
転送中暗号化の使用 | 未チェック |
自分が管理するキーでこのボリュームを暗号化 | 未チェック |
ホスト名 | dolphin-db |
入力したら「作成」ボタンをクリックして DB サーバーのインスタンスを作成します。
WEB サーバーのインスタンスに SSH 接続
WEB サーバーのインスタンスでは「パブリックIPアドレスの割当て」をしているので外部に公開されています。
左上の三本線メニューをクリックして「コンピュート > インスタンス」をクリックして表示されるインスタンス一覧から「Dolphin」インスタンスをクリックしてインスタンスの詳細を表示します。
インスタンス・アクセス情報の下にパブリック IP アドレスが記載されています。
後で使用しますので値を控えておいてください。
作成されたインスタンスではroot
での SSH 接続は無効にされていて、Oracle提供のイメージ#Linuxイメージの詳細の「ユーザー」に書かれているように Oracle Linux または CentOS の場合はopc
、Ubuntu の場合はubuntu
ユーザーで SSH 接続できるようになっています。
ターミナルから WEB サーバーのインスタンスに SSH 接続を行なうため、次のコマンドを入力してください。
Oracle Linux または CentOS の場合
$ ssh opc@パブリックIPアドレス -i ~/.ssh/id_rsa
Ubuntu の場合
$ ssh ubuntu@パブリックIPアドレス -i ~/.ssh/id_rsa
接続が確認できたら一旦exit
で切断してください。
毎回このコマンドを打つ代わりに、.ssh/configファイルでSSH接続を管理する等を参考にパブリック IP アドレスや秘密鍵のパスを設定ファイルに記述します。
Host dolphin
Hostname パブリックIPアドレス
User opc または ubuntu
Port 22
IdentityFile ~/.ssh/id_rsa
これにより、次のコマンドで SSH 接続できるようになります。
$ ssh dolphin
余談ですが、SSH のポートは仮想クラウド・ネットワークのセキュリティ・リストの「Default Security List for Dolphin VCN」によって許可されています。
SSH 接続のポート番号を変更したい場合は、iptables
やfirewalld
で該当ポートを開けた上で、セキュリティ・リストの「Default Security List for Dolphin VCN」でも該当ポートを許可してください。
DB サーバーのインスタンスに SSH 接続
DB サーバーのインスタンスはプライベート・サブネットにあるためパブリック IP アドレスは割り当てられていません。
そのため DB サーバーのインスタンスに SSH 接続するためには先に WEB サーバーのインスタンスに SSH 接続し、そこから DB サーバーのインスタンスに SSH 接続するというように多段 SSH 接続をする必要があります。
DB サーバーのインスタンスにはプライベート IP アドレスまたは内部 FQDN で接続します。
DB サーバーのインスタンスのプライベート IP アドレスと内部 FQDN は「Dolphin DB」インスタンスの詳細に表示されています。
プライベート IP アドレスまたは内部 FQDN は後で使用しますので値を控えておいてください。
多段 SSH 接続をワンライナーで実行する方法があるのでProxyCommandを使って踏み台(Bastion)経由で直接ssh/scpする等を参考にして設定ファイルに記述します。
.ssh/config
ファイルの最後の行に追加してください。
Host dolphin-db
HostName プライベートIPアドレス または 内部FQDN
User opc または ubuntu
Port 22
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh %r@dolphin -W %h:%p
次のコマンドで SSH 接続できるようになります。
$ ssh dolphin-db
NAT インスタンスの設定
[2021/6/22 この項を追記]
プライベート・サブネット内のインスタンスはインターネットに公開されないのですが、このままではインターネットに接続ができないためインスタンスの構築に必要なソフトウェアのダウンロードもできません。
内部からインターネットに接続できるようにするために NAT ゲートウェイが使用できればよいのですが、Always Free では作成できないようですので WEB サーバーのインスタンスを NAT インスタンスとして設定します。
参考 PDF: NATインスタンスの構成 - Oracle Help Center
Oracle Cloud Infrastructure コンソール の左上の三本線メニューをクリックして「コンピュート > インスタンス」をクリックして表示されるインスタンス一覧から「Dolphin」インスタンスをクリックしてインスタンスの詳細を表示します。
左下に表示されているリソース一覧から「アタッチされたVNIC」をクリックします。
表示された アタッチされたVNIC の右端の…にマウスカーソルを合わせてメニューを表示し、「VNICの編集」をクリックします。
「ソース/宛先チェックのスキップ」にチェックマークを入れて「VNICの更新」をクリックします。
先の参考 PDF によると、
注意: このステップは重要です。実行しない場合、デフォルトで有効化されているセキュリティ機能が原因で、その他のインスタンスはNATゲートウェイを介してトラフィックを送信できません。
ソース/宛先チェックがある状態でVNICにルート・ターゲットの構成を試行すると、エラー・メッセージが表示されます。
とのことです。
次に、プライベート・サブネット内から外部への通信をパブリック・サブネット内の Dolphin インスタンスにルーティングするように設定します。
再度「Dolphin」インスタンスの詳細を表示します。
プライマリVNICの下にプライベート IP アドレスが記載されていますので値を控えておいてください。
次に、左上の三本線メニューをクリックして「ネットワーキング > 仮想クラウド・ネットワーク」をクリックして表示される仮想クラウド・ネットワーク一覧から「Dolphin VCN」をクリックして仮想クラウド・ネットワークの詳細を表示します。
左下に表示されているリソース一覧から「ルート表」をクリックし、表示された画面の「Private Subnet Route Table Dolphin VCN」をクリックし、表示された画面の「ルート・ルールの追加」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
プロトコルのバージョン | IPV4 |
ターゲット・タイプ | プライベートIP |
宛先タイプ | CIDRブロック |
宛先CIDRブロック | 0.0.0.0/0 |
ターゲット選択 | 控えておいた Dolphin インスタンスのプライベート IP アドレス |
入力したら「ルート・ルールの追加」ボタンをクリックします。
これでプライベート・サブネット内から外部への通信が Dolphin インスタンスにルーティングされるようになりました。
ですが、このままでは Dolphin インスタンスのファイアウォールによってプライベート・サブネットからの通信が拒否されてしまうため、転送の許可と NAT の設定をします。
「Dolphin」インスタンスに SSH 接続します。
$ ssh dolphin
NAT のためのパケット転送を有効にします。
$ sudo sysctl -w net.ipv4.ip_forward=1
ただ、これは一時的な設定で、インスタンスを再起動すると設定が元に戻ってしまいます。
再起動しても有効にするための設定ファイルを作成します。
$ sudo sh -c 'echo net.ipv4.ip_forward = 1 > /etc/sysctl.d/98-ip-forward.conf'
続けてファイアウォールの設定をしますが、先にネットワークインターフェイス名を取得します。
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 01:23:45:67:89:ab brd ff:ff:ff:ff:ff:ff
上記のコマンドを実行し、lo ではない方の名前を控えておきます。
この例では enp0s3 です。
次にファイアウォール設定ファイルのバックアップを取ってから設定を変更します。
2 ヶ所ある enp0s3 の部分は環境に合わせて変更してください。
$ sudo cp /etc/iptables/rules.v4 /etc/iptables/rules.v4.bak
$ sudo sed -i "/^\*filter$/i*nat" /etc/iptables/rules.v4
$ sudo sed -i "/^\*filter$/i:PREROUTING ACCEPT [0:0]" /etc/iptables/rules.v4
$ sudo sed -i "/^\*filter$/i:INPUT ACCEPT [0:0]" /etc/iptables/rules.v4
$ sudo sed -i "/^\*filter$/i:OUTPUT ACCEPT [0:0]" /etc/iptables/rules.v4
$ sudo sed -i "/^\*filter$/i:POSTROUTING ACCEPT [0:0]" /etc/iptables/rules.v4
$ sudo sed -i "/^\*filter$/i-A POSTROUTING -o enp0s3 -j MASQUERADE" /etc/iptables/rules.v4
$ sudo sed -i "/^\*filter$/iCOMMIT" /etc/iptables/rules.v4
$ sudo sed -i "/^-A FORWARD /i-A FORWARD -i enp0s3 -j ACCEPT" /etc/iptables/rules.v4
変更したファイアウォールを反映させます。
$ sudo netfilter-persistent reload
これで NAT インスタンスの設定が完了しました。
「Dolphin DB」インスタンスからインターネット接続できるかどうか確認します。
「Dolphin」インスタンスからexit
で切断した後、「Dolphin DB」インスタンスに SSH 接続します。
$ ssh dolphin-db
試しに適当なサイトにアクセスしてみます。
$ curl -I https://qiita.com/
HTTP/2 200 のような表示が返れば成功です。
プライベート・サブネット内のインスタンスからインターネットに接続できるようになりました。
オブジェクト・ストレージ
バケットの作成
Dolphin や Mastodon では画像や動画等のメディアファイルを Amazon S3 に保存できるようになっています。
Oracle Cloud のオブジェクト・ストレージは Amazon S3 と互換性のある API が提供されているため、Amazon S3 の代わりに Oracle Cloud のオブジェクト・ストレージを使用することができます。
オブジェクト・ストレージを作成するため、左上の三本線メニューをクリックして「オブジェクト・ストレージ > オブジェクト・ストレージ」をクリックします。
表示されたページの「バケットの作成」ボタンをクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
バケット名 | dolphin |
デフォルト・ストレージ層 | 標準 |
オブジェクト・イベント | 未チェック |
オブジェクト・バージョニング | 未チェック |
暗号化 | ORACLE管理キーを使用した暗号化 |
作成されたオブジェクト・ストレージは可視性がプライベートになっていますが、Dolphin や Mastodon 等ではメディアの閲覧を制限しないようにする必要があるため、可視性をパブリックに変更します。
「dolphin」バケットの右端の…にマウスカーソルを合わせてメニューを表示し、「可視性の編集」をクリックします。
表示された入力画面に次のように入力します。
項目 | 値 |
---|---|
可視性 | パブリック |
ユーザーにこのバケットのオブジェクトのリスト表示を許可 | 未チェック |
アクセス・キーと秘密キーの取得
Amazon S3 として使用するためのアクセス・キーと秘密キーを取得します。
左上の三本線メニューをクリックして「アイデンティティ > ユーザー」をクリックします。
ユーザーの一覧から「電子メール」が書かれている方のユーザーの名前をクリックします。
「秘密キーを生成」ボタンをクリックして、入力画面に次のように入力します。
項目 | 値 |
---|---|
名前 | Dolphin Customer Secret Key |
生成された秘密キーが表示されているので値を控えておいてください。
この秘密キーは再度表示させることができないので注意してください。
顧客秘密キーの一覧で名前が「Dolphin Customer Secret Key」のもののアクセス・キーにカーソルを合わせるとアクセス・キーが表示されます。
エンドポイントの確認
Amazon S3 として使用するためのエンドポイントは、次のように構成されます。
<ネームスペース>.compat.objectstorage.<リージョン>.oraclecloud.com
ネームスペースは、「オブジェクト・ストレージ > オブジェクト・ストレージ」をクリックし、表示された画面の「dolphin」をクリックして表示されるバケットの詳細ページに記述されています。
リージョンは、「コンピュート > インスタンス」をクリックし、表示された画面の「Dolphin」をクリックして表示されるインスタンスの詳細ページに記述されています。
まとめ
分散 SNS の Dolphin をインストールするための VM インスタンスの作成と SSH での接続、オブジェクト・ストレージの作成とアクセス・キーと秘密キーの取得、エンドポイントの確認を行ないました。
Dolphin のインストールに続きます。
Oracle Cloud Always Free で Dolphin サーバーを立てる