8.2. コンピュートノードのインストール

8.2.1. Compute サービスのパッケージのインストール

OpenStack Compute サービスには以下のパッケージが必要です。
openstack-nova-api
OpenStack Compute API サービスを提供します。環境内で少なくとも 1 台のノード API サービスのインスタンスをホストしている必要があります。これは、Identity サービスのエンドポイントの定義によって、Compute サービスにポイントされているノードである必要があります。
openstack-nova-compute
OpenStack Compute サービスを提供します。
openstack-nova-conductor
Compute コンダクターサービスを提供します。コンダクターは、コンピュートノードによって作成されるデータベース要求を処理し、各コンピュートノードがデータベースに直接アクセスする必要がないようにします。各環境で少なくとも 1 台のノードが Compute のコンダクターとして機能する必要があります。
openstack-nova-scheduler
Compute のスケジューラーサービスを提供します。スケジューラーは利用可能な Compute リソース全体にわたり、API に対する要求のスケジューリングを処理します。各環境で、少なくとも 1 台のノードが Compute スケジューラーとして稼働する必要があります。
python-cinderclient
Block Storage サービスによって管理されるストレージにアクセスするためのクライアントユーティリティーを提供します。インスタンスに Block Storage ボリュームを接続しない場合や、Block Storage サービス以外のサービスを使用して Block Storage ボリュームを管理する場合には、このパッケージは必要ありません。
パッケージをインストールします。
# yum install -y openstack-nova-api openstack-nova-compute \
   openstack-nova-conductor openstack-nova-scheduler \
   python-cinderclient

注記

上記の例では、すべての Compute サービスのパッケージが単一のノードにインストールされます。Red Hat は、実稼働環境にデプロイする場合に、API、コンダクター、スケジューラーのサービスを 1 つのコントローラーノードにインストールするか、それぞれを別々のノードにインストールすることを推奨します。Compute サービス自体は、仮想マシンインスタンスをホストする各ノードにインストールする必要があります。

8.2.2. Compute サービスのデータベースの作成

Compute サービスが使用するデータベースとデータベースユーザーを作成します。以下の手順の全ステップは、データベースサーバーに root ユーザーとしてログインして実行する必要があります。

手順8.3 Compute サービスのデータベースの作成

  1. データベースサービスに接続します。
    # mysql -u root -p
  2. nova データベースを作成します。
    mysql> CREATE DATABASE nova;
  3. nova データベースユーザーを作成し、nova データベースへのユーザーアクセスを許可します。
    mysql> GRANT ALL ON nova.* TO 'nova'@'%' IDENTIFIED BY 'PASSWORD';
    mysql> GRANT ALL ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'PASSWORD';
    PASSWORD は、このユーザーとしてデータベースサーバーとの認証を行う際に使用するセキュアなパスワードに置き換えます。
  4. データベースの特権をフラッシュして、設定が即時に反映されるようにします。
    mysql> FLUSH PRIVILEGES;
  5. mysql クライアントを終了します。
    mysql> quit

8.2.3. Compute サービスのデータベース接続の設定

Compute サービスによって使用されるデータベース接続文字列は、/etc/nova/nova.conf ファイルで定義されます。サービスを起動する前に、有効なデータベースサーバーをポイントするように更新しておく必要があります。
データベース接続文字列は、コンダクターサービス (openstack-nova-conductor) をホストするノードのみで設定する必要があります。コンピュートノードがメッセージングインフラストラクチャーを使用してコンダクターに通信すると、コンダクターはそれに応えてデータベースとの通信をオーケストレートするので、個別のコンピュートノードは、データベースに直接アクセスする必要がありません。どのようなコンピュート環境においても、コンダクターサービスのインスタンスが少なくとも 1 つ必要です。
以下の手順に記載するステップはすべて、Compute コンダクターサービスをホストするサーバーに root ユーザーとしてログインして実行する必要があります。

