6. 動作確認-インスタンス

インスタンスがFastConnectに接続され、富岳・HPCIからアクセスできるかを確認します。

6.1. インスタンス作成

富岳ログインノードから管理用アドレスを利用しアクセスができるインスタンスの作成方法例です。
  1. メニューからインスタンスを選択

../_images/OracleCloud-INS-01.png
  1. R-CCS接続向けに作成したコンパート名を選択(例ではRequestorComp)

../_images/OracleCloud-INS-02.png
  1. インスタンス作成を選択

SSH公開鍵を登録してインスタンスを作成します。
../_images/OracleCloud-INS-03.png
  1. プロビショニング完了を待ち、管理用アドレスが紐付けられることを確認

../_images/OracleCloud-INS-04.png

6.2. インスタンスのアクセス確認

前項で作成したインスタンスの動作確認を行う手順です。
  1. 富岳ログインノードにログイン

インスタンスへSSHログインする場合はssh -AなどでSSHフォワーディングしてください。
  1. 登録した(フォワーディングした)SSH鍵を利用してインスタンスにSSHログイン

$ ssh 172.30.XX.XX
  1. 作成したログインできることを確認

6.3. OCIコマンドを利用したインスタンの作成およびアクセス確認

Oracle Cloud Infrastructerが提供しているOCIコマンドを利用することで
コマンドでインスタンスやObject Storageのbucketを作成してアクセスすることができます。
OCIコマンドはローカルに簡単にインストールできます。
本項ではOCIコマンドをインストールし、インスタンスをOCIコマンドで作成してアクセスし、削除する手順を説明します。
  1. 富岳ログインノードまたはR-CCS HPCIログインノードへログイン

富岳のログインノードは2021/03/09時点では以下が稼働しています。
  • login.fugaku.r-ccs.riken.jp * 以下にロードバランスされます。

    • login1.fugaku.riken.jp

    • login2.fugaku.riken.jp

    • login3.fugaku.riken.jp

    • login4.fugaku.riken.jp

    • login5.fugaku.riken.jp

    • login6.fugaku.riken.jp

  • csgw.fugaku.r-ccs.riken.jp * 以下にロードバランスされます。

    • csgw1.fugaku.riken.jp

    • csgw2.fugaku.riken.jp

この内、csgw.fugaku.r-ccs.riken.jp をご利用いただくことで、
転送に制限を受けずに富岳ストレージとクラウド間でデータ転送を行うことが可能です。
また、csgw.fugaku.r-ccs.riken.jpには共用ストーレジのクライアント環境もインストールされています。
このため、共用ストレージと富岳ストーレジとOCIそれぞれにデータを転送することが可能です。
$ ssh csgw.fugaku.r-ccs.riken.jp
共用ストレージをご利用の方は、R-CCS 共用ストレージログインノードを利用することも可能です。
共用ストレージログインノードは2021/03/09時点で以下が準備されています。
  • hpciss04.r-ccs.riken.jp (汎用機)

  • hpciss05.r-ccs.riken.jp (汎用機)

  • hpciss06.r-ccs.riken.jp (汎用機)

  • das.r-ccs.riken.jp (GPGPU・大容量メモリ搭載計算システムログインノード)

ログインノードへは、GSI-SSHを利用してログインが可能です。
また、ローカルアカウントおよびSSH公開鍵ログインの申請を行うことで、SSH公開鍵認証を行いログインする
ことも可能です。申請方法については以下をご参照ください。
das.r-ccs.riken.jp(GPGPU・大容量メモリ搭載計算システムログインノード)には次の計算ノードが接続されています。
これらは共用ストレージのユーザでしたら誰でもご利用いただけます。
特にdas{01..04}にはNVIDIA T100 GPUが搭載されており、可視化や計算にご利用いただけます。
各計算ノードには共用ストレージのクライアントもインストールされており、計算ノードから直接共用ストレージ
をご利用いただくことが可能です。(もちろんOCIクライアントをインストールすることで高速にOCIへのデータ転送が可能です)
  • 計算ノード * das01.r-ccs.riken.jp * das02.r-ccs.riken.jp * das03.r-ccs.riken.jp * das04.r-ccs.riken.jp * hpciss02.r-ccs.riken.jp * hpciss03.r-ccs.riken.jp

  1. OCIコマンドのインストール

