アップロードファイル管理 ================================================================================ .. only:: html .. contents:: 目次 :depth: 3 :local: Overview -------------------------------------------------------------------------------- 本ガイドラインでは、クラウドネイティブなアプリケーションにおけるアップロードファイルの管理方法について説明する。 .. note:: 本ガイドラインでは、クラウド環境を利用する場合の留意点のみを説明し、ファイルアップロードを行う機能そのものの実装方法については説明しない。 ファイルアップロードを行う機能の実装方法については |base_framework_name| Development Guideline `ファイルアップロード `_ を参照されたい。 仮アップロードファイルの保存 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ クラウド環境では、クラウドベンダーが提供する機能を利用してAPサーバインスタンスの動的なスケーリングが可能である。 柔軟なスケーリングを実現するため、仮アップロードファイルであってもAPサーバのローカルストレージには保存せず、クラウドベンダーが提供するストレージサービス上に保存することを推奨する。 .. figure:: ./imagesUploadFileManagement/UploadFileManagementOverview.png :alt: Screen image of file upload. :width: 100% 仮アップロードファイルであってもAPサーバインスタンスのローカルストレージに保存しない理由は以下のとおり。 * ファイルを保持しているAPサーバインスタンスがスケールインによって停止・削除された場合に、ファイルが破棄されてしまう。 * ユーザの操作を継続するために、ロードバランサのスティッキーセッション機能を利用して同一ユーザのリクエストを特定のAPサーバに振り分ける必要が有るため、ユーザの操作中にスケールインを行うことができない。 * スケールアウト後に操作中のユーザのリクエストを新規のサーバインスタンスに振り分ける事ができず、柔軟な負荷分散を行えない。 .. note:: 仮アップロードファイルに限らず、最終的なファイルの保存先についてもストレージサービスを利用することで、以下のメリットがある。 * システムの運用中であってもストレージサイズの拡張を自動的に行うことが出来る。 * ファイルを保存する物理的なストレージを分散させることでファイルI/Oが特定のストレージに集中することを防ぐ事ができるため、RDBなどに保存するよりも効率的な負荷分散を行うことが可能である。 具体的な利用方法についてはクラウドベンダーのリファレンスを参照されたい。 How to use -------------------------------------------------------------------------------- ストレージサービスの利用 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ クラウドベンダーが提供するストレージサービスを利用し、一時ファイルのアップロード先として利用する。 アプリケーションからの利用方法については、各クラウドサービスのリファレンスを参照されたい。 Amazon Web Service """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" クラウドベンダーとしてAWSを使用する場合、Spring Cloud for Amazon Web Services、AWS SDK for JavaおよびAmazon Simple Storage Serviceを使用してストレージサービスへのファイル保存を行う事ができる。 実装方法については :doc:`../../AWSCollaboration/FileManagement/UploadFileManagement` を参照。 .. raw:: latex \newpage