Interface編集部
2022年12月号特集 第1部 サポート・ページ2…自前サーバのデータをクラウドと連携する
サポート・ページ2「自前サーバのデータをクラウドと連携する」
本サイトでは,Interface2022年12月号特集 第1部に関して,Amazon Web Services(以下,AWS)を活用したIoTデータ・サーバ構築手順の詳細を説明します。MQTTプロトコルを利用して,クラウドでデータを受け付け,それを順次蓄積していく構成を実現します.
サポート・ページ2では,オンプレミスのデータを,AWSと連携する場合の設定について説明します.
今回はWindows11のローカルPCから,AWSにデータを転送する構成を作ってみます.この操作をする事前準備として,WindowsのHyper-Vの設定を行ってください.まず,コントロールパネルから「Windows の機能の有効化または無効化」のダイアログを開き,「Hyper-V」の項目を有効にします.
Windowsを再起動後,Windowsメニューから「Hyper-V」を検索して「Hyper-V マネージャー」を起動できることを確認してください.
ステップ1:AWS DataSync Agent の構築・設定
オンプレミスのデータをクラウドと連携させるため,今回は主に以下のサービスを利用します.AWSのサイトでサービスの概要をご確認ください.
– Amazon S3(以下,S3)
https://aws.amazon.com/jp/s3/
– AWS DataSync(以下,DataSync)
https://aws.amazon.com/jp/datasync/
AWSコンソールにログインし,「DataSync」の設定画面を開きます.
DataSyncの「エージェント」メニューを選択し,「エージェントを作成する」をクリックします.その上で表示される画面で,「ハイパーバイザー」の項目で,「Windows Hyper-V」を選択し,「イメージをダウンロードする」リンクをクリックし,Hyper-V の仮想マシンイメージをダウンロードします.
「AWS-DataSync-Agent-HyperV.zip」というファイルがダウンロードされますが,そのファイルを解凍して得られる「aws-datasync-2.0.xxxxxxxxx-x86_64.xfs.gpt.vhdx」というファイルを利用して,AWS DataSync のエージェントを構築します.オンプレミスの環境で,このエージェントがクラウドと連携させるプロセスとなります.仮想マシンの要件は,以下を参照してください.
https://docs.aws.amazon.com/ja_jp/datasync/latest/userguide/agent-requirements.html#hardware
Hyper-Vの「操作」メニューから,「新規」→「仮想マシン」を選択して,仮想マシンの新規作成ウィザードを開始してください.
仮想マシンの名前を,「cqpub-datasync-agent」としておきます.任意の名前を指定して構いません.
仮想マシンの世代は,「第 1 世代」を選択してください.
メモリの割り当てを,「4096MB」(4GB)としてください.本番環境の場合は,32GB以上が推奨されていますが,大量のデータでなければ,この設定でも動作します.
ネットワークは,「Default Switch」を選択してください.
仮想マシンが作成されるので,起動する前に仮想マシンを右クリックし,「設定」を開いてください.
この仮想マシンの「プロセッサ」の設定で,仮想プロセッサの数を「4」に設定してください.
これで DataSync Agent の仮想マシンの準備が整いました.この仮想マシンを起動すると,ログインコンソールが表示されます.
ログインID:admin,パスワード:password と入力すると,ログインでき,DataSync のメニューが表示されます.
この画面で表示されている,「eth0: 172.xxx.xxx.xxx」のIPアドレスに対して,ブラウザから「http://172.xxx.xxx.xxx」でアクセスできることを確認してください.
ここまでの設定が完了したら,再度,AWSのDataSyncの管理コンソールに戻ります.先ほど,Hyper-V の仮想マシンイメージをダウンロードした画面で,先ほどのエージェントのIPアドレスを指定し,「キーを取得する」をクリックしてください.
エージェントの作成に成功すると,ステータスが「オンライン」状態で登録されます(DataSync Agent の仮想マシンは起動したままにしておいてください).
ステップ2:ローカルPCで共有ディレクトリを準備
今回,DataSync Agentとファイル送信元のファイル・サーバは,SMBプロトコルを利用して通信します.ローカル・ネットワーク環境に別ファイル・サーバを立てるのは大変なため,ローカルPCで共有ディレクトリを用意し,そこにネットワーク・アクセスすることで,仮想ファイル・サーバを構築します.構成は以下のような内容になります.
まず,この構成で接続ができるよう,Windowsのローカルユーザを作成します.コントロールパネルの「ユーザー アカウント」から,「cqpubuser」という新しいユーザを作成してください.
次に,ローカルPC上に「syncexample」という共有ディレクトリを作成します(場所はどこでも構いません).そのプロパティを開き「共有」タブを開いてください.
「共有」をクリックし,このディレクトリを共有設定にしてください.
「アクセス許可」から,先ほど作成した「cqpubuser」を追加し,共有設定を行ってください.
また,ここでコマンドプロンプトを立ち上げ,「ipconfig」と入力してください.そこで表示されるネットワークアダプタの中に,「vEthernet (Default Switch)」という内容が表示されるので,そのIPアドレスをメモしておいてください.このIPアドレスが,DataSync Agent の仮想マシンとローカルPC間を通信するためのIPアドレスとなります.
さらに先ほどメモしたIPアドレスを利用して,「net use D: \\172.21.0.1」と入力してください(”D:” はWindowsのドライブ名ですが,既に使用されている場合は別の値を指定してください).これで成功すると,以下のように上記で設定した共有フォルダに対して,ネットワーク経由でアクセスできるようになります.
ステップ3:ファイル転送のためのAWS DataSyncタスクを設定
ファイル転送を実行するDataSyncタスクの設定を行います.「送信元」「送信先」の設定を行いますが,「送信元」がローカルPCの共有ディレクトリ,「送信先」がAWS上のS3バケットになります.
まず,送信先となるS3バケットを作成します.S3バケットは,グローバルでユニークな名前を付ける必要があるので,「cqpub-datasync-example-{yourname}」などと付けてください({yourname}はご自身の名前など).
次に,DataSyncの「タスク」メニューから,「タスクを作成する」をクリックし,DataSyncのタスク作成ウィザードを開始します.
送信元(ローカルPCの共有ディレクトリ)の設定を行います.
この設定内容は以下の通りです.
項目 | 設定値 |
ロケーションタイプ | サーバーメッセージブロック(SMB) |
エージェント | 事前に作成したDataSyncエージェント |
SMBサーバ | 172.21.0.1(Hyper-VのvEthernetのIPアドレス) |
共有名 | ローカルPCの共有ディレクトリ名(syncexample) |
ユーザ | 共有ディレクトリへアクセスするユーザID |
パスワード | 共有ディレクトリへアクセスするユーザのパスワード |
送信先(AWS上のS3バケット)の設定を行います.
この設定内容は以下の通りです.
項目 | 設定値 |
ロケーションタイプ | Simple Storage Service(Amazon S3) |
S3バケット | データを保存するS3バケット |
フォルダ | データを保存するS3バケット配下のディレクトリ<br />(ここでは「syncexample」とする) |
DataSyncタスクの設定を行います.
最後に「タスクを作成する」をクリックすれば,タスクが作成されます.
このタスクで「開始」を実行すると,ローカルPCのファイルをAWS上に転送できます.ここでは手動実行にしていますが,転送はスケジュールを指定して実行することも可能です(最小1時間間隔).共有ディレクトリに任意のファイルを配置して,タスクを実行してみてください.
結果:AWS S3との連携に成功した
ファイルの転送に成功すると,送信先に指定したS3バケット内に,ローカルPCの共有ディレクトリ上にあったファイルが登録されます.