はじめてのAWS Snowcone – (3) AWS OpsHub for Snow Family のインストール

2021.12.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

しばたです。

先週土曜日にデバイスの注文をしたのですがステータスがなかなか変わらず、サポートに問い合わせたところ「一時的な問題により配送を止めている *1」との連絡を受けてしまいました。
実機を試すことができるのはもう少し先になりそうです...

ということで本記事ではSnowconeの各種設定を行うためのツールであるAWS OpsHub for Snow Familyのインストール方法を解説します。

目次

免責事項

本シリーズは実際にSnowconeを試すことで理解を深めることを目的としています。
このため執筆時点ではAWS Snowconeの仕組みや仕様について誤解している部分がある可能性があります。

記事の内容に誤りがあった場合は随時修正していく予定ですが、記事の内容が100%正しいことを保証できない点はご了承ください。

AWS OpsHub for Snow Family とは?

AWS OpsHub for Snow Family(以後AWS OpsHub)はSnowconeとSnowball EdgeをGUIで管理するためのソフトウェアとなります。
クロスプラットフォームなアプリケーションで本日時点で以下のOSで利用可能となっています。

  • Windows : Windows 7以降
  • Mac : Mac OS X 10.10以降
  • Linux : Ubuntu 14以降およびFedora 24以降 (AppImageでの提供)

ダウンロードとインストール

AWS OpsHubは以下のページからダウンロード可能です。

Snowconeを注文済みの場合はジョブの詳細ページからも遷移可能です。

ここからご利用のOSに合わせてインストーラーをダウンロードします。
今回はWindows向けのインストーラー(aws-opshub-snow-setup.exe)を選びます。

インストーラーを実行すると直ちにインストールが開始されます。
管理者権限は要求されませんでした。

インストール完了後は自動的にアプリケーションが起動します。

言語を「日本語」に変えて「次へ」進みます。

これで利用開始画面に切り替わります。

ここからはデバイスが到着した後でロックを解除する必要があります。
(Snowconeはロックされた状態で出荷され、利用者がデバイスを受け取った後に解除作業を行う必要があります)

ちなみに本日時点のバージョンはVer.1.11.1.0でした。

インストール先情報

Windows版のAWS OpsHubは「\Local\Programs\aws-ops-hub」にインストールされていました。
構成情報を見るにElectronアプリケーションの様です。

補足1. Snowball Edge Clientについて

AWS OpsHubはGUIアプリケーションですが、CUIアプリケーションにSnowball Edge Clientがあります。
これは名前の通り元々はSnowball Edgeを管理するためのツールでしたがSnowconeも管理できるそうです。

Snowball Edge ClientもAWS OpsHub同様クロスプラットフォームなアプリケーションでリソースページからダウンロードできます。

せっかくなのでこちらもインストールしてみます。
はWindows向けのインストーラー(snowball-client-.msi)をダウンロードして実行します。

基本的にはMSIインストーラーの指示に従うだけでOKです。
こちらはインストール時に管理者権限を要求されます。

インストール後はsnowballsnowballEdgeの2コマンドが使える様になります。

snowballコマンドはSnowballデバイスとのデータ転送用、snowballEdgeコマンドがデバイス管理用の様です。
Snowconeを扱う際はsnowballEdgeコマンドの方を使うことになりそうです。

補足2. AWS CLI / AWS Tools for PowerShellでの管理

AWS OpsHubやSnowball Edge Clientはデバイス管理のツールですが、Snow Familyのサービス側の管理はAWS CLIやAWS Tools for PowerShellで行います。

たとえばジョブ情報を取るにはaws snowball list-jobsaws snowball list-jobコマンドを使います。

# AWS CLIでジョブの一覧を取得
C:\> aws snowball list-jobs
{
    "JobListEntries": [
        {
            "JobId": "JIDfdf3a35c-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "JobState": "New",
            "IsMaster": false,
            "JobType": "IMPORT",
            "SnowballType": "SNC1_HDD",
            "CreationDate": "2021-12-11T14:05:09.035000+09:00",
            "Description": "my-first-snowcone-job"
        }
    ]
}

