ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を完了するときは、これらの値をクラウド環境に固有の値に置き換えます。
静的Webサイト・ホスティングのためのOCI Object StorageおよびOracle API Gatewayの設定
イントロダクション
Oracle Cloud Infrastructure (OCI)でホストするWebアプリケーションがあり、静的Webサイト・ホスティングを設定する場合は、このチュートリアルでは、OCI Object StorageおよびOracle API Gatewayを使用して、リッチなAhead-of-Time (AOT)コンパイル済JavaScript Webアプリケーションの静的ホスティングの構成について説明します。同じアプローチを、よりシンプルなアプリケーションや静的Webページのいずれの場合でも、HTTPを介して静的ファイルにサービスを提供したいシナリオにも適用でき、OCIプラットフォーム上のユーザーに信頼性の高いオンライン・エクスペリエンスを低コストで提供できます。
目的
OCI Object StorageとOracle API Gatewayを活用して静的Webサイトをホストし、Oracle Cloud InfrastructureでWebコンテンツを効率的にデプロイおよび管理する方法を理解します。
前提条件
- Oracle Cloudテナンシへのアクセス。
- AOT準拠のアプリケーション(サポートされているフレームワークおよびライブラリは、Angular 2+、ReactJs、NestJs、VueJs、Ionicなど)
タスク1: Oracleオブジェクト・ストレージ・バケットの作成
まず、OCI Object Storageで新しいバケットを作成します。このバケットは、静的Webサイトのホストに使用されます。
タスク2: バケットへの配布ファイルのアップロード
前のタスクで作成したバケットにアプリケーション配布ファイルをアップロードします。アプリケーション配布ファイルは通常、アプリケーション・ディレクトリの/dist
フォルダにあり、Webpackビルドの出力です。
タスク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が正常に作成されたら、「デプロイメント」に移動して新しいデプロイメントを作成します。
-
「最初から作成」を選択し、パス接頭辞を「/」に設定します。これがURLのベース・パスになります。
-
ここにTLS、CORSなどを設定するか、「次」をクリックして次のステップに移動します。
-
「認証なし」を選択して、「次へ」をクリックします。静的Webサイトに認証を追加する必要はありません。
タスク6: ルートの追加
APIデプロイメント・ウィザードで、デプロイメントのベース・パスを拡張するルートを追加します。
-
「パス」フィールドに/{req*}と入力します。
-
「メソッド」ドロップダウン・リストから「GET」を選択します。
-
「追加した複数バックエンドの編集」を選択します。
-
「セレクタ」フィールドで「パス」を選択します。
-
「バックエンドの定義」をクリックします。
-
デフォルト・ルールを作成し、「名前」をデフォルトとして、「一致タイプ」を「いずれか」として入力し、「デフォルトにする」チェック・ボックスを選択し、「HTTP」としてバックエンドを選択し、「URL」フィールドにindex.htmlページのオブジェクト・ストレージURLを入力して、「作成」をクリックします。
-
js
ファイル・ルールを作成し、jsルールとして「名前」、ワイルドカード式として「一致タイプ」、「ワイルドカード」として「*.js」を入力し、バックエンドを「HTTP」として選択し、オブジェクト・ストレージ・バケットURLの後に「{request.path[request]}」ページを「URL」フィールドに入力して「作成」をクリックします。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ブラウザに入力すると、アプリケーションが表示されます。
ノート:
アプリケーションがロードされない場合は、Oracle API Gatewayがオブジェクト・ストレージ・バケットにアクセスするための適切なポリシーを追加したかどうかを確認します。
アプリケーションがバックエンド定義に持つ様々なファイル・タイプをすべて追加することを忘れないでください。
この手法を使用して設定できるのは、AOT (Ahead of Time)コンパイル済アプリケーションおよび静的Webサイトのみです。アプリケーションがネイティブJavascriptコードでコンパイルされていることを確認します。
承認
著者 - Mayank Kakani(OCI Cloud Architect)
その他の学習リソース
docs.oracle.com/learnの他のラボをご覧いただくか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Set Up OCI Object Storage and Oracle API Gateway for Static Website Hosting
F87240-02
October 2023
Copyright © 2023, Oracle and/or its affiliates.