Amazon Web Services

System Managerを利用したVPC内Redshiftへの接続

Redshiftを構築するにあたって、private subnet内で構築を求められる要件はよくあるかと思います。

その場合、踏み台サーバーをpublic subnetに配置し、トンネルとして接続することになるのですが、先日のAWS System Managerのアップデートにより、セッションマネージャを利用することで踏み台サーバーをprivate subnetに配置しつつ、接続することができるようになりました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/05/aws-systems-manager-support-port-forwarding-remote-hosts-using-session-manager/

Redshift Data APIを利用することでもアクセス可能ではありますが、cliでは容易にとはいかないですし、選択肢が増えるのは大変喜ばしいです。

以下で簡単に紹介しようと思います。

 

Redshift クラスタの構築

private subnet内に構築します。

コンソールにしたがってよしなに構築しましょう

踏み台EC2サーバーの構築

同じsubnet内に構築しつつ、「arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore」のpolicyを含むroleをattachしてあげましょう。

次にもしVPCエンドポイントの設定なされていない場合は

  • ssm
  • ssmmessages
  • ec2
  • ec2messages
  • s3

を作成しましょう。

問題なく設定されている場合、セッションマネージャのコンソールにインスタンスが追加されます。

 

しかし、このバージョンのssm agentの場合、まだリモートサーバーのポートフォワーディングが対応しておらずエラーとなります。
Run commandなどを利用してアップデートしてあげましょう。
https://dev.classmethod.jp/articles/private-ec2-ssm-vpcendpoint-policy/
こちらを参照させていただきました。

Redshiftへの接続

試しにローカルより接続を試みます。


$ psql -h redshift-cluster-private.xxxxxxxx.ap-northeast-1.redshift.amazonaws.com -p 5439 -U awsuser -d dev

この状態で当然timeoutとなりました。

それでは、セッションマネージャを利用してトンネルをはります。


$ aws ssm start-session \
--target i-xxxx \
--document-name AWS-StartPortForwardingSessionToRemoteHost \
--parameters '{"host":["redshift-cluster-private.ctmohfbtomhz.ap-northeast-1.redshift.amazonaws.com"],"portNumber":["5439"], "localPortNumber":["5439"]}'

この状態で、psqlで接続します。


$ psql -h redshift-cluster-private.xxxxxxxx.ap-northeast-1.redshift.amazonaws.com -p 5439 -U awsuser -d dev
Password for user awsuser:
dev=#

簡単な紹介でしたが以上となります。
private subnetで通信を完結できることから様々なユースケースに対応できるかと思います。
弊社の案件でもprivate subent内のRedshiftは多く早速利用しようと考えています。

弊社ではTableauやGCP/AWSなどのパブリッククラウドを使ったデータ分析基盤構築コンサルティングサービスやGoogleAnalytics/AdobeAnalyticsなどの各Martechツールの導入実装コンサルティングサービスを提供しております。
お問い合わせはこちらからどうぞ。

Amazon Redshift ビルド168まとめ前のページ

Sansan:メール署名取り込み機能を設定してみた次のページ

ピックアップ記事

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

関連記事

  1. Amazon Web Services

    Amazon Redshift ビルド168まとめ

    この記事はAmazon Redshiftのアップデート情報からどのよう…

  2. Amazon Web Services

    セキュリティグループ vs ネットワークACL

    セキュリティグループ と ネットワークACL の違いセキュリティグ…

  3. Adobe Analytics

    Adobe Analytics: DWHレポートをAWSのS3バケットに配信する

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  4. Amazon Web Services

    Databricks Community Editionを使ってApache Sparkを無料で学ぶ…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  5. Amazon Web Services

    ELB (ALB・NLB・CLB) をサクッと学ぶ

    ELB(Elastic Load Balancing)とは3種類の…

  6. Amazon Web Services

    Pythonを用いたAmazon S3の署名付きURLの発行と、発行時の注意点

    こんにちは、エクスチュアの黒岩と申します。つい最近、AWSア…

カテゴリ
最近の記事
  1. 真打ち登場LOD ~TableauのEXCLUDE関数を知ろ…
  2. DataformでactAs権限に適合する設定をする
  3. 真打ち登場LOD ~TableauのINCLUDE関数を知ろ…
  4. 真打ち登場LOD ~TableauのFIXED関数を知ろう~…
  5. 真打ち登場LOD ~Tableauで苦戦するアイツを知ろう~…
  1. DBエンジニアが学ぶSnowflake

    【DBエンジニアが語るSnowflake】②このロールがすごい!!!
  2. Google Tag Manager

    GTMで任意のリンクをクリックしてn秒後トリガーを動作させる方法
  3. Fivetran

    データ連携を自動化!Fivetranの概要・料金とスプレッドシートからBigQu…
  4. Adobe Analytics

    バウンスとは-Adobe Analyticsの指標説明
  5. Adobe Analytics

    Adobe Analytics 3つの主要指標
PAGE TOP