2020年4月29日水曜日

AWSストレージ系の料金

EFS料金

S3料金
https://aws.amazon.com/jp/s3/pricing/

EBS料金
https://aws.amazon.com/jp/ebs/pricing/

以下は全てリージョン:アジアパシフィック (東京)
   

EFS料金

標準ストレージ (GB-月) 0.36USD
低頻度アクセスストレージ (GB-月) 0.0272USD
低頻度アクセスリクエスト (転送 GB あたり) 0.012USD
プロビジョニングするスループット (MB/秒-月) 7.20USD

S3

1GB月 3円くらい。

S3 標準 0.025USD/GB
S3 Intelligent - Tiering * - アクセスパターンが不明または変化するデータの自動コスト削減
0.025USD/GB
S3 標準 - 低頻度アクセス * - ミリ秒単位のアクセスが必要な、長期保管だがアクセス頻度の低いデータの場合
0.019USD/GB
S3 Glacier ** - 1 分から 12 時間の取り出しオプションを使用した長期バックアップとアーカイブの場合   0.005USD/GB

S3 Glacier Deep Archive ** - 1 年に 1〜2 回アクセスされ、12 時間以内に復元できる長期のデータアーカイブの場合  
0.002USD/GB


Amazon EBS 料金

1GB月3円〜14円くらい。: 1GB月で12円、14円(*)、5円、3円。1ドル100円で覚えておく。
*プロビジョニングは1IOPSで7円かかるから高い。

ボリューム 1 か月にプロビジョニングされたストレージ 1 GB あたり   

- 汎用 SSD (gp2)  0.12USD
- プロビジョンド IOPS SSD (io1)0.142USD、さらに 1 か月にプロビジョニングされた IOPS あた- り 0.074USD
- スループット最適化 HDD (st1)  0.054USD
- Cold HDD (sc1) 0.03USD

 EBS スナップショット 1 か月に格納されたデータ 1 GB あたり 0.05USD

2020年4月22日水曜日

Get absolute path for script file and directory in Python.

When using CRON and python, it happens the file path is not where you meant. That is from the fact working directory for CRON  is /bin/... or somewhere.

Easy solution is to set absolute path for script file and directory.
# Give absolute filepath and directory
import os
# getcwd gives where script called
# os.getcwd()
# Absolute path of script
abs_path_ = os.path.abspath(__file__)
# Directory where script is
dir_ = os.path.dirname(abs_path)

2020年4月21日火曜日

Selenium Erorr: Failed to establish a new connection

I was trying to auto access to a site (stackoverfrom.com). While doing try and error with selenium python, I got this error:

MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=48710): Max retries exceeded with url: /session/2a452d24-4918-4c3c-858d-22eb739d604c/element (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

I thought my IP address was blocked (by stackoverflow.com)

But it rurned out that this was coming from different part.

Driver.quit was done because wait.WebDriverWait(driver,30).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "XXXXX"))) was wrong.

That is: Class name isn't available for WebDriverWait.


https://stackoverflow.com/questions/57262217/how-do-you-use-ec-presence-of-element-locatedby-id-mydynamicelement-excep




2020年4月18日土曜日

Selenium find element by class FOR MULTIPLE CLASSES

When an element of web page has multiple classes, just set one class capture the element.

Like:
   
Use find element by class name

content = driver.find_element_by_class_name('content')

https://selenium-python.readthedocs.io/locating-elements.html


In above case, if class name "btn-red" is unique for the page,

content = driver.find_element_by_class_name('btn-red')

work.

2020年4月14日火曜日

Provisioned IOPS があまりよく分からない


Provisioned IOPS ということばがよく分かりません。

「大きなInput/Outputが想定されている。準備できている。対応できる」

ということなんでしょうけど。

スループットが大きくなるような設定のもの、ということでいいんでしょうか?

--

DBで見てみると、Provisioned IOPS は 1000-80000だそうです。

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS


EBSで見てみると、

EBS Provisioned IOPS SSD (io1)
EBS General Purpose SSD (gp2)
Throughput Optimized HDD (st1)
Cold HDD (sc1)

で比べたときは、
Max IOPS**/Volume
Max Throughput***/Volume
はio1が大きいですが、
Max IOPS/Instance は同じ。

https://aws.amazon.com/ebs/features/




--

