2019年10月30日水曜日

AWSの無料枠って実質的にはいくらなのか

無料枠についての説明は多いのですが、実質何円相当なのか、というのがないので計算してみたときのメモです。基本的には月額(30日)で計算しています。


結論的には、無料のつもりで使い続けると金額が比較的大きいので気をつけるのはEC2とDBでしょうか。あとはSageMakerとかインスタンスを使うものは当然高いです。

EC2の無料枠の計算

750 時間/月の Linux、RHEL、または SLES t2.micro インスタンスの使用

Linuxで計算すると、

t2.micro1変数1 GiBEBS のみ0.0116USD/時間

https://aws.amazon.com/jp/ec2/pricing/on-demand/

の表にあるので、0.0116USD * 24 時間 *30 日 = 8.352 USD

これが12か月で100.224USDが無料枠です。

S3の無料枠


5 GB の標準ストレージ  0.023USD * 5 
20,000 件の Get リクエスト 20 * 0.00037 USD
2,000 件の Put リクエスト 2 * 0.0047USD

・・・月額相当 0.1318 USDでした。1年で1.5816USDです。

S3 標準ストレージ
最初の 50 TB/月0.023USD/GB


PUT、COPY、POST、または LIST リクエストリクエスト 1,000 件あたり 0.0047USD
GET、SELECT および他のすべてのリクエストリクエスト 1,000 件あたり 0.00037USD



RDSの無料枠


750 時間/月の db.t2.micro データベース使用 (適用可能な DB エンジン)
20 GB の汎用 (SSD) データベースストレージ
20 GB のデータベースバックアップおよび DB スナップショット用ストレージ

Postgresで


MySQLは0.026USDで10%くらい安い。

24*30*0.028 = 20.16USD/月

241.92USD が年間の無料枠です。


データベースが思った以上に高くつきますね。

Amazon DynamoDB


※無料利用枠は、いつでも毎月無料の枠と同じ。

25 GB のデータストレージ
毎月最初の 25 GB の保管は無料 0.285 * 30 = 7.125USD 相当
それ以降は月額 0.285USD/GB

DynamoDB ストリームからのストリーム読み込みリクエスト 250 万回
25 * 0.0228 = 0.57 USD 相当

毎月最初の 2,500,000 の DynamoDB ストリームの読み込みリクエストは無料
それ以降は 10 万の DynamoDB ストリーム読み込みリクエストごとに 0.0228USD

AWS のサービス全体での合計データ転送 (アウト) 1 GB もともと 0 USD
データ転送送信 (アウト) 1 GB/月まで 0.00USD/GB

https://aws.amazon.com/jp/dynamodb/pricing/on-demand/


Cloudwatch


10カスタムメトリクスおよび10アラーム 0.30 USD
100万件のAPIリクエスト 10USD 

ダッシュボード 毎月最大 50 個のメトリクスに対応するダッシュボード 3 個 * 3 = 9 USD


アラーム 10 件のアラームメトリクス (高分解能アラームには適用されません) * 0.3 = 3 USD

ログ 5 GB データ 0.033 USD * 5 = 0.165 USD

イベント カスタムイベントを除くすべてのイベントが対象

SageMaker


※初めて SageMaker リソースを作成した最初の月から 2 か月間

モデル構築のためのノートブック利用に t2.medium または t3.medium インスタンスを 1 か月あたり 250 時間
0.0608 USD

トレーニングに m4.xlarge または m5.xlarge インスタンスを 50 時間
0.361 USD

リアルタイム推論とバッチ変換用の機械学習モデルのデプロイに m4.xlarge または m5.xlarge インスタンスを追加で 125 時間
1.445 USD

あまり性能の高いインスタンスではないので安いです。


AWS Lambda

毎月無料枠

1,000,000 件のリクエスト/月 0.2 USD 相当

400 GB-秒 1 か月あたりのコンピューティング時間。0.00666668 USD相当

https://aws.amazon.com/jp/iot-core/pricing/

AWS IoT Core 

接続時間 2,250,000 分
メッセージ 500,000 件
レジストリまたはデバイスシャドウのオペレーション 225,000 回
トリガールール 250,000 件、実行アクション 250,000 件
例えば、50 台のデバイスを使うワークロードを実行する場合、無料利用枠では各デバイスを以下のように使用できます。
毎日 24 時間接続
1 日あたり 300 件のメッセージ交換 (メッセージサイズが 5 KB 以下の場合)
1 日あたり 130 回のレジストリまたはデバイスシャドウオペレーションの実行 (レジストリまたはデバイスシャドウのレコードサイズが 1 KB 以下の場合)
アクション 1 件を実行するルールの 1 日あたり 150 件の実行 (処理するメッセージサイズが 5 KB 以下の場合)

