本文へスキップ
141 views
B!0X

VPC内で動くGlue開発エンドポイントでPyCharmを使用する方法

vpc-glue-pycharm

基本は以下の記事に従う。
チュートリアル: 開発エンドポイントで PyCharm Professional をセットアップする

しかしこの記事はVPCの外で動く開発エンドポイントを想定しているためVPC内で動くエンドポイントの場合は大きく手順が違ってくる。

VPC内のエンドポイントを扱う際に気をつけること

  • プライベートなVPC内にいるので直接触れない
  • SFTPでコネクションを貼るために踏み台サーバーを作成する必要がある
  • さらにPyCharmで接続するためにローカルでsshトンネルを作る必要がある

そもそもVPC内にエンドポイントを作る理由

GlueがデータソースとしてS3だけを相手する場合は別にVPCの外でいいが、JDBC系をデータソースとして扱う際にはVPCの中に置く必要がある。

構成図

空白の UML - 空白の UML.png

環境・前提

  • Mac OS
  • PyCharm Professional
  • チュートリアルの前提条件 がJDBC用のVPCでの開発エンドポイントまで終わっていること
  • チュートリアルの前提で作成したエンドポイントに公開鍵を設定しておく

実装

1. 踏み台サーバーの作成

  • よくある方法で踏み台サーバーの作成
  • sshキーだけ忘れないように取得
  • 開発エンドポイントと同じVPCに作成
  • 開発エンドポイントが属しているVPCは開発エンドポイントをクリックしたら出てくるエンドポイントの詳細で確認可能

2. private subnetのSSHセキュリティグループの設定

  • private subnetのセキュリティグループで踏み台が置かれているpublic subnetからだけsshを許可する

3. SSHトンネルの作成

  • 以下の様にSSHトンネルを作成

ssh -i <踏み台サーバーのpem> ec2-user@<踏み台サーバーのpublic dns> -L <設定したいローカルポート>:<開発エンドポイントのプライベートアドレス>:22 -N

  • うまく行かなくてデバッグをしたいときなどはvオプションを付与する
  • 開発エンドポイントのプライベートアドレスは詳細で確認可能

4. PyCharmの設定

  • コードとライブラリをチュートリアルに書かれているようにセットアップする
  • デプロイの部分が大きくチュートリアルと違う
  • Hostはローカルホストを指定
  • Portはトンネルで設定したローカルポートを指定
  • User nameはglue
  • AuthenticationはKey pair OpenSSH
  • Private key pathは開発エンドポイントに設定した公開鍵の秘密鍵のパス(EC2の秘密鍵ではない)
  • Test Connectionして成功すればOK
    スクリーンショット 2020-03-15 20.48.09.png

あとはチュートリアルと同じ用にやればOK。

その他

  • 開発エンドポイントには公開鍵を複数設定することができるので、鍵の共有をする必要がない
  • PyCharmで開発しているときはSSHトンネルが生きている必要がある

参考

チュートリアル: 開発エンドポイントで PyCharm Professional をセットアップする
Securely Connect to Linux Instances Running in a Private Amazon VPC | AWS Security Blog
AWS GlueでSpark開発をする - おおたの物置
リモート PyCharmによるデバッグ - ヘルプ | PyCharm

関連事例

  • データ分析支援

    事例:過去実績を提案に活用する分析の仕組み

    広告代理店との取り組みです。同社は過去実績の示唆を次の提案へ反映し、結果をどのように予測したか、その背景まで提案先のクライアントへ説明できるようになりました。KDOT は案ごとの見込みと判断材料を比較できる仕組みを業務アプリとして実装しました。さらに業務アプリの中核となる処理ロジックと機械学習モデルについて、特許手続きを担う弁理士が技術の新規性や工夫を検討するための資料を作成しました。その後この発明には特許が付与されました。

  • データ基盤構築 / 技術顧問(技術企業向け)

    事例:効果検証の分析処理基盤

    効果検証を提供する分析会社との取り組みです。同社は分析者の人数に比例してしか売上と利益を伸ばせない事業の形を、効果検証をプロダクトとして提供することで変革しようとしていました。手法とモデルは同社のまま、社内では開発できなかった、データと機械学習の重い推定を製品として動かす仕組みの開発を、開発支援会社の KDOT に任せました。推定を案件ごとの手作業ではなくシステムで実行できるようになったことで、同社は人数に比例しない形で売上と利益を伸ばすことを目指せるようになりました。

開発の相談先をお探しですか。

この記事に関わることについてご相談がある方はお問い合わせください。

KDOT についてお問い合わせ