Flask Webサーバーを使用したAutonomous Databaseのデプロイ
プライベート・サブネットのOracle Cloud Infrastructureで完全管理型の自律型データベースへのプライベート・アクセスを有効にします。これにより、アクセスのためにプライベートIPが自律型データベースに割り当てられます。
アーキテクチャ
このアーキテクチャは、Oracle Cloud Infrastructureでプロビジョニングされたプライベート・エンドポイントを使用して自律型データベースに接続された、パブリックに面したFlask Webサーバーを示しています。

図autonomous-db-private-endpoint.pngの説明
autonomous-db-private-endpoint-oracle.zip
アーキテクチャには、次のコンポーネントがあります。
- プライベート・エンドポイントを持つ自律型データベース
このアーキテクチャでは、プライベート・エンドポイントを持つプライベート・サブネットにプロビジョニングされた自律型データベース(Oracle Autonomous Transaction ProcessingデータベースまたはOracle Autonomous Data Warehouse)を使用します。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。地域は他の地域から独立しており、広大な距離で(国または大陸間で)分離できます。
- 可用性ドメイン
可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。可用性ドメインは、電源や冷却などのインフラストラクチャや内部可用性ドメイン・ネットワークを共有しません。したがって、ある可用性ドメインで障害が発生しても、リージョン内の他の可用性ドメインに影響する可能性はほとんどありません。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定するカスタマイズ可能なソフトウェア定義ネットワークです。従来のデータ・センター・ネットワークと同様に、VCNを使用すると、ネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる複数の重複しないCIDRブロックを含めることができます。VCNは、リージョンまたは可用性ドメインにスコープ指定できるサブネットにセグメント化できます。各サブネットは、VCN内の他のサブネットと重複しない連続したアドレス範囲で構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックまたはプライベートにできます。
このアーキテクチャでは、Webサーバーはパブリック・サブネットにアタッチされ、自律型データベースはプライベート・サブネットにあります。
推奨事項
実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。開始点として次の推奨事項を使用します。
- コンピュート・シェイプ
このアーキテクチャでは、VM.Standard2.1シェイプを持つOracle Linux 7.7コンピュート・インスタンスをフラスコベースのサーバーに使用します。アプリケーションでより多くの処理能力、メモリーまたはネットワーク帯域幅が必要な場合は、より大きなシェイプを選択します。
- VCN
VCNを作成する場合、VCNのサブネットにアタッチする予定のリソースの数に基づいて、必要なCIDRブロックの数と各ブロックのサイズを決定します。標準のプライベートIPアドレス空間内にあるCIDRブロックを使用します。
VCNを作成した後、CIDRブロックを変更、追加および削除できます。
- 自律型データベース
このアーキテクチャでは、アプリケーションはリレーショナル・データを自律型データベースに格納します。最新バージョンのOracle Databaseを使用することをお薦めします。
注意事項
- Webサーバーのスケーラビリティ
コンピュート・インスタンス・プールおよび自動スケーリング機能を使用して、Flaskアプリケーションをスケーリングできます。
インスタンス・プールを使用すると、同じリージョン内で、同じ構成に基づいて複数のコンピュート・インスタンスをプロビジョニングおよび作成できます。
自動スケーリングでは、CPU使用率などのパフォーマンス・メトリックに基づいて、インスタンス・プール内のコンピュート・インスタンスの数を自動的に調整できます。自動スケーリングは、高い需要期間中のユーザーに一貫したパフォーマンスを提供し、低い需要期間中のコスト削減に役立ちます。
- 自律型データベースのスケーラビリティ
データベースのCPUコアのベース数は、いつでも手動でスケール・アップまたはスケール・ダウンできます。自動スケーリング機能を使用すると、データベースでCPUコアの現在のベース数の最大3倍をいつでも使用できます。要求が増えると、自動スケーリングによって使用中のコア数が自動的に増加します。可用性やパフォーマンスに影響を与えることなく、いつでもデータベースの記憶域容量をスケーリングできます。
- アプリケーションの可用性
フォルト・ドメインは、可用性ドメイン内で最高のリジリエンシを提供します。より高い可用性が必要な場合は、複数の可用性ドメインまたは複数のリージョンの使用を検討してください。
- 自律型データベース・バックアップ
自律型データベースは自動的にバックアップされ、バックアップは60日間保存されます。データベースは、保存期間中の任意の時点にリストアおよびリカバリできます。
手動バックアップを作成して、自動バックアップを補完することもできます。手動バックアップは、Oracle Cloud Infrastructure Object Storageで作成したバケットに格納され、バックアップは60日間保持されます。
- コンピュート・バックアップ
Oracle Cloud Infrastructure Block Volumesサービスを使用すると、ブロック・ボリューム上のデータのPoint - in - Timeバックアップを作成できます。その後、バックアップを新しいボリュームにすぐにまたは後でリストアできます。
このサービスを使用して、アプリケーションの中断や停止時間なしでブート・ボリュームのPoint - in - Timeのクラッシュ一貫性バックアップを作成することもできます。ブート・ボリューム・バックアップ機能は、ブロック・ボリューム・バックアップ機能と同じです。
- SECURITY
- Policies
ポリシーを使用して、Oracle Cloud Infrastructureリソースにアクセスできるユーザーとそのユーザーが実行できる操作を制限します。
- ネットワーク・セキュリティ
ネットワーキング・サービスは、セキュリティ・ルールを使用してトラフィックをパケット・レベルで制御する2つの仮想ファイアウォール機能(セキュリティ・リストおよびネットワーク・セキュリティ・グループ(NSG))を提供します。
NSGは、VCN内で選択したVNICのセットにのみ適用されるイングレス・セキュリティ・ルールおよびエグレス・セキュリティ・ルールのセットで構成されます。たとえば、NSGには、複数層アプリケーションのWeb層にあるすべてのコンピュート・インスタンスのVNICを含めることができます。
NSGセキュリティ・ルールは、セキュリティ・リスト・ルールと同様に機能します。ただし、NSGセキュリティ・ルールのソースまたは宛先では、CIDRブロックのかわりにNSGを指定できます。そのため、同じVCN内の複数のNSG間のトラフィックまたは単一のNSG内のトラフィックを制御するセキュリティ・ルールを簡単に記述できます。
Oracle Cloud Infrastructureで自律型データベースをプロビジョニングする場合、1つ以上のNSGを指定できます。また、1つ以上のNSGを使用するように既存のデータベースを更新することもできます。
- Policies
デプロイ
この参照アーキテクチャのTerraformコードは、GitHubで使用できます。シングルクリックでコードをOracle Cloud Infrastructure Resource Managerにプルし、スタックを作成してデプロイできます。または、Terraform CLIを使用して、GitHubからコンピュータにコードをダウンロードし、コードをカスタマイズし、アーキテクチャをデプロイすることもできます。
- Oracle Cloud Infrastructure Resource Managerを使用したデプロイ:
をクリックします。
まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。
- 条件をレビューして受け入れます。
- スタックをデプロイするリージョンを選択します。
- 画面に表示されるプロンプトと指示に従ってスタックを作成します。
- スタックの作成後、「Terraformアクション」をクリックし、「プラン」を選択します。
- ジョブが完了するまで待機し、計画を確認します。
変更を加えるには、「Stack Details」ページに戻り、「Edit Stack」をクリックして、必要な変更を行います。その後、プラン処理を再度実行します。
- これ以上変更が必要ない場合は、「Stack Details」ページに戻り、「Terraform Actions」をクリックして「Apply」を選択します。
- Terraform CLIを使用してデプロイします。
- GitHubに移動します。
- コードをローカル・コンピュータにダウンロードまたはクローニングします。
- READMEの手順に従います。