プロビジョニングということばが流行りだしたという記事。2002年。
https://www.itmedia.co.jp/enterprise/0209/19/op01.html

2020年4月10日金曜日

Amazon Macie の読み方は メイシー 

ずっと読み方が解らなかった AWS の Macieですが、ネイティブの発音てきにはメイスィーって感じでした。

企業のカラー

ソラコム

#34cdd7

RGB 52 205 215


ダイソー

#f2157f

RGB 242, 21, 127

2020年4月8日水曜日

Chrome flicker

Ubuntu 16.04.

When I using chrome, suddenly flicker started. It started when I opened emf file with double clicking unintentionally. Just deleted the application appeared, but flicker started.

Solution:

Chrome setting

-> Advanced

-> Turn  OFF "Use hardware acceleration when available"

-> Restore Chrome

2020年4月7日火曜日

Install OpenCV in Python3.7

TL;DR;


$ python3 -m pip install opencv-contrib-python

This worked for Python 3.7 environment.

Long version:


In my Ubuntu16.04LTS, Python2.7 and Python3.7 is co-existing. I have tried OpenCV before and did some tutorial. But now forgot settings. I needed try and error to re-install OpenCV.

$ sudo pip3 install opencv-python

is not good.  By this for Python 3.5 is installed. Downloading opencv_python-4.2.0.34-cp35-cp35m-manylinux1_x86_64.whl (28.2 MB). This doesn't work on Python 3.7.

$ pip3 install opencv-contrib-python

This was not good but it tells good WARNING.

WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Defaulting to user installation because normal site-packages is not writeable

I remembered '-m pip' works.  So the command on the top,

$ python3 -m pip install opencv-contrib-python

worked. Note -m pip, not -m pip3 this time.

https://stackoverflow.com/questions/40207011/opencv-not-working-properly-with-python-on-linux-with-anaconda-getting-error-th
https://stackoverflow.com/questions/38613316/how-to-upgrade-pip3
https://stackoverflow.com/questions/57243700/import-cv2-missing-python3-7

2020年4月5日日曜日

C++ で分割コンパイル

a.cpp, b.cpp, ... を用意して分割コンパイルします。

g++ -c a.cpp -o a.o
g++ -c b.cpp -o b.o
...

結合

g++ a.o b.o

でa.exeが作成される。

2020年4月4日土曜日

新型コロナウイルス感染症対応でのAWSのテレワーク向けオファー

Amazon WorkSpacesはデスクトップの提供(Daas)ですが、コロナウイルスでのテレワーク増加もあって、無料で4/1-6/30まで使えます。
4 月 1 日より、新たに Amazon WorkSpaces をご契約いただくお客様に 50 ユーザーまで無料でご利用いただけます。本オファーは 2020 年 6 月 30 日までです。本オファーはスタンダード、バリュー、パフォーマンスの各バンドルが対象となります。このオファーの詳細については、無料利用枠セクションをご覧ください。

・2020 年 4 月 1 日から 2020 年 6 月 30 日まで
・80 GB のルートボリュームおよび 50 GB のユーザーボリュームを備えた Windows スタンダードバンドルで最大 50 の WorkSpaces を提供。・WorkSpaces 無料利用枠が利用可能なすべての AWS リージョン全体。AutoStop モードで 1 か月あたり合計で最大 10,000 時間
・全てAutoStopモードのみ
名前    ルートボリューム ユーザーボリューム 最大合計時間/月
Windowsパフォーマンスバンドル    80GB    100GB  200時間
Linuxスタンダードバンドル2つ 80GB    50GB    400時間
Windowsバリューバンドル    80GB    10GB    200時間
・この期間中に初めて WorkSpaces を開始する AWS アカウントのすべての新規のお客様は、無料利用枠の対象
https://aws.amazon.com/jp/workspaces/pricing/?nc=sn&loc=3

2020年4月1日水曜日

WebDriverException: Message: Socket timeout reading Marionette handshake data: Resource temporarily unavailable (os error 11)

Python Selenium stopped. This happened for the first time. So this is memo.. (confirmed work correctly with no changes, just after error).

Similar to this https://github.com/mozilla/geckodriver/issues/1470 . In this case, updating geckodriver is the solution.

This python is on Jupyter and waiting 10 hours loops. It might be the reason.

Python Error


---> 57     main()
     58
     59     # 24 hours + some ramdom seconds

