2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI Container InstancesがFSSを永続ディスクとしてサポートしたので検証を実施

2
Posted at

概要

Oracle Cloud Infrastructure(OCI)のContainer Instance(CI)がFile Storage Service(FSS)を永続ディスクとしてサポートしたので検証しました

参考情報:

構成

FSSを事前に準備してCIを作成します
CIはAlpineをイメージとして作成し、SSHアクセスしてFSSの検証を行います

事前準備

File Storage

File StorageおよびFile Storage Mount Targetを作成します
その際、特権ソース・ポートの設定が必要になります、

この機能により、転送中暗号化によってTLS v.1.2 (Transport Layer Security)暗号化を使用して、インスタンスとマウントされたファイル・システム間のデータが保護されます。

特権ソース・ポートが設定されているか確認するためには以下を選択してポートが特権になっていることを確認します
OCIコンソールからストレージ>>ファイル・ストレージ>>マウント・ターゲット>>対象マウント・ターゲット>>エクスポート>>対象エクスポート>>NFSクライアント・エクスポート・オプションを選択

ポートの箇所が特権になっていることを確認

SSHキー

今回は検証用にAlpineを利用するためSSHアクセス用のキーを作成します

SSHで使う公開鍵・秘密鍵のペアを、Ed25519アルゴリズムで生成します

$ ssh-keygen -t ed25519 -f ~/.ssh/oci-ci-alpine.key -C "oci-ci-alpine.key" -N ""

公開鍵ファイルをBase64形式で変換します

$ base64 -w 0 ~/.ssh/oci-ci-alpine.key.pub

エンコードされた文字列をContainer Instancesの定義ファイルに使用します

Container Instancesの作成

Container Instancesの定義ファイルを作成します

ci_alpine-ssh.json

## Replace << >> with the appropriate value
{
  "compartmentId": "<<ocid1.compartment.oc1..*******>>",
  "displayName": "alpine-ssh",
  "availabilityDomain": "<<availabilityDomain>>",
  "shape": "CI.Standard.E4.Flex",
  "shapeConfig": {
    "ocpus": 1.0,
    "memoryInGBs": 1.0
  },
  "vnics": [
    {
      "subnetId": "<<ocid1.subnet.oc1.*******>>",
      "privateIp": "<<Private IP>>",
      "isPublicIpAssigned": false
    }
  ],
  "containers": [
    {
      "displayName": "alpine-ssh",
      "imageUrl": "docker.io/library/alpine:latest",
      "command": ["/bin/sh", "-c"],
      "arguments": [
        "set -eu && apk add --no-cache openssh-server bash curl iputils net-tools && mkdir -p /run/sshd /root/.ssh && install -m 600 /ssh-authorized-keys/oci-ci-alpine.key.pub /root/.ssh/authorized_keys && ssh-keygen -A && exec /usr/sbin/sshd -D -e -p 2222 -o PermitRootLogin=prohibit-password -o PasswordAuthentication=no -o KbdInteractiveAuthentication=no"
      ],
      "volumeMounts": [
        {
          "volumeName": "shared-fss",
          "mountPath": "/mnt/fss",
          "isReadOnly": false
        },
        {
          "volumeName": "ssh-authorized-keys",
          "mountPath": "/ssh-authorized-keys",
          "isReadOnly": true
        }
      ]
    }
  ],
  "volumes": [
    {
      "name": "shared-fss",
      "volumeType": "OCI_FSS_FILE_SYSTEM",
      "mountTarget": {
        "ociFssMountTargetType": "OCID",
        "id": "<<ocid1.mounttarget.oc1.*******>>"
      },
      "export": {
        "ociFssExportType": "OCID",
        "id": "<<ocid1.export.oc1.*******>>"
      },
      "security": {
        "auth": "SYS",
        "isEncryptedInTransit": true
      },
      "mountCommand": {
        "mountOptions": [
          { "option": "hard" },
          { "option": "noac" },
          { "option": "retrans", "value": "11" }
        ]
      },
      "subnetId": "<<ocid1.subnet.oc1.*******>>"
    },
    {
      "name": "ssh-authorized-keys",
      "volumeType": "CONFIGFILE",
      "configs": [
        {
          "fileName": "oci-ci-alpine.key.pub",
          "data": "<<********************>>" #エンコードした文字列
        }
      ]
    }
  ]
}

OCI CLIコマンドでCI作成実行します

$ oci container-instances container-instance create --from-json file://ci_alpine-ssh.json  --debug --region ap-tokyo-1

動作確認

  • FSS確認
    作成した暗号鍵を使用してSSHアクセスします
## Replace << >> with the appropriate value

$ ssh root@<<Private IP>> -p 2222 -i ./.ssh/oci-ci-alpine.key
Welcome to Alpine!

マウントしたFSSにアクセスできることを確認します

  • FSS通信状況
    暗号化アクセスに、TCPポート2051が使用されています

localhost:~# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
:
tcp        0      0 10.105.2.21:955         10.105.2.22:2051        ESTABLISHED
:
  • ファイル転送パフォーマンス
    CI~FSS間のファイル転送を計測します
    FSSの標準マウントターゲット速度は1Gbpsです
    検証の結果、十分な実用性を示すファイル転送速度が確認できました
    • FSS⇒CI ダウンロード
      1回目: 93.92MB/s
      2回目: 98.56MB/s
      3回目: 96.67MB/s

    • CI⇒FSS アップロード
      1回目: 27.58MB/s
      2回目: 29.31MB/s
      3回目: 29.56MB/s

まとめ

本記事では、OCIのContainer InstancesにおけるFSSの永続ディスクサポートについて、具体的な設定手順からパフォーマンス測定までを検証しました。

  • JSON定義ファイルを用いたコンテナ作成手法
  • 特権ポート設定による安全な転送暗号化
  • 十分な実用性を示すファイル転送速度の確認

これにより、ステートレスなコンテナの制約を超えて、他システムやサーバー間でのファイル共有や永続データの保持が容易になり、Container Instancesの活用シーンが大きく広がることを確認できました。

一方で、FSSはObject Storageと比較してコストが高くなる傾向にあるため、ユースケースに応じた適切なストレージの使い分けによるコスト適正化が重要になります。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?