下式の導出してみました.
Sympyに感謝です.
一般的には,AWSをプロキシサーバとして使うためのものかと思いますが,今回はプロキシ環境を抜けるためにAWS経由で外部に接続する環境を作ったのでその備忘録です.
基本的には, AWSのEC2とポート転送を利用して企業の網を抜けた話 - railsがんばる子 を参考にしましたが,もっとシンプルに作りました.
見よう見まねなので正しいのかはわかりません.
ここは出来ることが前提なので適当なサイトを参照してください.プロキシ環境を作るだけなので,EC2の無料枠でt2.microのubuntu18.04を起動する.
インストール
sudo apt install squid
設定ファイルですが,一応オリジナルはコピーしておきます.
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
squid.confはいろいろな設定がありますが,今回は余計なことはせずにセキュリティ的には問題がありますが全てのアクセスを許可します. AWSへのアクセスの段階で十分セキュリティ対策をしているので大丈夫かと思います.
# And finally deny all other access to this proxy
http_access allow all ←追加
http_access deny all
ポートの設定も必須ですがオリジナルの3128のままにしておきます.
# Squid normally listens to port 3128 http_port 3128
設定を反映し起動します.
sudo systemctl reload squid
起動されていない場合は起動します.
sudo systemctl start squid
自動起動にする場合は以下のとおり.
sudo systemctl enable squid
参考サイト
AWS EC2でWEBサーバーを立ち上げよう(Apache編) - Traffic Jamのとおりです.
AWSのインターフェイスが現時点で少し変わっていますが,「セキュリティグループ」の「インバウンド」の「編集」より,「カスタム TCP ルール」で上記のポート「3128」を追加します.
多分CLIでも出来るので分かれば追記します.
ここまででssh接続は可能です.
今回はwindows10のWSL環境でsshのポートフォワーディングを行います.
localhostの3333に転送します.
オプションとして,
をつけます.
sudo ssh -i [key].pem ubuntu@[パブリック DNS (IPv4)] -L 3333:localhost:3128 -f -N
バックグラウンドで実行しているので切断するときは,「ps aux」でPIDを調べてkillコマンドを使うしかない?(自信がないです.)
あとは,インターネットオプションで「 接続 」-「 LANの設定 」- 「プロキシサーバー」で, アドレス: localhost,ポート: 3333(なんでもいい)とすれば完了です.
windows10限定ですが標準でモバイルホットスポット機能が付いており,wifiが使えるノートPC等ではそれ自身をwifiの親機とすることができるので設定しておきました.
sshで接続時に-gオプションを追加
-g : リモートホストが転送されたローカルなポートに接続することを許可
sudo ssh -i [key].pem ubuntu@[パブリック DNS (IPv4)] -L 3333:localhost:3128 -f -N -g
「設定」-「ネットワークとインターネット」-「モバイルホットスポット」からモバイルホットスポットをオンにして「インターネット接続を共有する」のwifiを選択する.
コントロールパネルのネットワーク接続に新たな接続が追加されているはずです.
接続するモバイル機でwifiを検索して接続した後,上記で新たに追加された接続のIPアドレスとポート番号(今回は3333)を設定することで接続可能
参考サイト
結構苦戦しました・・・
境界部分で三重対角にならないかと思いますが,どうすればTDMAに持ち込めるかご存知でしょうか?
computational-sediment-hyd.hatenablog.jp
の続きです.
数値計算は,特に変わったことはせずに普通の平面二次元計算です.
ちょっとサボって連続式だけに以下のような条件を付け加えました.
if == 0
if
else :
else if == 0
if
else :
ぎりぎり質量が保存される感じです.
今後修正します.
computational-sediment-hyd.hatenablog.jp
numba.jitでまたまた衝撃的な速度です. 時間がかかり過ぎるので,計算時間を120分の1にしています.
なんと600倍です.意味がわかりません.
コードはこちら
Wuさんの本のDry Bedの処理のところ(6.1.4 Wetting and drying technique)が面白いです.
computational-sediment-hyd.hatenablog.jp
をふまえて,
computational-sediment-hyd.hatenablog.jp
の続きです.
テストコードは前回と一緒です.
環境について,AWS-EC2の環境について,容量不足でintel compilerが入らなかったので,前回よりストレージを無料枠の最大の30GBまで大きくしました.
前回と少し結果が変わったので前回の条件のものも再記します.
もう少しいろいろ試してみます.
computational-sediment-hyd.hatenablog.jp
の詳細編です.
jupyterはこちら
今回は,多次元データを取扱いのため,xarrayモジュールを使って,NetCDF形式で出力.
ds = xr.Dataset({'dz': (['x','y'], ZZZ)}, coords={'xc': (('x', 'y'), Qx), 'yc': (('x', 'y'), Qy)}) ds.to_netcdf('dz.nc')
QuadMeshメソッドを使うことにより,曲線座標系の描画が非常に楽.
Resampling Grids — GeoViews 1.6.2.post2+g5918985-dirty documentation
Plotting — xarray 0.11.3+1.ga5cacb7 documentation
Serialization and IO — xarray 0.11.3+1.ga5cacb7 documentation
intelのHP内に,Free Software Toolsのページあり,「Supporting qualified students, educators, academic researchers and open source contributors」と記載されております. そこで,Open Source Contributorの項目を辿ると,非商用ライセンスの申し込みのページがあり,個人情報やopen sourceの公開ページ(私はこのブログのgithubを記載),Project Description(私は河川の数値解析をオープンソースとして公開していると記載)を記載し,申し込みました.
すると,数日後intel社より,シリアルナンバー等が送られてきました. しかも,Intel® Parallel Studio XE Cluster Editionというフルパッケージです(50万円相当).
intel社さん,ありがとうございます.頑張ってopen sourceをアップします.
提供いただいたのは良いのですが,手元にlinux環境がありません. 簡単に作れそうな環境として,WSL,AWSを利用しようと考えており,とりあえずWSLのみテストしました.