in main()
     22     target_url = "https://stackoverflow.com/users/login"
     23
---> 24     b = webdriver.Firefox(options=options)
     25     b.get(target_url)
     26

/anaconda3/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py in __init__(self, firefox_profile, firefox_binary, timeout, capabilities, proxy, executable_path, options, service_log_path, firefox_options, service_args, desired_capabilities, log_path, keep_alive)
    172                 command_executor=executor,
    173                 desired_capabilities=capabilities,
--> 174                 keep_alive=True)
    175
    176         # Selenium remote

/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in __init__(self, command_executor, desired_capabilities, browser_profile, proxy, keep_alive, file_detector, options)
    155             warnings.warn("Please use FirefoxOptions to set browser profile",
    156                           DeprecationWarning, stacklevel=2)
--> 157         self.start_session(capabilities, browser_profile)
    158         self._switch_to = SwitchTo(self)
    159         self._mobile = Mobile(self)

/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in start_session(self, capabilities, browser_profile)
    250         parameters = {"capabilities": w3c_caps,
    251                       "desiredCapabilities": capabilities}
--> 252         response = self.execute(Command.NEW_SESSION, parameters)
    253         if 'sessionId' not in response:
    254             response = response['value']

/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
    319         response = self.command_executor.execute(driver_command, params)
    320         if response:
--> 321             self.error_handler.check_response(response)
    322             response['value'] = self._unwrap_value(
    323                 response.get('value', None))

/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
    240                 alert_text = value['alert'].get('text')
    241             raise exception_class(message, screen, stacktrace, alert_text)
--> 242         raise exception_class(message, screen, stacktrace)
    243
    244     def _value_or_default(self, obj, key, default):

WebDriverException: Message: Socket timeout reading Marionette handshake data: Resource temporarily unavailable (os error 11)



geckodriver.log



1585729108734 mozrunner::runner INFO Running command: "/usr/bin/firefox" "-marionette" "-headless" "-foreground" "-no-remote" "-profile" "/tmp/rust_mozprofile.hfq7fKmKeyei"
*** You are running in headless mode.
1585729109395 addons.webextension.doh-rollout@mozilla.org WARN Loading extension 'doh-rollout@mozilla.org': Reading manifest: Invalid extension permission: networkStatus
1585729110734 addons.webextension.screenshots@mozilla.org WARN Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: mozillaAddons
1585729110734 addons.webextension.screenshots@mozilla.org WARN Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: telemetry
1585729110734 addons.webextension.screenshots@mozilla.org WARN Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: resource://pdf.js/
1585729110734 addons.webextension.screenshots@mozilla.org WARN Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: about:reader*
1585729112363 Marionette FATAL Remote protocol server failed to start: Error: Could not bind to port 35678 (NS_ERROR_SOCKET_ADDRESS_IN_USE)(chrome://marionette/content/server.js:94:17) JS Stack trace: set acceptConnections@server.js:94:17
start@server.js:124:5
init/<@marionette.js:499:21
JavaScript error: resource://activity-stream/lib/ActivityStreamPrefs.jsm, line 27: NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIPrefBranch.removeObserver]
JavaScript error: resource://services-settings/RemoteSettingsClient.jsm, line 123: Error: Unknown callback

###!!! [Parent][DispatchAsyncMessage] Error: PBackgroundIDBFactory::Msg_PBackgroundIDBFactoryRequestConstructor Value error: message was deserialized, but contained an illegal value


###!!! [Parent][DispatchAsyncMessage] Error: PBackgroundIDBFactory::Msg_PBackgroundIDBFactoryRequestConstructor Value error: message was deserialized, but contained an illegal value

console.error: PushService:
  clearOriginData: Error clearing origin data:
  UnknownError
console.error: PushService:
  stateChangeProcessEnqueue: Error transitioning state
  UnknownError
JavaScript error: , line 0: UnknownError: The operation failed for reasons unrelated to the database itself and not covered by any other error code.
JavaScript error: resource://services-common/kinto-offline-client.js, line 603: Error: IndexedDB clear() The operation failed for reasons unrelated to the database itself and not covered by any other error code.
JavaScript error: resource://services-common/kinto-offline-client.js, line 603: Error: IndexedDB getLastModified() The operation failed for reasons unrelated to the database itself and not covered by any other error code.