手順8.4 Compute サービスの SQL データベース接続の設定

  • sql_connection 設定キーの値を設定します。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT sql_connection mysql://USER:PASS@IP/DB
    以下の値を置き換えてください。
    • USER は、Compute サービスのデータベースのユーザー名 (通常は nova) に置き換えます。
    • PASS は選択したデータベースユーザーのパスワードに置き換えます。
    • IP は、Identity サーバーの IP アドレスまたはホスト名に置き換えます。
    • DB は、Compute サービスのデータベースの名前 (通常は nova) に置き換えます。

重要

この接続設定キーに指定する IP アドレスまたはホスト名は、Compute サービスのデータベースの作成時に Compute サービスのデータベースユーザーがアクセスを許可された IP アドレスまたはホスト名と一致する必要があります。また、データベースがローカルでホストされ、Compute サービスのデータベースの作成時に「localhost」へのアクセス権を付与した場合には、「localost」と入力する必要があります。

8.2.4. Compute サービス用のアイデンティティーレコードの作成

Compute サービスで必要な Identity サービスを作成して設定します。これらのエントリーは、Compute サービスによって提供されるボリューム機能を検索してアクセスを試みる他の OpenStack サービスを補助します。
以下の手順では、管理ユーザーと services テナントが作成済みであることを前提としています。詳しい説明は、以下のリンクを参照してください。
以下の手順は、Identity サービスのサーバーまたは keystonerc_admin ファイルをコピーして keystone コマンドラインユーティリティーをインストールした任意のマシンで実行してください。

手順8.5 Compute サービス用のアイデンティティーレコードの作成

  1. Keystone に管理ユーザーとしてアクセスするためのシェルを設定します。
    # source ~/keystonerc_admin
  2. compute ユーザーを作成します。
    [(keystone_admin)]# openstack user create --password PASSWORD compute
    +----------+----------------------------------+
    | Field    | Value                            |
    +----------+----------------------------------+
    | email    | None                             |
    | enabled  | True                             |
    | id       | 421665cdfaa24f93b4e904c81ff702ad |
    | name     | compute                          |
    | username | compute                          |
    +----------+----------------------------------+
    PASSWORD は、Compute サービスが Identity サービスとの認証を行う際に使用するセキュアなパスワードに置き換えます。
  3. services テナントのコンテキスト内で、compute ユーザーと admin ロールを関連付けます。
    [(keystone_admin)]# openstack role add --project services --user compute admin
  4. compute サービスエントリーを作成します。
    [(keystone_admin)]# openstack service create --name compute \
       --description "OpenStack Compute Service" \
       compute
  5. compute エンドポイントエントリーを作成します。
    [(keystone_admin)]# openstack endpoint create \
       --publicurl "http://IP:8774/v2/%(tenant_id)s" \
       --adminurl "http://IP:8774/v2/%(tenant_id)s" \
       --internalurl "http://IP:8774/v2/%(tenant_id)s" \
       --region RegionOne \
       compute
    IP は、Compute API サービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。

8.2.5. Compute サービスの認証の設定

Compute サービスが認証に Identity サービスを使用するように設定します。以下の手順に記載するステップはすべて、Compute サービスをホストする各システムに root ユーザーとしてログインして実行する必要があります。

手順8.6 Compute サービスが Identity サービスを使用して認証を行うための設定

  1. 認証ストラテジーを keystone に設定します。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT auth_strategy keystone
  2. Compute サービスが使用する必要のある Identity サービスのホストを設定します。
    # openstack-config --set /etc/nova/api-paste.ini \
       filter:authtoken auth_host IP
    IP は、Identity サービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。
  3. Compute サービスが正しいテナントとして認証を行うように設定します。
    # openstack-config --set /etc/nova/api-paste.ini \
       filter:authtoken admin_tenant_name services
    services は、Compute サービスを使用するために作成したテナントの名前に置き換えます。本ガイドの例では、services を使用しています。
  4. Compute サービスが compute 管理ユーザーアカウントを使用して認証を行うように設定します。
    # openstack-config --set /etc/nova/api-paste.ini \
       filter:authtoken admin_user compute
  5. Compute サービスが正しい compute 管理ユーザーアカウントのパスワードを使用するように設定します。
    # openstack-config --set /etc/nova/api-paste.ini \
       filter:authtoken admin_password PASSWORD
    PASSWORD は、compute ユーザーの作成時に設定したパスワードに置き換えます。

