Tableau

【手順解説】MacでRedshiftに接続できない時の原因と対処法【Tableau経由】

はじめに

今回は、私(ヨナハ)が実際に業務でトラブったことをシェアしたいと思います。
状況としては、
・リモートデスクトップ(Linux)でRedshiftに接続することはできる。
・Macで「RedshiftをデータソースとするTableauファイル」が開けない。
という感じです。
会社でTableau Server / Onlineを利用するMacユーザーであれば、今後起こり得るトラブルなのでぜひ参考にしてみて下さい。

実行手順およびその結果

①Macでターミナルを開いて以下のコマンドを実行(psqlインストール)
$ brew install postgresql

※既にPostgreSQL(ポストグレエスキューエル)をインストールしている方はこの手順をスキップして下さい。
※この段階でエラーが出る方はHomebrewをインストールして下さい(参考
<解説>
PostgreSQLは通称ポスグレと呼ばれており、SQLを用いたデータベースの一つです。
また、HomebrewはMacでプログラムをインストールしたりするシステムです(雑

②psqlを用いて接続にトライ
$ psql -h (会社によって違う).redshift.amazonaws.com -d (データベース名) -U (接続ユーザー名) -p (ポート名)

<結果>
psql: error: could not connect to server: could not connect to server: Operation timed out
Is the server running on host “(会社によって違う).redshift.amazonaws.com” (接続先IPアドレス) and accepting
TCP/IP connections on port (接続先ポート)?
<解説>
psqlのオプションは以下の通りです。
-h (ホスト名):実行するサーバーのホスト名を指定。
-d (データベース名):接続するデータベースの名前を指定。
-U (接続ユーザー名):指定したユーザー名でデータベースへ接続。
-p (ポート名):サーバーが接続監視を行うポート名を指定。通常4桁。

③telnetでトライ
$ telnet (ホスト名) (ポート名)

<結果>
Trying (接続先IPアドレス)…
telnet: connect to address (接続先IPアドレス): Operation timed out
telnet: Unable to connect to remote host
<解説>
ホストに接続できないとのことなので、どうやら私が以前ホストを書き換えていた可能性が浮上した(全く記憶はないが
応答したIPアドレスがパブリックのものだったので、ドメインの解決に問題があると分かった。

④アドレスに直で繋いでみる
$ psql -h (②とは異なるホスト名) -d (データベース名) -U (接続ユーザー名) -p (ポート名)
→パスワードの要求が出たら入力。

<結果>
Password for user (接続ユーザー名):
psql (サーバー情報とか)
SSL connection (protocol、cipher、bitsの情報とかが色々)
Type “help” for help.
(データベース名)=> psql -h (会社によって違う).redshift.amazonaws.com -d (データベース名) -U (接続ユーザー名) -p (ポート名)
(データベース名)->
<解説>
②と異なり、大元のホスト名を指定して直で接続した。

⑤Redshiftのドメインがどこで解決されているかを調査
$ nslookup -h (会社によって違う).redshift.amazonaws.com

<結果>
Server: (サーバー名)
Address: (IPアドレス情報)
Non-authoritative answer:
(会社によって違う).redshift.amazonaws.com canonical name = (会社によって違う).compute.amazonaws.com.
Name: (会社によって違う).compute.amazonaws.com
<解説>
nslookupを用いてDNS情報を取得した。
→DNSとは「ドメイン(人間がわかりやすい住所)」と「IPアドレス(コンピュータで管理する住所)」の対応表のこと。
調べた結果、Redshiftのドメインがローカルで解決されていることを知った。
→IPアドレスがローカルのものだった。
ここで、hostsを書き換えている説が濃厚となった。

⑥hostsを確認
MacのFinderの検索窓で「hosts」と検索すれば、「hosts」というファイルが見つかるのでそれを開く

<結果>
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
(hosts名) (会社によって違う).compute.amazonaws.com
~
~
~
<解説>
hostsが正しくないことが分かった。
本来であれば最後の行が(hosts名)だけになるはずだからである。

⑦hostsを書き換えてDNSのキャッシュをクリアしpsqlに再接続
hostsの編集:ターミナル版とテキストエディット版
DNSのキャッシュをクリア:$ sudo killall -HUP mDNSResponder
psqlに再接続:$ psql -h (会社によって違う).redshift.amazonaws.com -d (データベース名) -U (接続ユーザー名) -p (ポート名)
(psqlは②と同じ)

<結果>
Last login: (日付と時間)
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
$ sudo killall -HUP mDNSResponder
Password:
$ psql h (会社によって違う).redshift.amazonaws.com -d (データベース名) -U (接続ユーザー名) -p (ポート名)
Password for user exture:
psql (12.2, server 8.0.2)
SSL connection (protocol、cipher、bitsの情報とかが色々)
Type “help” for help.
(データベース名)=>
<解説>
成功。

まとめ

今回の原因は「Redshiftの名前解決をVPNで行っていた」ということでした。
私と同じミスをした方の参考になれば幸いです。
最後まで目を通していただきありがとうございました。

コラム:Web解析から顧客体験分析(CXA)に前のページ

無料のWindows10仮想マシンをEdge/IE11検証用途で使う次のページ

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Tableau

    Tableau:KPI達成状況を把握出来るグラフを作る

    こんにちは。エクスチュア渡部です。今回はTableauで↑のように…

  2. Tableau

    Tableau:分かりやすいLOD – EXCLUDE編

    こんにちは、エクスチュアの渡部です。TableauのLODブログ第…

  3. Tableau

    動的なリファレンスラインで個別に閾値(しきい値)を設定【Tableau】

    完成形リファレンスラインを動的に設定することのメリットリファレン…

  4. Tableau

    Tableauで小笠原諸島等を東京都から除外する方法

    こんにちは。エクスチュアの田中寛人です。今回はTableauの…

  5. Tableau

    Tableauとは

    こんにちは!インターン生の市川です。少し前にTableauというソフ…

  6. Tableau

    ツールヒントの中にVizを埋め込む理由・方法

    ツールヒントの中にVizを埋め込むとはこちらがツールヒントの中に埋め…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


カテゴリ
最近の記事
  1. Looker Studioで日付フィルターの開始日・終了日の…
  2. Streamlitでdbt-elementary風ダッシュボ…
  3. Adobe WebSDK FPIDでECIDの復元を検証
  4. dbt Projects on Snowflakeで作成した…
  5. Dataformでtype:’increment…
  1. ObservePoint

    実はSEO以上の効果がある!?Webサイトの「監査」とは?
  2. Google Analytics

    Google Analytics: アプリSDKのclientIDを取得する
  3. DBエンジニアが学ぶSnowflake

    【DBエンジニアが学ぶSnowflake】①Snowflakeを語りたい!
  4. Adobe Analytics

    Adobe Summit 2020レポート: Customer Journey …
  5. Google Tag Manager

    【GA4/GTM】dataLayerを活用しよう
PAGE TOP