Amazon Lightsail


3.5 USD 相当が 1か月無料


Elastic Load Balancer

0.0243USD/Application Load Balancer 時間 (または 1 時間未満)
0.008USD/LCU 時間 (または 1 時間未満)

ちょっと細かいのであとで







2019年10月27日日曜日

gitのローカルからgithubにマージしてやり直すとき

git commitまではOKで、git push origin masterを違うディレクトリでしてしまい、
違うディレクトリが入ってしまった件。

revertしてgitをやり直し

先にNGだった例

# これはNG
git reset --hard ORIG_HEAD
# これはNG
git revert b7cffe03b6e9b05b5b5e429e178e12b6f081f1a8
# これはNG
git revert HEAD
# こんなエラーが出ます
error: Commit b7cffe03b6e9b05b5b5e429e178e12b6f081f1a8 is a merge but no -m opti
on was given.
fatal: revert failed

成功した方法と、を調べる方法

# グラフィカルにログを見れる(分かり難いかも)
git log --graph --oneline
# これで親がわかる
git show

commit 89e52f23917d1c4aa1e2e8c587139276014295ea
Merge: 6554f3a be99d45
この場合、6654f3a が親ですので、これに戻せばいいです。


# これをrevertする
git revert 6654f3a
git pull origin master
git push origin master

https://reasonable-code.com/git-push-cancel/
http://a01.hatenablog.com/entry/2017/04/17/230252
https://yakst.com/ja/posts/2515

2019年10月24日木曜日

Powershellでgitを使うときのフォントカラーを変更する

Powershellでgitを使うと、カラーになった部分の色が見にくいです。デフォルトでは特にエラーの赤色が背景とのコントラストで見えない・・・。

.gitconfig ファイルにこれを記載します。.gitconfigはhomeにあります。

[color]
    ui = true
[color "status"]
    changed = red bold
    untracked = red bold
    added = green bold
    nobranch = red bold 

https://stackoverflow.com/questions/18420139/changing-git-status-output-colors-in-posh-git


nobranch は HEAD detached at とかの部分。
redは暗いので、red boldにします。


configについてはこちら。color.status. という設定になっていて、の部分にbranchやheaderをいれて設定する。

https://git-scm.com/docs/git-config

2019年10月20日日曜日

htmlでindex ofを表示する

ファイル名一覧を表示したかった(Index of)

.htaccessファイルを編集した。

・日本語ファイル名が文字化けしているのでutf-8にした(一部は文字化けが残った)
・ファイル名が短く、途中で切れる(変更の仕方が不明)

Options Indexesがマイナスになっていたので消した
IndexOptions Charsetをutf-8にした

Options Indexes
IndexOptions Charset=utf-8


2019年10月16日水曜日

ドメイン取得で悩んでいる

ドメインを取ろうかと思っているのですが、名前を何にするのか悩むところです。

欲しいドメインが売りにでているかはドメイン屋さん(レジストラ)で調べればよいらしいです。

お名前ドットコムなんかでも売られています。試しにonigiri.comなんて探してみると、既に使われていてありませんでした。.inc と .workは即使えるようです。使用中になっている、http://onigiri.net/ を開いてみると、3500ユーロで売ると書いてあります。なかなか高いですね。50万円ですか。

https://www.whois.net/ というサイトもあってwhois lookupという項目で値段が出ています。ものによりますが、35ドルとか24ドルが多いかもしれません。

anime.funは82万円とからしいです。お名前ドットコムのプレミアムドメインというやつですが、高いです。高いのsky.xyz, rugby.funで165万円です。


ドメイン廃止


廃止するときのやり方について調べました。お名前ドットコムだけ、期限前に廃止するときは証明書の提出が必要と明記されていました。検索した限りでは、この会社だけのようですが・・・。

お名前.com


・自動更新設定を解除しておけば、登録期限日から一定期間経過後に自動的に廃止
・登録期限日前に廃止する場合は廃止申請が必要
廃止申請には上記の登録内容を証明する公的証明書の提出が必要
https://help.onamae.com/answer/8294

ムームードメイン

・コントロールパネルから操作
・解約後も有効期限までドメインが利用できる

https://muumuu-domain.com/?mode=faq&state=answer&id=000206


スタードメイン

・管理ルーツから利用停止
・契約更新日とドメインの期限日は異なるので、事前に利用停止申請を
・他社への移管の際もあらかじめ解約申請すること