8.2.6. Compute サービスのトラフィックを許可するためのファイアウォール設定

仮想マシンコンソールへの接続は、直接またはプロキシー経由に関わらず、5900 から 5999 までのポートで受信されます。Compute API サービスへは、ポート 8774 経由で接続されます。サービスノードのファイアウォールは、これらのポートのネットワークトラフィックを許可するように設定する必要があります。以下の手順に記載するステップはすべて、コンピュートノードに root ユーザーとしてログインして実行する必要があります。

手順8.7 Copute サービスのトラフィックを許可するためのファイアウォール設定

  1. テキストエディターで /etc/sysconfig/iptables ファイルを開きます。
  2. ファイルに以下の行を追記して、5900 から 5999 までの範囲内のポートで TCP トラフィックを許可する INPUT ルールを追加します。新規ルールは、トラフィックを REJECT する INPUT ルールの前に追加する必要があります。
    -A INPUT -p tcp -m multiport --dports 5900:5999 -j ACCEPT
  3. このファイルに、ポート 8774 で TCP トラフィックを許可する INPUT ルールを追加します。新規ルールは、トラフィックを REJECT する INPUT ルールよりも前に記載する必要があります。
    -A INPUT -p tcp -m multiport --dports 8774 -j ACCEPT
  4. /etc/sysconfig/iptables ファイルへの変更を保存します。
  5. iptables サービスを再起動して、変更を有効にします。
    # systemctl restart iptables.service

8.2.7. Compute サービスが SSL を使用するための設定

nova.conf ファイルで、以下のオプションを使用して SSL を設定します。

表8.1 Compute の SSL オプション

設定オプション説明
enabled_ssl_apis
SSL を有効にする API の一覧
ssl_ca_file
クライアントの接続を検証するのに使用する CA 証明書ファイル
ssl_cert_file
API サーバーの SSL 証明書
ssl_key_file
API サーバーの SSL 秘密鍵
tcp_keepidle
サーバーソケットごとに設定する TCP_KEEPIDLE 値 (秒単位)。デフォルトでは 600

8.2.8. Compute サービスのための RabbitMQ メッセージブローカーの設定

RabbitMQ はデフォルト (かつ推奨の) メッセージブローカーです。RabbitMQ メッセージングサービスは、rabbitmq-server パッケージにより提供されます。以下の手順に記載する全ステップは、コンピュートコントローラーサービスおよびコンピュートノードをホストするシステムに root ユーザーとしてログインして実行する必要があります。

手順8.8 Compute サービスが RabbitMQ メッセージブローカーを使用するための設定

  1. RPC バックエンドとして RabbitMQ を設定します。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT rpc_backend rabbit
  2. Compute サービスが RabbitMQ ホストに接続するように設定します。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT rabbit_host RABBITMQ_HOST
    RABBITMQ_HOST は、メッセージブローカーの IP アドレスまたはホスト名に置き換えます。
  3. メッセージブローカーのポートを 5672 に設定します。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT rabbit_port 5672
  4. RabbitMQ の設定時に Compute サービス用に作成した RabbitMQ ユーザー名とパスワードを設定します。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT rabbit_userid nova
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT rabbit_password NOVA_PASS
    nova および NOVA_PASS は、Compute サービス用に作成したRabbitMQ ユーザー名とパスワードに置き換えます。
  5. RabbitMQ の起動時に、nova ユーザーに全リソースに対するパーミッションが付与されます。このアクセスは、特別に仮想ホスト / を介して行われます。Compute サービスがこの仮想ホストに接続されるように設定します。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT rabbit_virtual_host /

8.2.9. Compute サービスとメッセージブローカーとの間の SSL 通信の有効化