OCIコマンドは以下を実行することでローカルにインストールが可能です。
2021/03/09時点では共用ストレージログインノードでは、pipやパッケージのインストールが行われるため
インストールに少々時間がかかります。
インストールによりシェルの設定ファイルにOCIコマンドのPATHを通す設定が追加されます。
このため、実行結果にも記載れている通り、インストール後に"exec -l $SHELL"を実行してシェルの設定ファイルを再読み込みしてください。
$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                               Dload  Upload   Total   Spent    Left  Speed
100 17208  100 17208    0     0   102k      0 --:--:-- --:--:-- --:--:--  103k
******************************************************************************
You have started the OCI CLI Installer in interactive mode. If you do not wish
to run this in interactive mode, please include the --accept-all-defaults option.
If you have the script locally and would like to know more about
input options for this script, then you can run:
./install.sh -h
If you would like to know more about input options for this script, refer to:
https://github.com/oracle/oci-cli/blob/master/scripts/install/README.rst
******************************************************************************
Downloading Oracle Cloud Infrastructure CLI install script from https://raw.githubusercontent.com/oracle/oci-cli/v2.14.4/scripts/install/install.py to /tmp/oci_cli_install_tmp_B5uW.
######################################################################## 100.0%
<snip>
-- ** Run `exec -l $SHELL` to restart your shell. **
--
-- Installation successful.
-- Run the CLI with /home/<user>/bin/oci --help
$
$ exec -l $SHELL
$
  1. OCIコマンドの設定

OCIコマンドの設定を行います。
OCIコマンドの設定ファイル以下のコマンドで作成できます。
ユーザやテナントのOCIDはWebUIにログインして、取得してください。
$ oci setup config
Enter a location for your config [/home/<user>/.oci/config]:
   - コンフィグファイルのパスを指定します。何も入力しない場合は~/.oci/configが作成されます。
Enter a user OCID: ocid1.user.oc1....
   - ご自身のOCIユーザアカウントのOCIDを記載してください。WebUIにログインして取得する必要があります。
Enter a tenancy OCID: ocid1.tenancy.oc1..aaaaaaaalycfhttkn5rxeu44yxkrmmhwfsj3siqyxjvld336inu5grvy7kka
   - ご自身が利用するテナントのOCIDを記載してください。WebUIにログインして取得する必要があります。
Enter a region by index or name(e.g.
1: ap-chiyoda-1, 2: ap-chuncheon-1, 3: ap-hyderabad-1, 4: ap-melbourne-1, 5: ap-mumbai-1,
6: ap-osaka-1, 7: ap-seoul-1, 8: ap-sydney-1, 9: ap-tokyo-1, 10: ca-montreal-1,
<snip>
26: us-gov-phoenix-1, 27: us-langley-1, 28: us-luke-1, 29: us-phoenix-1, 30: us-sanjose-1): 9
   - リージョンを指定します。FastConnectをご利用の場合は東京リージョン(ap-tokyo-1)を指定してください。
Do you want to generate a new API Signing RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: Y
   - テナントアクセス用のRSA鍵を自動作成します。ここでは作成するように"Y"を指定しています。
Enter a directory for your keys to be created [/home/<user>/.oci]:
   - RSA鍵の保存するディレクトリパスを指定してください。何も入力しない場合は~/.oci/configが選択されます。
Enter a name for your key [oci_api_key]:
   - RSA鍵の名前を指定してください。本例ではデフォルト(何も入力しない)のoci_api_keyとしています。
Public key written to: /home/<user>/.oci/oci_api_key_public.pem
Enter a passphrase for your private key (empty for no passphrase):
Repeat for confirmation:
   - RSA鍵のパスワードを入力してください。
Private key written to: /home/<user>/.oci/oci_api_key.pem
Fingerprint: a0:02:18:ad:5d:a5:67:40:b5:1a:a0:85:b0:b6:fd:60
Do you want to write your passphrase to the config file? (if not, you will need to supply it as an argument to the CLI) [y/N]: y
   - "y"を指定すると、RSA鍵のパスフレーズがコンフィグファイルに記載されます(特段暗号化せずに記載されるのでご注意ください)
