個人的なまとめ。

てきとーに何か書きます。

個人的なAWSまとめ

仕事でAWSを使うようになって、ちょっとずつ理解してきたのでまとめておく。

1. セキュリティグループまわり
RDSで作成したDBにEC2インスタンスからアクセスする時に、

mysql -h [RDSのエンドポイント] -P [PORT] -u [USER] -p 

と打ってもログインできない時は、RDSにくっ付いているセキュリティグループの設定が間違っている可能性がある。
インバウンドルールで3306や1521に対してルールが無ければ入れない。
ここが間違っていて、全然入れなくてしばらく時間が掛かった。


2. EC2まわり
EC2で最安なのはt3a.nanoだけど、これはAMD系のCPUを使用しているからt3a系ではなくt3系を使用するようにしている。
t3aは、AMD EPYC 7000 シリーズを使用。
t3は、Xeon Platinum 8000 シリーズ を使用。
詳しくはここ。Amazon EC2 T3 インスタンス | AWS

また、t2よりもt3の方が料金が若干安く、スペックもt3の方が良いのでそっちを利用。
t2やt3の数字はバージョンを表していて、数字が大きいほど最新ということ。

t3.mediumを1ヶ月丸々使用していると、1時間約5円 × 24時間 × 30日で大体3,600円ぐらいになる。
これにEBSの使用料なども入ってくるので、大体4,000円/月という感じになる。
これだと高すぎるので、絶対に使わない時間帯(深夜帯)などは停止させたいので、下記のリンクを元に定期的に停止・実行を行ってくれる仕組みを作った。
dev.classmethod.jp
nanoやmicroなどの小さいインスタンスだと月額がそこまで高い値段にはならないが、medium以上になると結構高い料金になるので、こういうスクリプトはどんどん使うべき。
他にもdynamoDBを使用して停止・実行をするやる方も有るが、個人的にはこっちの方が楽で良い。
何より、EC2インスタンスに設定したタグをTrueからFalseに変更してやるだけで、いつでも定期的に停止・実行を行わなく出来るので、非常に楽。
複数設定して、平日はこう、土日はこうみたいな感じで設定しても良いと思う。

基本的に仕事で使う場合は、踏み台サーバを用意してそこを経由して本番サーバに入っていく。
なので踏み台にだけElastic IPを割り振っておき、本番サーバはVPCのプライベートIPのみを利用するっていう形が基本なのかも知れない。
踏み台は本番サーバに入らない時は停止させて置けばセキュリティ的にも高くなる。


思い出したら追記する。

Flutterをインストールして動かしてみる

最近Flutterが熱いらしい(?)ので、とりあえずインストールしてサンプルを動かしてみる所までやってみました。

基本的には公式のインストール方法を元に構築していくだけです!

flutter.dev

Bash系触るのが久々すぎて、bash_profile(またはzsh_profile)を変更後に、source ~/.bash_profile(~/.zsh_profile)するのを忘れていたせいで、flutterがコマンドとして認識してくれなくてちょっと時間食いました。

flutter doctorした後に必要な環境が揃っているか自動的にテストしてくれますが、先頭にビックリマークが表示されている項目に関しては推奨なだけなので別に設定しなくても問題ないです。

そもそもFlutterが注目されてるのは、Hot Reload機能が便利だからっていう事とAndroidiOSマルチプラットフォーム対応っていうのが熱いって言われている理由なのかなって思ってます。

とりあえず公式のサンプルと下記のURLを参考にしてデモまで動かしてみました。

f:id:kosuke128:20200125235733p:plain
Flutter_Sample

Macは環境構築が楽でいい感じですね。

参考にしたもの。
qiita.com

qiita.com

(研究室で)知っておくと便利なUbuntuのコマンド

Ubuntuには便利なコマンドが沢山用意されています。
全部の使い方を理解するのは絶対無理なので、研究室にいる時に覚えておけば便利だなぁって思ったコマンドを幾つか列挙します。

※lsとかifconfigとか基本中の基本のコマンドは除きました。
気になる方は、プログラマーが知っておくと良いLinuxコマンド - Qiitaを参考にすると良いかも。

コマンド名 用途 使い方 参考リンク
nkf 文字コードを変換する nkf -w --overwirte FILE名 nkfで文字コード変換 - Qiita
pdftk PDFのファイルを結合・一部切り出しが出来る pdftk Input.pdf cat output Output.pdf pdftk の基本的な使い方 - Qiita
find ディレクトリの中からファイルを探す find . -name "*.pdf" Linux findコマンド - Qiita
grep ファイル内を検索 grep "Text" file.txt grepの利用技まとめ - Qiita
xargs パイプで繋いだ時に繋ぐ前の結果を後に引き継ぐ find . -name "*.pdf" | xargs grep "text.txt" xargs のオプションいろいろ - Qiita
convert 画像の拡張子を変換する convert Input.png Output.eps ImageMagickの使用例 -- 入門 - Qiita
scp ssh経由でローカル-リモート間でファイルをコピーする scp -r /Sending_path Receive@Receive_IP:/Receive_path scpコマンド チートシート - Qiita


他にも色々あると思うけど、思い出したら追記する。

findはファイルを探すのに有能だし、xargsは他にも色々使い道があるから知っておくとすごく便利になる。
scpは送る方と受け取る方を間違えると大変な事になる事があるので、気を付けて使いましょう。
書いてませんが、historyコマンドを使うと左側に番号が書いてあるので、もう一度使いたい番号の前に!を付けて実行すれば簡単にコマンドが再実行できます。
例:

500 ifconfig
501 ls -a
502 pwd
kosuke@Desktop:~$ !501
ls -a

といった感じで簡単に実行できます。一々コピーしたり打ち直さなくて良いです。

bstファイルをちょっとカスタマイズする

Texで参考文献を書く時に、Texファイル内のthebibliography環境を作ってやるのも別に悪いとは言いませんが、個人的には.bibファイルを作って参考文献を書いた方が楽だと思ってます。

で、そんな.bibファイルを読み込む際に使う.bstファイルは各学会がテンプレートを用意してると思うのでそれに従えば良いと思ってます。

が!時にはちょっとした事情でbstファイルを書き換えたい時が来ると思います。

今回はデフォルトで入っているunsrt.bstをベースにちょこちょこっと改良しました。

続きを読む

TeX Studioで個人的に便利な機能

小ネタです.
だいぶ前にたまたま気づいた機能なので,もしかしたら既出かも知れないですが...

例えばこんな状況があったとします.
f:id:kosuke128:20180910162748p:plain

ここで,「あいうえお〜たちつてと」をitemizeして,各行の頭に\itemを付けたいとしましょう.
f:id:kosuke128:20180910162806p:plain

ここで,\itemを入れたい所にctrlキーを押しながらドラッグをすると,下の図みたいに選択することができます.

f:id:kosuke128:20180910162804p:plain

後はその状態のまま,\itemと入力すればまとめて選択した行全てに\itemが挿入されます.
f:id:kosuke128:20180910162800p:plain

連続した複数の行に同じ文字を追加したり削除する場合はこの方法が楽かなと思います.
隔行毎に処理を行う場合はvimを使うやり方が楽だと思います.