メッセージブローカーで SSL を有効化した場合は、Compute サービスも相応に設定する必要があります。以下の手順では、エクスポートしたクライアントの証明書とキーファイルが必要です。これらのファイルのエクスポートの方法に関する説明は、「クライアント用 SSL 証明書のエクスポート」を参照してください。

手順8.9 Compute サービスと RabbitMQ メッセージブローカーとの間の SSL 通信の有効化

  1. メッセージブローカーとの SSL 通信を有効化します。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT rabbit_use_ssl True
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT kombu_ssl_certfile /path/to/client.crt
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT kombu_ssl_keyfile /path/to/clientkeyfile.key
    以下の値を置き換えてください。
    • /path/to/client.crt はエクスポートされたクライアント証明書の絶対パスに置き換えます。
    • /path/to/clientkeyfile.key はエクスポートされたキーファイルの絶対パスに置き換えます。
  2. 証明書がサードパーティーの認証局 (CA) によって署名されている場合には、次のコマンドを実行する必要もあります。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT kombu_ssl_ca_certs /path/to/ca.crt
    /path/to/ca.crt は、サードパーティー CA によって提供された CA ファイルの絶対パスに置き換えます (詳細は 「RabbitMQ メッセージブローカーでの SSL の有効化」 を参照)。

8.2.10. リソースのオーバーコミットの設定

OpenStack は、コンピュートノード上における CPU およびメモリーリソースのオーバーコミットをサポートしています。オーバーコミットとは、物理リソースを上回る量の仮想 CPU やメモリーを割り当てるテクニックです。

重要

オーバーコミットにより、実行できるインスタンスの数が増えますが、インスタンスのパフォーマンスは低下します。
CPU およびメモリーのオーバーコミット設定は比率で表示されます。OpenStack は、デフォルトで以下のような比率を使用します。
  • デフォルトの CPU オーバーコミット率は 16 ですが、これは物理コア 1 つにつき 最大 16 の仮想コアをノードに割り当てることができるという意味です。
  • デフォルトのオーバーコミット率は 1.5 ですが、これはインスタンスのメモリー使用量合計が、物理メモリーの空き容量の 1.5 倍未満の場合には、インスタンスを物理ノードに割り当てることができるという意味です。
デフォルト設定を変更するには、/etc/nova/nova.confcpu_allocation_ratio および ram_allocation_ratio のディレクティブを使用してください。

8.2.11. ホストのリソースの確保

ホストのメモリーおよびディスクリソースが常に OpenStack で使用できるように確保することができます。一定の容量のメモリーやディスクリソースが仮想マシンでの使用に提供可能と見なされないようにするには、/etc/nova/nova.conf で以下のディレクティブを編集します。
  • reserved_host_memory_mb: デフォルト値は 512 MB
  • reserved_host_disk_mb: デフォルト値は 0 MB

8.2.12. Compute ネットワークの設定

8.2.12.1. Compute ネットワークの概要

Nova のみのデプロイメントとは異なり、OpenStack Networking を使用している場合には、nova-network サービスは実行してはなりません。その代わりに、ネットワーク関連の決定事項はすべて OpenStack Networking サービスに委任されます。
このため、ネットワークの設定時には、Nova ネットワークについてのマニュアルや Nova ネットワークでの過去の経験に頼るのではなく、本ガイドを参照していただくことが非常に重要となります。特に、nova-managenova などの CLI ツールを使用したネットワークの管理や IP アドレス指定 (固定 IP および Floating IP の両方を含む) は、OpenStack Networking ではサポートされていません。

重要

物理ノードを使用して OpenStack Network を稼働する前には、nova-network をアンインストールして、nova-network を実行していた物理ノードを再起動することを強く推奨します。OpenStack Networking サービスの使用中に間違えて nova-network プロセスを実行すると、たとえば、以前に実行していた nova-network により古い ファイアウォールルールがプッシュダウンされる可能性があり、問題が発生する場合があります。

8.2.12.2. Compute の設定の更新