Config written to /home/<user>/.oci/config
setup configを行うと次のような設定ファイルが作成されます。
$ cat .oci/config
[DEFAULT]
user=ocid1.user.oc1..
fingerprint=a0:02:18:ad:XX:XX:XX:XX:XX:XX:XX:85:b0:b6:fd:60
key_file=/home/<user>/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.oc1..
region=ap-tokyo-1
pass_phrase=<pass>
また、.oci/configにはoci_cli_rcといった設定ファイルを作成することができます。
ここでは、ociコマンドのオプションに指定するコンパートメントのOCIDなどを記載し、
コマンド実行時に省略することができます。
以下は、コンパートメントのOCIDを設定する例です。
$ vim .oci/oci_cli_rc
[DEFAULT]
compartment-id=ocid1.compartment.oc1......
設定が完了したら、作成した鍵ファイル(以下OCI API Key)をWebUIでユーザに紐付ける必要があります。
OCI API Keyの公開鍵はデフォルトのパスで作成した場合は以下に作成されています。
$ cat ~/.oci/oci_api_key_public.pem
OCIコマンドでアクセスをするためにOCI API Keyを紐付けます。
WebUIにログインして、ユーザ→ご自身のアカウントを選択してください。
※ 本例ではユーザ名をOracleCloudFastConnectUserとしています。適宜置き換えてください。
../_images/OracleCloud-OCID-USER01.png ../_images/OracleCloud-OCID-USER02.png
APIキーの項目を選択してください
../_images/OracleCloud-APIKEYSETUP-01.png
公開キーの追加から作成したOCI API Public Key(oci_api_key_public.pem)を追加してください。
コピー&ペーストでも追加可能です。
../_images/OracleCloud-APIKEYSETUP-02.png ../_images/OracleCloud-APIKEYSETUP-03.png
設定と紐付け作業が完了したら次のコマンドを実行してご自身のユーザ情報が取得できることをご確認ください。
<oci_user>にはOCIのご自身のユーザ名を入力してください。
$ oci iam user list --name <oci_user>
{
  "data": [
    {
      "capabilities": {
        "can-use-api-keys": true,
        "can-use-auth-tokens": true,
        "can-use-console-password": true,
        "can-use-customer-secret-keys": true,
        "can-use-o-auth2-client-credentials": true,
        "can-use-smtp-credentials": true
      },
      "compartment-id": "ocid1.tenancy.oc1......
      "defined-tags": {
        "Oracle-Tags": {
          "CreatedBy": "ocid1.saml2idp.oc1.....
          "CreatedOn": "2020-02-12T01:16:43.685Z"
        }
      },
      "description": ""
      "email": "XXXX@riken.jp",
      "email-verified": true,
      "external-identifier": null,
      "freeform-tags": {},
      "id": "ocid1.user.oc1.......
      "identity-provider-id": null,
      "inactive-status": null,
      "is-mfa-activated": false,
      "last-successful-login-time": "2021-03-16T00:07:01.567000+00:00",
      "lifecycle-state": "ACTIVE",
      "name": "<oci_user>",
      "previous-successful-login-time": null,
      "time-created": "2020-02-12T01:16:43.808000+00:00"
    }
  ]
}
$
  1. OCIコマンドでインスタンスを作成しログイン