# AWS CLIで個別ジョブの情報を取得
C:\> aws snowball describe-job --job-id "JIDfdf3a35c-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
{
    "JobMetadata": {
        "JobId": "JIDfdf3a35c-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "JobState": "New",
        "JobType": "IMPORT",
        "SnowballType": "SNC1_HDD",
        "CreationDate": "2021-12-11T14:05:09.035000+09:00",
        "Resources": {
            "S3Resources": [
                {
                    "BucketArn": "arn:aws:s3:::shibata-snowcone-test-2021",
                    "KeyRange": {},
                    "TargetOnDeviceServices": [
                        {
                            "ServiceName": "NFS_ON_DEVICE_SERVICE",
                            "TransferOption": "IMPORT"
                        }
                    ]
                }
            ],
            "Ec2AmiResources": [
                {
                    "AmiId": "ami-018b9904c8f8fc655",
                    "SnowballAmiId": "s.ami-018b9904c8f8fc655"
                },
                {
                    "AmiId": "ami-0482ebcc91d53dd90",
                    "SnowballAmiId": "s.ami-0482ebcc91d53dd90"
                },
                {
                    "AmiId": "ami-0ce71111a20124b14",
                    "SnowballAmiId": "s.ami-0ce71111a20124b14"
                },
                {
                    "AmiId": "ami-0e96d810764e93bd4",
                    "SnowballAmiId": "s.ami-0e96d810764e93bd4"
                }
            ]
        },
        "Description": "my-first-snowcone-job",
        "KmsKeyARN": "arn:aws:kms:ap-northeast-1:xxxxxxxxxx:key/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "RoleARN": "arn:aws:iam::xxxxxxxxxx:role/service-role/SnowFamilyS3Import-my-first-snowcone-job-2",
        "AddressId": "ADIDb524b1da-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "ShippingDetails": {
            "ShippingOption": "STANDARD"
        },
        "SnowballCapacityPreference": "T8",
        "Notification": {
            "SnsTopicARN": "arn:aws:sns:ap-northeast-1:xxxxxxxxxx:my-snowcone-topic",
            "JobStatesToNotify": [
                "Cancelled",
                "Complete",
                "InProgress",
                "InTransitToAWS",
                "InTransitToCustomer",
                "New",
                "PreparingAppliance",
                "PreparingShipment",
                "WithAWS",
                "WithAWSSortingFacility",
                "WithCustomer"
            ],
            "NotifyAll": false
        },
        "DeviceConfiguration": {
            "SnowconeDeviceConfiguration": {
                "WirelessConnection": {
                    "IsWifiEnabled": false
                }
            }
        },
        "OnDeviceServiceConfiguration": {}
    }
}

PowerShellコマンドレットだとGet-SNOWJobListGet-SNOWJobを使います。

# AWS Tools for PowerShellでジョブの一覧を取得
C:\> Get-SNOWJobList

CreationDate : 12/11/2021 5:05:09 AM
Description  : my-first-snowcone-job
IsMaster     : False
JobId        : JIDfdf3a35c-xxxx-xxxx-xxxx-xxxxxxxxxxxx
JobState     : New
JobType      : IMPORT
SnowballType : SNC1_HDD

# AWS Tools for PowerShellで個別ジョブの情報を取得
C:\> Get-SNOWJob -JobId "JIDfdf3a35c-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

JobMetadata                       SubJobMetadata
-----------                       --------------
Amazon.Snowball.Model.JobMetadata {}

C:\> Get-SNOWJob -JobId "JIDfdf3a35c-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -Select JobMetadata

AddressId                    : ADIDb524b1da-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ClusterId                    :
CreationDate                 : 12/11/2021 5:05:09 AM
DataTransferProgress         :
Description                  : my-first-snowcone-job
DeviceConfiguration          : Amazon.Snowball.Model.DeviceConfiguration
ForwardingAddressId          :
JobId                        : JIDfdf3a35c-xxxx-xxxx-xxxx-xxxxxxxxxxxx
JobLogInfo                   :
JobState                     : New
JobType                      : IMPORT
KmsKeyARN                    : arn:aws:kms:ap-northeast-1:xxxxxxxxxx:key/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
LongTermPricingId            :
Notification                 : Amazon.Snowball.Model.Notification
OnDeviceServiceConfiguration : Amazon.Snowball.Model.OnDeviceServiceConfiguration
RemoteManagement             :
Resources                    : Amazon.Snowball.Model.JobResource
RoleARN                      : arn:aws:iam::xxxxxxxxxx:role/service-role/SnowFamilyS3Import-my-first-snowcone-job-2
ShippingDetails              : Amazon.Snowball.Model.ShippingDetails
SnowballCapacityPreference   : T8
SnowballType                 : SNC1_HDD
TaxDocuments                 :

終わりに

今回はここまでです。
デバイスの到着が待ち遠しくて仕方ありません。

脚注

  1. 後から教えて頂いたところシステムメンテナンスだった模様。これは仕方ない...