静的Webサイト・ホスティングのためのOCI Object StorageおよびOracle API Gatewayの設定
はじめに
If you have a web application you want to host on Oracle Cloud Infrastructure (OCI) and want to set up static website hosting, in this tutorial, we walk through configuring static hosting of a rich Ahead-of-Time (AOT) compiled JavaScript web application using OCI Object Storage and Oracle API Gateway. よりシンプルなアプリケーションや静的Webページのために、OCIプラットフォーム上のユーザーに信頼性の高いオンライン・エクスペリエンスを提供する場合でも、HTTPを介して静的ファイルを提供する場合でも、同じアプローチを適用できます。
目的
OCI Object StorageとOracle API Gatewayを活用して静的Webサイトをホストし、Oracle Cloud InfrastructureでWebコンテンツを効率的にデプロイおよび管理する方法を理解します。
前提条件
- Oracle Cloudテナンシへのアクセス。
- AOT準拠のアプリケーション(サポートされているフレームワークおよびライブラリは、Angular 2+、ReactJs、NestJs、VueJs、Ionicなど)。
タスク1: Oracle Object Storageバケットの作成
まず、OCIオブジェクト・ストレージに新しいバケットを作成します。このバケットは、静的Webサイトのホストに使用されます。

タスク2: バケット内の配布ファイルのアップロード
前のタスクで作成したバケットにアプリケーション配布ファイルをアップロードします。アプリケーション配布ファイルは、通常、アプリケーション・ディレクトリの/distフォルダにあり、Webpackビルドの出力です。

ヒント: oci-cliを使用してファイルをアップロードする場合は、
--content-type autoパラメータを指定して、Content-Typeが正しく設定されるようにしてください。
タスク3: 事前認証済- リクエストの作成
Oracle API Gatewayがインターネット経由で配布ファイルを提供できるようにするには、配布ファイルが格納されているオブジェクト・ストレージ・バケットに対して事前認証済リクエストPARを作成する必要があります。
これは、APIゲートウェイを構成するときに使用します。
タスク4: Oracle API Gatewayの作成
Oracle API Gatewayサービスでは、ネットワーク内からアクセス可能なプライベート・エンドポイントとともに、インターネット・トラフィックを受け入れる場合にパブリックIPアドレスを使用して公開できるAPIを公開できます。エンドポイントは、API検証、リクエストとレスポンスの変換、CORS、認証と認可、およびリクエスト制限をサポートします。詳細は、Oracle API Gatewayの概要を参照してください。
- 「OCIメニュー」、「開発者サービス」、「APIゲートウェイ」の順にナビゲートし、「作成」をクリックします。
ノート:このOracle API Gatewayをデプロイするには、Virtual Cloud Networkが必要です。VCNがまだ作成されていない場合は作成します。

タスク5: Oracle API Gatewayデプロイメントの設定
Oracle API Gatewayが正常に作成されたら、「デプロイメント」に移動し、新しいデプロイメントを作成します。
-
「Create from scratch」を選択し、「Path prefix」を「/」に設定します。これはURLのベース・パスになります。

-
ここにTLS、CORSなどを設定するか、「次へ」をクリックして次のステップに移動します。
-
「認証なし」を選択し、「次へ」をクリックします。静的Webサイトの認証を追加する必要はありません。

タスク6: ルートの追加
APIデプロイメント・ウィザードで、デプロイメントのベース・パスを拡張するルートを追加します。
-
パス・フィールドに/{req*}と入力します。

-
「メソッド」ドロップダウン・リストから「GET」を選択します。
-
「追加した複数バックエンドの編集」を選択します。

-
セレクタ・フィールドで「パス」を選択します。

-
「バックエンドの定義」をクリックします。
-
デフォルト・ルールを作成し、デフォルトとして「名前」、「一致タイプ」に「任意」と入力し、「デフォルトにする」チェック・ボックスを選択し、バックエンドを「HTTP」として選択し、index.htmlページのオブジェクト・ストレージURLを「URL」フィールドに入力して、「作成」をクリックします。

-
jsファイル・ルールを作成し、「名前」にjsルール、「一致タイプ」に「ワイルドカード」、「*.js」にワイルドカード式を入力し、「HTTP」としてバックエンドを選択し、オブジェクト・ストレージ・バケットURLを入力して、「URL」フィールドに${request.path[req]}ページを続けて「作成」をクリックします。URLは次のようになりますhttps://{namespace}.objectstorage.{region}.oci.customer-oci.com/n/{namespace}/b/{bucket-name}/o/${request.path[req]} -
「作成」をクリックします。

-
必要に応じて、css、html、txtおよびjsonファイルに対して同様のルールを作成します。

-
「次へ」をクリックし、Oracle API Gatewayの作成を完了して、更新されるまで待機します。
タスク7: テスト
デプロイメントURLを取得してWebブラウザに入力すると、アプリケーションが表示されます。
ノート:
アプリケーションがロードされない場合は、VCNのセキュリティ・リストまたはネットワーク・セキュリティ・グループがOracle API Gatewayへのトラフィックを許可しているかどうかを確認します。
アプリケーションがバックエンド定義に持つすべての異なるファイル・タイプを追加することを忘れないでください。
この手法を使用して設定できるのは、AOT (Ahead of Time)コンパイル済アプリケーションおよび静的Webサイトのみです。アプリケーションがネイティブJavascriptコードでコンパイルされていることを確認します。
確認
作成者 - Mayank Kakani (OCI Cloud Architect)
その他の学習リソース
docs.oracle.com/learnの他のラボを調べるか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、Oracle Learning Explorerになるには、education.oracle.com/learning-explorerにアクセスしてください。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Set Up OCI Object Storage and Oracle API Gateway for Static Website Hosting
F87299-03