OCIコマンドを利用してインスタンスを作成し、前項で作成した公開鍵でログインする手順です。
まずは、コンパートメントのOCIDを取得します。
FastConnectに接続したコンパートメントのOCIDを取得してください。
前項でコンパートメントのOCIDを設定ファイルに記載した場合は本作業は省略して構いません。
$ oci iam compartment list
{
  "data": [
    {
      "compartment-id": "ocid1.tenancy.oc1.....
      <snip>
    },
{
  "compartment-id": "ocid1.tenancy.oc1.....
  "defined-tags": {
             <snip>
  },
  "description": ""
  "freeform-tags": {},
  "id": "ocid1.compartment.oc1....            <- FastConnect接続コンパートメントのOCID
  <snip>
  "name": "<COMPARTMENT_NAME>",               <- FastConnect接続コンパートメント名を確認してください
  <snip>
},
以下の通り上記で確認したコンパートメントにインスタンスを作成します。
利用可能なイメージ(OS)のリストを取得します。
$ oci compute image list -c <compartment-id>
 <snip>
    {
      "agent-features": null,
      "base-image-id": null,
      "compartment-id": null,
      "create-image-allowed": true,
      "defined-tags": {},
      "display-name": "Oracle-Linux-8.3-2020.12.17-0",
      "freeform-tags": {},
      "id": "ocid1.image.oc1.ap-tokyo-1.aaaaaaaakpfqgimyvpzw6xbdvtqd2cp7sxianqx5azyaqfsmjxdjy6pudloq",
      "launch-mode": "NATIVE",
      "launch-options": {
        "boot-volume-type": "PARAVIRTUALIZED",
        "firmware": "UEFI_64",
        "is-consistent-volume-naming-enabled": true,
        "is-pv-encryption-in-transit-enabled": true,
        "network-type": "PARAVIRTUALIZED",
        "remote-data-volume-type": "PARAVIRTUALIZED"
      },
      "lifecycle-state": "AVAILABLE",
      "operating-system": "Oracle Linux",
      "operating-system-version": "8",
      "size-in-mbs": 47694,
      "time-created": "2020-12-20T20:29:22.687000+00:00"
    },
利用可能なシェイプ(仮想マシンやベアメタル)のリストを取得します。
もし欲しいシェイプがない場合は、WebUIからOracleに利用したいシェイプを申請してください。
$  oci compute shape list -c <compartment-id>
<snip>
    {
      "gpu-description": null,
      "gpus": 0,
      "local-disk-description": null,
      "local-disks": 0,
      "local-disks-total-size-in-gbs": null,
      "max-vnic-attachment-options": null,
      "max-vnic-attachments": 2,
      "memory-in-gbs": 15.0,
      "memory-options": null,
      "networking-bandwidth-in-gbps": 1.0,
      "networking-bandwidth-options": null,
      "ocpu-options": null,
      "ocpus": 1.0,
      "processor-description": "2.0 GHz Intel...",
      "shape": "VM.Standard2.1"
    },
インスタンス作成に必要なsubnet-idとavailability名を取得します。
$ oci network subnet list -c <compartment-id>
{
  "data": [
    {
      <snip>
      "cidr-block": "172.30.1.0/26",              <- 設定したCIDRブロック
      "compartment-id": "ocid1.compartment.oc1....
      <snip>
      },
      "display-name": "OracleCloudFastConnectServiceSubnet", <- 設定したSubnet名
      <snip>
      "id": "ocid1.subnet.oc1.ap-tokyo-1..... <- OCID
      <snip>
    }
  ]
}
$ oci iam availability-domain list
{
  "data": [
    {
      "compartment-id": "ocid1.tenancy.oc1....
      "id": "ocid1.availabilitydomain.oc1. .....
      "name": "jbxI:AP-TOKYO-1-AD-1"
    }
  ]
}
インスタンスを作成します
正常に作成されると、作成されたインスタンスの情報が取得できます。
$ ssh-keygen
   - アクセスするための公開鍵がない場合は作成してください
$ oci compute instance launch  \
  --availability-domain "<availability_domain_name ex: jbxI:AP-TOKYO-1-AD-1>"  \
  -c <compartment_id>                                         \
  --shape "<シェイプ名 ex:VM.Standard2.1>"                    \
  --display-name "<instance_display_name ex: test-instance>"  \
  --image-id <image_id ex: ocid1.image.oc1.ap-tokyo-1.aaaaaaaakpfqgimyvpzw6xbdvtqd2cp7sxianqx5azyaqfsmjxdjy6pudloq>  \
  --ssh-authorized-keys-file ~/.ssh/id_rsa.pub                \
  --subnet-id  <subnet_id>
{
     "data": {
       "agent-config": {
         "are-all-plugins-disabled": false,
         "is-management-disabled": false,
         "is-monitoring-disabled": false,
         "plugins-config": null
       },
       "availability-config": {
         "recovery-action": "RESTORE_INSTANCE"
       },
       "availability-domain": "jbxI:AP-TOKYO-1-AD-1",
 <snip>
     "display-name": "test_instance",
     "extended-metadata": {},
     "freeform-tags": {},
     "id": "ocid1.instance.oc1.ap-tokyo-1....."
     "image-id": "ocid1.image.oc1.ap-tokyo-1.aaaaaaaakpfqgimyvpzw6xbdvtqd2cp7sxianqx5azyaqfsmjxdjy6pudloq",
     "instance-options": {
       "are-legacy-imds-endpoints-disabled": false
     },
 <snip>
  1. インスタンスへアクセス

作成したインスタンスの情報は以下で取得できます。
インスタンスOCIDを確認してください。
$ oci compute instance list -c <compartment-id>
<snip>
      "display-name": "test_instance",
      "extended-metadata": {},
      "freeform-tags": {},
      "id": "ocid1.instance.oc1.ap-tokyo-1.,,,,,"  <- インスタンス OCID
      "image-id": "ocid1.image.oc1.ap-tokyo-1.aaaaaaaakpfqgimyvpzw6xbdvtqd2cp7sxianqx5azyaqfsmjxdjy6pudloq",
      "instance-options": {
        "are-legacy-imds-endpoints-disabled": false
      },
<snip>
インスタンスの起動状況はinstance getで取得できます。
オプションにinstance idを指定してください。
lifecycle-stateがRUNNINGになっていればインスタンスが起動しています。
$ oci compute instance get --instance-id ocid1.instance.oc1.ap-tokyo-1..., 2>/dev/null | grep life
"lifecycle-state": "RUNNING",
続いて接続するためのIPアドレスを取得します。
以下の例では172.30.1.4が割り当てられています。
$ oci compute instance list-vnics --instance-id ocid1.instance.oc1.ap-tokyo-1.... 2>/dev/null | grep ip
  "private-ip": "172.30.1.4",
  "public-ip": null,
  "skip-source-dest-check": false,
sshコマンドを利用してログインを試します。
デフォルトのユーザはopcです。
$ ssh -i ~/.ssh/key opc@172.30.1.4
  1. ociコマンドでインスタンスを削除

作成したテナントを削除したい場合は以下 instance terminateを実行してください。
$ oci compute instance terminate  --instance-id ocid1.instance.oc1.ap-tokyo-1....