https://www.star-domain.jp/faq/domain_delete.php

2019年10月14日月曜日

pandasで日時の列を作る、Matplotlibの横軸に日時を使う

Pandasのdata_rangeを使って日付の列を作る

例えば2019年1月1日から2020年1月1日までの間にある、月末日を求めたいときは
pd.date_range(start='1/1/2019', end='1/1/2020', freq='M')
DatetimeIndex(['2019-01-31', '2019-02-28', '2019-03-31', '2019-04-30',
               '2019-05-31', '2019-06-30', '2019-07-31', '2019-08-31',
               '2019-09-30', '2019-10-31', '2019-11-30', '2019-12-31'],
              dtype='datetime64[ns]', freq='M')
となります。
start, end, freqを入力すればよいです。日付は 月/日/年がデフォルトです。
freqはDate Offsetの記号で多数あるようです(使い勝手が悪そうなものも多いですが)。
Mは月末でMSが月初というのが注意点です。
W Week(W-SUN) W-MON Monday W-... (他の曜日) M MonthEnd MS MonthBegin D Day H Hour
https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects

Matplotlibで横軸に日時の列を使う

# 日時を作る 2020年1月1日から4月1日までの水曜日の列
d = pd.date_range(start="1/1/2020", end="4/1/20", freq="W-WED")
v = np.linspace(1,10,len(d))
plt.plot(range(d.size), v, 'o')
# ticks, labelを作る
xticks = range(len(d))
xticklabels = [(d[0]+d[0].freq*x).strftime('%-m/%-d') for x in range(len(d))]
# xticksをセット
plt.xticks(xticks, xticklabels)
# x軸の左右のマージンをなくしている
plt.autoscale(True, axis='x', tight=True)
plt.show()
# 日時d の中身
DatetimeIndex(['2020-01-01', '2020-01-08', '2020-01-15', '2020-01-22',
               '2020-01-29', '2020-02-05', '2020-02-12', '2020-02-19',
               '2020-02-26', '2020-03-04', '2020-03-11', '2020-03-18',
               '2020-03-25', '2020-04-01'],
              dtype='datetime64[ns]', freq='W-WED')

2019年10月12日土曜日

Pythonでの表記統一

PEP8確認にflake8を活用する。
vimプラグイン vim-flake8 で保存するたびに確認する。

/home/.flake
を作っておき、例外を設定する。

blackでPEP8に合うように

TODO: flake8とblackで判定基準が異なる部分があるので統一したい。スペース行のカウントなど。

isort モジュールの順番を統一する

2019年10月1日火曜日

日誌2019年10月

2019/10/08
9月ごろからこのブログを移転しています。なかなか進みませんが、手作業で見直しをしたりcodeをprettyprintにしたりしています。面倒くさい・・・。未来ではコーディングももっと簡単になるのでしょうか。あまり想像できませんが、実行したいことを言うとコードが突然現れるみたいな。

InstantRstの整備をしています。レスポンスも早くてほとんどこちらの思う通りに動くのでいいですね。Cssの設定がいまいち分かりませんでしたが、templateのindex.htmlを直接書き換えるという方法でなんとかなりました。molokaiはできないけどrythmはできました。なぜ。。
https://github.com/gu-fan/InstantRst/issues/18

2019/10/09

ubuntuのtimeshiftって必要なんでしょうか。使ったことないですけど・・・。あまりわからずに入れているだけという気がしなくもないです。ファイルだけがやたらと多いのですが。snapshotを保存する設定があるのかな。

2019/10/26

AWSを個人で登録して試してみようかな、と思っているのですが。7、10月には25ドル分のクーポンがついていたとか、おそらくクリスマスにもクーポンが出るということを考えると、もう少し待ってもいいのかなーとか思ったりしています。別に特にやりたいことがあるというよりかは試してみたい、チュートリアルをやってみたい、という程度なんですが。

2019/10/27

gistをhtmlに載せることは簡単なのですが、これをGmailのhtml表示でできないものかな、と思ってしらべていました。よく考えるとhttpsのアクセスをし直さないと更新されないのでできないんでしょうね。
メールの拡張サービスをしているところではできるようですが。
https://mixmax.com/blog/product/github-email-how-to-embed-gists-in-gmail/


2019/10/28

bloggerの設定のためのメール通知が、Gmailで迷惑メールとして扱われていました。ちょっとビミョーですよね。それだけスパムとして使われているということでしょうか。

パスワードのソーシャルハックが少し前に話題になっていました。ああいうのを改変していろいろなscamが行われるんでしょうね。