はじめに
Oracle Integration Cloud Service(以後、OIC) は、Oracle Gen2 Cloud(OCI)で提供されているメッセージやデータ連携のためのPaaSサービスです。
2020年6月に OIC内蔵のSFTPファイル・サーバーが提供されたので、OIC チュートリアルにそって有効化し使ってみたいと思います。
Oracle Integration Cloud チュートリアル - ファイル・サーバーの有効化
OICインスタンスの作成
はじめに OIC インスタンスを作成します。チュートリアルにも記載がありますが、OICインスタンスを作成するためにはIDCSグループを作成したり、IDCSグループにOICインスタンスの作成権限を付与したりといった準備が必要ですが本稿では省略しています。詳細は以下をご覧ください。
リージョンの選定
今回は別のサービスとの連携要件の都合で、北米Phoenix リージョンにOICインスタンスを作成します。
インスタンスの作成
ナビゲーション・メニューから**[アプリケーション統合]-[統合]**を選択し、OCIインスタンスの作成ページに移行します。
統合インスタンスの作成 をクリックし、インスタンスの作成メニューを表示します。
[表示名] 任意の名前を入力
[エディション] Enterpriseを選択してます。将来 Process機能を使うかもしれないのでEnterprise を選択しましたが、内蔵ファイルサーバーは標準でも使用できます。
[ライセンスタイプ] 新しいOracle Integrationライセンスのサブスクライブ を選択します。
[メッセージ・パック] 時間当たり5000メッセージまでの利用を想定し、最小の1 パッケージを選択。
作成 をクリックし、OICインスタンスを作成します。
ファイルサーバーの設定
ファイルサーバーの有効化
右下の ファイル・サーバー:の有効化をクリックし、ファイル・サーバーを使えるようします。
有効化の確認画面が表示されます。有効化 をクリック。
ファイル・サーバー有効化のリクエストが送信され、しばらくするとファイル・サーバーが有効になりました。
ファイル・サーバーの設定
サービス・コンソールの左上のナビゲーション・メニューをクリックし、左パネルを表示します。
左パネル上で、[設定] → [File Server] → [Setting] と順にクリックし、次の**[設定]** 画面を表示させます。
ステータス セクションで、
ファイル・サーバーのIPアドレスとポート
上記画面の一般 セクションの右下部のIPおよびポート情報から、SFTPサーバーに接続譲情報が得られるのでメモしておきます。SFTPクライアントから接続する際に使用します。
- IPアドレス:192.29.96.243
- ポート:5007
ファイル・サーバーにアクセスするユーザーの有効化
続いて、ファイル・サーバーにアクセスするユーザーの有効化をおこないます。
ユーザー認証
OICのファイル・サーバーは初期状態では次の認証方式が使用可能です。
-
パスワード認証
OICのサービス・コンソールにログインする時と同じユーザー名とパスワードを使用します。 -
公開鍵認証
公開鍵と秘密鍵の鍵ペアを使用します。今回はこちらの公開鍵認証でファイル・サーバーに接続します。
ユーザーの認証設定と有効化
Users をクリックすると、OICにアクセス可能なユーザーが一覧表示されます。アクセスを有効化したいユーザーを検索し右端の鉛筆のアイコンをクリックします。
SFTPのプロパティ画面が表示されるので、認証公開キー の項目で公開鍵をアップロードします。
公開鍵のアップロードが完了すれば、認証公開キーの項目に公開鍵ファイル名が表示されます。
プロパティの画面を閉じ、次のように構成済みが表示されホーム・フォルダが設定されていれば完了です。
フォルダの権限
詳細表示を開くと、ホーム・フォルダへの権限もすべて可能な旨が確認できました。
動作確認
OICのファイル・サーバーに関する設定は完了したので、自分のWindows10デスクトップから任意のファイルをアップロードできるかを確認してみます。
OICファイル・サーバーへの接続
sftpコマンドで接続を試みます。
sftp -P <ポート> -i <秘密鍵ファイル> <ユーザー名>@<sftpファイル・サーバーのIPアドレス>
パラメータとしては、以下が必要です。
- ファイル・サーバーのIPアドレスとポート
- ユーザー名
- 秘密鍵ファイル
例:
sftp -P 5007 -i ~/.ssh/id_rsa ichiro.tanaka@company.com@192.29.96.243
実際にPowerShell にコマンド入力して接続を試みると、以下のように sftpサーバーに接続成功した旨のメッセージが表示され、sftpプロンプトが表示されました。
無事ファイル・サーバーに接続できたので、さらにsftpサブコマンドでファイル操作を継続します。
OICファイルサーバーへファイルを送信
以下にsftpサブコマンドの代表的なものをリストします。ファイル・サーバー(リモートホスト)に対するサブコマンドは、ほぼ Linuxコマンドと同じ(例) ls, cd, pwd)で、ローカルのデスクトップに対するサブコマンドは先頭が Local の l(エル)で始まります(例) lls, lcd, lpwd)。
sftp サブコマンド | 機能説明 |
---|---|
ls | リモートホストのディレクトリ内容を一覧表示 |
lls | ローカルマシンのディレクトリ内容を一覧表示 |
put | ローカルマシンのファイルをリモートホストへ転送 |
get | リモートホストのファイルをローカルマシンへ転送 |
pwd | リモートホストのカレントディレクトリパスを表示 |
lpwd | ローカルマシンのカレントディレクトリのパスを表示 |
cd | リモートホストのカレントディレクトリを変更 |
lcd | ローカルマシンのカレントディレクトリを変更 |
では、実際にローカルのサンプルファイルをファイル・サーバーへ転送してみます。
put サブコマンドでサンプルのCSVファイル(sample.csv)をファイル・サーバーへ転送し、転送されたことを ls サブコマンドで確認します。
無事に sample.csv ファイルが転送されたことが確認できました。
まとめ
OICのインスタンスが作成されていれば、ファイル・サーバーの有効化とユーザー設定ですぐにSFTPサーバーを使うことができました。
OIC本来の機能は統合でデータ変換なども可能なので、ファイル・サーバーに転送したファイルをデータ変換してデータベースに格納したり、SaaSのサービスと簡単にデータ統合できる点がよいですね。