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. IT用語集

    BIツール(Business Intelligence Tool)って何?

    はじめにBIツールって聞いたことあるようなないような〜って単語ですよ…

  2. Tableau

    【基本】Tableau Server と Tableau Onlineどっちを選ぶ?

    はじめに組織内で「ダッシュボードの共有」「データソースの自動更新」を…

  3. Tableau

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

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

  4. Tableau

    ネストLODで2重のFIXED関数を使ってみる【Tableau】

    ネストLODとはネストLODとは「入れ子になっているLOD計算」のこ…

  5. Tableau

    【学生向け】TableauのアカデミックプログラムでTableauが無料で使える!!

    こんにちは!エクスチュアインターン生の柳沼です。前回の投稿から期間が…

  6. Tableau

    あなたのTableau(タブロー)が重い理由【パフォーマンスの記録】

    はじめにTableauを利用している人のほとんどが経験しているであろ…

コメント

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

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

CAPTCHA


カテゴリ
最近の記事
  1. dbt Projects on SnowflakeをTASK…
  2. AWS発のAIエージェントIDE「Kiro」を使用した仕様駆…
  3. AWS発のAIエージェントIDE「Kiro」を使用した仕様駆…
  4. TableauとSnowflakeを接続する方法
  5. 【dbts25】Snowflake×PostgreSQLのニ…
  1. Google Analytics

    Google Analyticsのセグメント機能について②
  2. Google Apps Script(GAS)

    【Google App Script】GASを利用してslackに投稿するbot…
  3. IT用語集

    インスタンス(化)(Instance)って何?
  4. Adobe Analytics

    AdobeAnalytics: スマホのスワイプにカスタムリンクを実装する
  5. Google Cloud Platform

    GCSへのSnowflake Open Catalogによるデータレイクハウス導…
PAGE TOP