Compute のインスタンスがプロビジョニングまたはプロビジョニング解除されるたびに、サービスは API を介して OpenStack Networking と通信します。この接続をスムーズに行うには、以下の手順に記載する接続および認証の説明に従って設定を行う必要があります。
以下の手順に記載のステップはすべて、各コンピュートノードに root ユーザーとしてログインして実行する必要があります。

手順8.10 コンピュートノードの接続および認証の設定の更新

  1. network_api_class 設定キーを変更して、OpenStack Networking が使用中であることを示します。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT network_api_class nova.network.neutronv2.api.API
  2. Compute サービスが OpenStack Networking API のエンドポイントを使用するように設定します。
    # openstack-config --set /etc/nova/nova.conf \
       neutron url http://IP:9696/
    IP は、OpenStack Networking API サービスをホストするサーバーの IP アドレスまたはホスト名に置き換えます。
  3. OpenStack Networking サービスが使用するテナントの名前を設定します。本ガイドの例では、services を使用します。
    # openstack-config --set /etc/nova/nova.conf \
       neutron admin_tenant_name services
  4. OpenStack Networking の管理ユーザー名を設定します。
    # openstack-config --set /etc/nova/nova.conf \
       neutron admin_username neutron
  5. OpenStack Networking の管理ユーザー名に関連付けられたパスワードを設定します。
    # openstack-config --set /etc/nova/nova.conf \
       neutron admin_password PASSWORD
  6. Identity サービスのエンドポイントに関連付けられた URL を設定します。
    # openstack-config --set /etc/nova/nova.conf \
       neutron admin_auth_url http://IP:35357/v2.0
    IP は、Identity サービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。
  7. メタデータのプロキシーを有効化して、メタデータのプロキシーシークレットを設定します。
    # openstack-config --set /etc/nova/nova.conf \
       neutron service_metadata_proxy true
    # openstack-config --set /etc/nova/nova.conf \
       neutron metadata_proxy_shared_secret METADATA_SECRET
    METADATA_SECRET は、メタデータプロキシーが通信のセキュリティー保護に使用する文字列に置き換えます。
  8. OpenStack Networking セキュリティーグループの使用を有効化します。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT security_group_api neutron
  9. ファイアウォールドライバーを nova.virt.firewall.NoopFirewallDriver に設定します。
    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
    この操作は、OpenStack Networking セキュリティーグループが使用中の状態で実行する必要があります
  10. テキストエディターで /etc/sysctl.conf ファイルを開き、以下のカーネルネットワークパラメーターを追加または編集します。
    net.ipv4.ip_forward = 1
    net.ipv4.conf.all.rp_filter = 0
    net.ipv4.conf.default.rp_filter = 0
    net.bridge.bridge-nf-call-arptables = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
  11. 更新したカーネルパラメーターを読み込みます。
    # sysctl -p

8.2.12.3. L2 エージェントの設定

各コンピュートノードは、使用中のネットワークプラグインに適したレイヤー 2 (L2) エージェントのインスタンスを実行する必要があります。

8.2.12.4. 仮想インターフェース結線の設定

nova-compute がインスタンスを作成する時には、そのインスタンスに関連付ける各 vNIC を、OpenStack Networking によって制御される仮想スイッチに「結線」する必要があります。また Compute が、各 vNIC に関連付けられた OpenStack Networking ポートの識別子を仮想スイッチに通知する必要があります。
Red Hat OpenStack Platform では、仮想インターフェースの汎用ドライバー nova.virt.libvirt.vif.LibvirtGenericVIFDriver が提供されます。このドライバーは、必要な仮想インターフェースバインディングの種別を返すことが可能な OpenStack Networking に依存しています。この操作は、以下のプラグインによってサポートされています。
  • Linux Bridge
  • Open vSwitch
  • NEC
  • BigSwitch
  • CloudBase Hyper-V
  • Brocade
汎用ドライバーを使用するには、openstack-config コマンドを実行して vif_driver 設定キーの値を適切に設定します。
# openstack-config --set /etc/nova/nova.conf \
   libvirt vif_driver \
   nova.virt.libvirt.vif.LibvirtGenericVIFDriver

重要

