Windowsにログイン@EC2

表題を行う必要があり、初めてEC2にWindowsのインスタンスを起動した。

■ 環境

  • Windows 2016
  • AWS EC2
  • Microsoft Remote Desktop
  • macOS High Sierra

■ EC2

Windows Server 2016“のAMIから起動し、RDPを許可したSecurityGroupも作成し設定してある。インスタンスが起動した後、さてどうやれば良いのか?と悩んだが、ManagementConsoleのインスタンス一覧でWindowsのインスタンスを選択した状態の時に、上部メニューで”接続“が有効になることに初めて気が付いた。

接続“を押すと下記が表示される。

リモートデスクトップファイルのダウンロード“から”.rdp“ファイルをダウンロードした。”Microsoft Remote Desktop“アプリがインストールされていればダブルクリックで画面が表示されるはずである。

ユーザ名は既に入力されている”Administrator“まま。これはManagementConsoleでも表示されていた内容である。パスワードはManagementConsoleで”パスワードの取得“から得ることができる。キーペアのファイルを選択し”パスワードの複合“を押すとパスワードが得られる。

これでログインが可能となった。ただし…コピペができなかったのとキーボードがUS配列であったので長いパスワードを入力するのに手間取った。。

以上。

特定のAttributionのみ取得

DynamoDBにおいて表題を行いたい。

■ 環境

  • AWS DynamoDB
  • awscli
  • macOS High Sierra

■ scan

`scan`で全件取得をしたいのだが、欲しい属性は1つだけである。その場合には下記のようにして取得することができた。

$ aws dynamodb scan --table-name example --projection-expression "attribute1"

複数の属性を取得したい場合には”,”で繋げれば良い。

$ aws dynamodb scan --table-name example --projection-expression "attribute1,attribute2"

以上。

■ 関連

DynamoDBで全件取得

DynamoDB local

表題の件について。使うようになって開発環境としてローカルにあると嬉しい。

■ 環境

  • Java 1.8.0_101
  • awscli 1.15.50
  • AWS DynamoDB
  • macOS High Sierra

■ DynamoDB local

DynamoDB ローカル(ダウンロード可能バージョン)のセットアップ
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html

上記のページからダウンロードする。東京リージョンの”tar.gz“をダウンロードした。

適切なディレクトリでダウンロードした”dynamodb_local_latest.tar.gz“を展開する。

$ tar zxf dynamodb_local_latest.tar.gz

展開して出て来た”README.txt“を参照し、下記の通り実行する。

$ java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar
Initializing DynamoDB Local with the following configuration:
Port:    8000
InMemory:    false
DbPath:    null
SharedDb:    false
shouldDelayTransientStatuses:    false
CorsParams:    *

実行できたようなので、`awscli`で繋いでみる。接続については下記を参照した。

ローカルエンドポイントの設定
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.Endpoint.html

$ aws dynamodb list-tables --endpoint-url http://localhost:8000
{
    "TableNames": []
}
$

テーブルが空っぽで返ってきた。デフォルトの接続先として設定してある東京リージョンには既存のテーブルがいくつか存在しているはずなので、確かにローカルにアクセスされているようだ。これでいろいろ実験が捗るかもしれない。

以上。

DynamoDBで全件取得

表題の通り。

■ 環境

  • AWS DynamoDB
  • awscli
  • macOS High Sierra

■ scan

`scan`サブコマンドで全件取得することができる。

$ aws dynamodb scan --table-name example
  :
    ],
    "Count": 1200,
    "ScannedCount": 1200,
    "ConsumedCapacity": null
}
$

件数が多いともちろん全件取得すると出力も大きくなるので必要に絞ると良い。

$ aws dynamodb scan --table-name example --max-items 100
  :
    ],
    "Count": 1200,
    "ScannedCount": 1200,
    "ConsumedCapacity": null,
    "NextToken": "eyJFeGNsdXNpdmVTdGFydEtleSI6IG51bGwsICJib3RvX3RydW5jYXRlX2Ftb3VudCI6IDEwMXXX"
}
$

–max-items“を指定してみたところ、指定した100件が得られ、さらに”NextToken“が表示されていた。これを使えばpaging的に取得できるようだ。下記で試してみた。

$ aws dynamodb scan --table-name example --max-items 100 --starting-token 'eyJFeGNsdXNpdmVTdGFydEtleSI6IG51bGwsICJib3RvX3RydW5jYXRlX2Ftb3VudCI6IDEwMXXX'
  :
    ],
    "Count": 0,
    "ScannedCount": 0,
    "ConsumedCapacity": null,
    "NextToken": "eyJFeGNsdXNpdmVTdGFydEtleSI6IG51bGwsICJib3RvX3RydW5jYXRlX2Ftb3VudCI6IDIwMXXX"
}
$

内容を確認して行くと、ちょうど後続の100件が取得できたようである。”NextToken“の値が非常に似通っているが、よくよく見てみると異なっていることがわかる。

以上。

■ 関連

tableの件数を知りたい@DynamoDB

特定のAttributionのみ取得

tableの件数を知りたい@DynamoDB(2)

表題の件。昨日とは別手段。

■ 環境

  • DynamoDB
  • awscli 1.15.40
  • macOS High Sierra

■ DynamoDB

前回のエントリでは下記で取得した。

$ aws dynamodb scan --table-name example --select COUNT

しかし、`scan`サブコマンドであるからデータが少ない今だから即数値が取得できるのかな?他に手段はないのかな?と疑問に思い継続調査。

下記手段でも取得できることを確認した。

$ aws dynamodb describe-table --table-name example
{
    "Table": {
  :
        "TableName": "example",
  :
        "TableSizeBytes": 49594,
        "ItemCount": 600,
  :
    }
}
$

`describe-table`サブコマンドで取得することができていた。`scan`であると全データを一時的にでも検索しているのだろうか?となるとデータ量が増えた時に応答時間が遅くなるかもしれない?料金も掛かる?といったことが発生するのかと疑問に思うことがいくつか。

とりあえず今後は`describe-table`サブコマンドで取得することにする。

以上。

■ 関連

tableの件数を知りたい@DynamoDB