Open vSwitch と Linux Bridge のデプロイメントに関する考慮事項:
  • セキュリティーグループを有効にした状態で Open vSwitch を実行している場合には、汎用ドライバーではなく、Open vSwitch 固有のドライバー nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver を使用してください。
  • Linux Bridge の場合には、/etc/libvirt/qemu.conf ファイルに以下の内容を追記して、仮想マシンが適切に起動するようにする必要があります。
    user = "root"
    group = "root"
    cgroup_device_acl = [
       "/dev/null", "/dev/full", "/dev/zero",
       "/dev/random", "/dev/urandom",
       "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
       "/dev/rtc", "/dev/hpet", "/dev/net/tun",
    ]

8.2.13. Compute サービスのデータベースへのデータ投入

Compute サービスのデータベース接続文字列を適切に設定した後には、Compute サービスのデータベースにデータを投入します。

重要

この手順は、データベースの初期化とデータ投入するために、1 回のみ実行する必要があります。Compute サービスをホストするシステムの追加時には繰り返す必要はありません。

手順8.11 Compute サービスのデータベースへのデータ投入

  1. openstack-nova-conductor サービスのインスタンスをホストしているシステムにログインします。
  2. nova ユーザーに切り替えます。
    # su nova -s /bin/sh
  3. /etc/nova/nova.conf で特定されているデータベースを初期化し、データを投入します。
    $ nova-manage db sync

8.2.14. Compute サービスの起動

手順8.12 Compute サービスの起動

  1. Libvirt を使用するには、messagebus を有効化して実行する必要があります。サービスを起動します。
    # systemctl start messagebus.service
  2. Compute サービスを使用するには、libvirtd サービスを有効化して実行する必要があります。
    # systemctl start libvirtd.service
    # systemctl enable libvirtd.service
  3. API のインスタンスをホストする各システムで API サービスを起動します。各 API インスタンスは、Identity サービスのデータベースで定義された独自のエンドポイントが設定されているか、エンドポイントとしての機能を果たすロードバランサーによってポイントされる必要がある点に注意してください。サービスを起動してブート時に起動するように設定します。
    # systemctl start openstack-nova-api.service
    # systemctl enable openstack-nova-api.service
  4. スケジューラーのインスタンスをホストする各システムでスケジューラーを起動します。サービスを起動して、ブート時に起動するように設定します。
    # systemctl start openstack-nova-scheduler.service
    # systemctl enable openstack-nova-scheduler.service
  5. コンダクターのインスタンスをホストする各システムでコンダクターを起動します。コンピュートノードからデータベースへの直接のアクセスを制限することによるセキュリティー上のメリットがなくってしまうので、このサービスは、すべてのコンピュートノードでは実行しないことを推奨している点に注意してください。サービスを起動して、ブート時に起動するように設定します。
    # systemctl start openstack-nova-conductor.service
    # systemctl enable openstack-nova-conductor.service
  6. 仮想マシンインスタンスをホストする予定の全システムで Compute サービスを起動します。サービスを起動して、ブート時に起動するように設定します。
    # systemctl start openstack-nova-compute.service
    # systemctl enable openstack-nova-compute.service
  7. 環境設定によっては、以下のようなサービスも起動する必要がある場合があります。
    openstack-nova-cert
    Compute サービスに対して EC2 API を使用する場合に必要とされる X509 証明書サービス

    注記

    Compute サービスに対して EC2 API を使用する場合は、nova.conf 設定ファイルでオプションを設定する必要があります。詳しい説明は、『Red Hat OpenStack Platform Configuration Reference Guide』の「Configuring the EC2 API」の項を参照してください。このガイドは以下のリンクから入手できます。
    openstack-nova-network
    Nova ネットワーキングサービス。OpenStack Networking がインストール/設定済みの場合、またはこれからインストール/設定する予定の場合には、このサービスは起動してはならない点に注意してください。
    openstack-nova-objectstore
    Nova オブジェクトストレージサービス。新規デプロイメントには、Object Storage サービス (Swift) の使用が推奨されます。