EC2 インスタンスタイプの一覧をゲットする

EC2インスタンスの一覧を作ろうとしたところ、どこかにないかと探したのでメモしておきます。

$ cat ~/.pyenv/versions//2.7.10/lib/python2.7/site-packages/botocore/data/ec2/2016-11-15/service-2.json|jq '.shapes.InstanceType.enum'
[
  "t1.micro",
  "t2.nano",
  "t2.micro",
  "t2.small",
  "t2.medium",
  "t2.large",
  "t2.xlarge",
  "t2.2xlarge",
  "t3.nano",

めちゃめちゃ便利!

というか、手元にあった。(笑)

AWS CDKに必要なドキュメント

AWS CDKを触っていて、いろいろ調べてみたりしてドキュメントがまとまったので記事にしました。

ユーザーガイド

https://docs.aws.amazon.com/ja_jp/CDK/latest/userguide/what-is.html

リファレンス

https://awslabs.github.io/aws-cdk/index.html

ワークショップ

https://cdkworkshop.com/

AWS CloudFormationのドキュメント

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/Welcome.html

AWS CDKファーストステップ

AWS CDK を使ってAWS環境を構築します。

今更ながら感はありますけど、最近使い始めてみたので記事を書いてみます。

AWS CDKって何?

https://awslabs.github.io/aws-cdk/
https://github.com/awslabs/aws-cdk
によると
AWS Cloud Development Kit (AWS CDK)
というAWSのクラウド環境のためのツールになります。

AWS CDKで何ができるの?

Getting Startedを触ってみます。

$ npm i -g aws-cdk
$ mkdir infra
$ cd infra
$ cdk init app --language=typescript
$ cdk deploy

このままだとこれだけなので、下記を参考するだけでもいいってなります。

https://docs.aws.amazon.com/CDK/latest/userguide/what-is.html

AWS CDKを触ってみたところ

好きな言語からCloudFormationのテンプレートを作成・デプロイをする便利なツールってところですね

下記のコマンドで、ビルドと構文チェックできます。

npm run build
npm run watch

CloudFormationのテンプレートを確認

cdk synth

CloudFormationでデプロイ

cdk deploy

ソースを修正したら、比較!(そのあとデプロイ!)

cdk diff

まとめ

CloudFormationの知識が必要になりますが、typescriptなどの言語で自由にテンプレートを生成できるのがいいですね!

CloudFormatinoのJSON(YAML)の量の大変さは少し改善できそうですよ!

ブログの環境を変更しました。

LightSail → S3静的サイトに移行しました。

ブログの環境をLightSailからS3静的サイトに移行しました。
移行したというより、またS3静的サイトに戻したということになります。

当初は、Markdownファイルの練習も兼ねて
https://hexo.io/
でS3静的サイトで構築してました。

サイトにログインして記述するという環境がではなく
PCでMarkdownを作ってからになるので
どうしても早くなりませんでした。

そこで、Lightsailを採用してましたが
コストが高いので、S3静的サイトに戻しました。

いろいろと工夫をしているので、どこかでお話しできればと思います。

「SORACOM UG Tokyo #12/ 2018年末振り返り回」に参加してきました。 #soracom #soracom_ug

イベントページはこちら

https://soracomug-tokyo.connpass.com/event/113971/

LTさせていただきました。

まとめ

IoTは楽しいですね。勉強会に参加して、久々にしっかりと学んできました。
懇親会でもいろいろなお話をさせていただいてとても勉強になりました。
今の会社の事業に照らし合わせてできたらいいなと思いました。
物理というハードルもありそうですが、未来がありそうです。

AWS Loft TOKYO Pre Opening Party に行ってきた。

感想

楽しかった。久々にお会いできたり、いろいろ話ができてとてもよかった。

AWS Loft TOKYOの詳細情報はこちら

https://aws.amazon.com/jp/start-ups/loft/tokyo/

だいたいこんな感じ

オープン日2018/10/01(月)
オープン時間平日10:00〜18:00
場所目黒セントラルタワー17F
必要なもの初回:AWSアカウント
2回目:初回で発行されたカードとのこと
料金無料

まとめ

個人的に電源とWiFiはあるので、とても助かる。
あとは、どういった人が集まるのかどうか。
いい触れ合いと活性ができるといいですねー。
平日の日中じゃ、全然利用できそうもないんですけど。
そこは、今後の期待。

GCPトレーニング「Big Data & ML Fundamentals Lab 2: Interact with Google Cloud Storage v1.2 」でのエラー対応

上記のエラーが出てトレーニングが進まないのでその対応方法を調べた

python transform.pyを実行するとエラーする

google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ python transform.py
Traceback (most recent call last):
  File "transform.py", line 13, in 
    import numpy as np
ImportError: No module named numpy

numpyパッケージの解決までの準備

google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ curl -O https://bootstrap.pypa.io/ez_setup.py
google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ sudo python ./ez_setup.py
google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ sudo easy_install pip

numpyパッケージのインストール

google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ sudo pip install numpy
Collecting numpy
  Downloading https://files.pythonhosted.org/packages/40/c5/f1ed15dd931d6667b40f1ab1c2fe1f26805fc2b6c3e25e45664f838
de9d0/numpy-1.15.2-cp27-cp27mu-manylinux1_x86_64.whl (13.8MB)
    100% |████████████████████████████████| 13.8MB 1.7MB/s 
Installing collected packages: numpy
Successfully installed numpy-1.15.2

matplotlibパッケージでエラー

google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ python transform.py 
Traceback (most recent call last):
  File "transform.py", line 14, in 
    import su as mpl
ImportError: No module named matplotlib

matplotlibパッケージをインストール

pipではインストールできない

google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ sudo pip install matplotlib

パッケージでインストール

google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ sudo apt-get install -y python-subprocess32
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  python-subprocess32
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 28.9 kB of archives.
After this operation, 119 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian stretch/main amd64 python-subprocess32 amd64 3.2.7-2 [28.9 kB]
Fetched 28.9 kB in 0s (503 kB/s)         
Selecting previously unselected package python-subprocess32.
(Reading database ... 42570 files and directories currently installed.)
Preparing to unpack .../python-subprocess32_3.2.7-2_amd64.deb ...
Unpacking python-subprocess32 (3.2.7-2) ...
Setting up python-subprocess32 (3.2.7-2) ...
google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ sudo pip install matplotlib
Collecting matplotlib
  Using cached https://files.pythonhosted.org/packages/59/08/04933377dc4500e3698e93f9113dc3624874e0914f4c85767ecb5b
389084/matplotlib-2.2.3-cp27-cp27mu-manylinux1_x86_64.whl
Requirement already satisfied: numpy>=1.7.1 in /usr/local/lib/python2.7/dist-packages (from matplotlib) (1.15.2)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python2.7/dist-packages (from matplotlib) (0.10.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python2.7/dist-packages (from matplotlib) (1.0.1
)
Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python2.7/dist-packages (from matplotlib) (2.
7.3)
Requirement already satisfied: six>=1.10 in /usr/lib/python2.7/dist-packages (from matplotlib) (1.10.0)
Requirement already satisfied: pytz in /usr/local/lib/python2.7/dist-packages (from matplotlib) (2018.5)
Requirement already satisfied: subprocess32 in /usr/lib/python2.7/dist-packages (from matplotlib) (3.2.7)
Collecting backports.functools-lru-cache (from matplotlib)
  Using cached https://files.pythonhosted.org/packages/03/8e/2424c0e65c4a066e28f539364deee49b6451f8fcd4f718fefa50cc
3dcf48/backports.functools_lru_cache-1.5-py2.py3-none-any.whl
Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 (from matplotlib)
  Using cached https://files.pythonhosted.org/packages/42/47/e6d51aef3d0393f7d343592d63a73beee2a8d3d69c22b053e252c6
cfacd5/pyparsing-2.2.1-py2.py3-none-any.whl
Requirement already satisfied: setuptools in /usr/local/lib/python2.7/dist-packages/setuptools-33.1.1-py2.7.egg (fr
om kiwisolver>=1.0.1->matplotlib) (33.1.1)
Installing collected packages: backports.functools-lru-cache, pyparsing, matplotlib
Successfully installed backports.functools-lru-cache-1.5 matplotlib-2.2.3 pyparsing-2.2.1

basemapパッケージでエラー

google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ python transform.py 
Traceback (most recent call last):
  File "transform.py", line 17, in 
    from mpl_toolkits.basemap import Basemap
ImportError: No module named basemap

basemapをインストール

sudo apt install python-mpltoolkits.basemap

vimで__init__.pyのメソッドを編集する

google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ sudo vim /usr/lib/python2.7/dist-packages/mp
l_toolkits/basemap/__init__.py
fill_color = ax.get_axis_bgcolor()
 ↓
fill_color = ax.get_fc()

参考はこちらを。
https://github.com/matplotlib/matplotlib/issues/7808/
https://qiita.com/nigo1973/items/5408d3b4a5f69591f835

transform.pyを実行できるようになる


google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ python transform.py 
{'lat': 69.5363, 'timestamp': '2018-09-24T13:17:10.233Z', 'magnitude': 2.2, 'lon': -144.0685}
/usr/lib/python2.7/dist-packages/mpl_toolkits/basemap/__init__.py:3260: MatplotlibDeprecationWarning: The ishold fu
nction was deprecated in version 2.0.
  b = ax.ishold()
/usr/lib/python2.7/dist-packages/mpl_toolkits/basemap/__init__.py:3269: MatplotlibDeprecationWarning: axes.hold is 
deprecated.
    See the API Changes document (http://matplotlib.org/api/api_changes.html)
    for more details.
  ax.hold(b)
google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ ls -al
total 1416
drwxr-xr-x 3 google1117239_student google1117239_student   4096 Sep 24 13:26 .
drwxr-xr-x 8 google1117239_student google1117239_student   4096 Sep 24 12:42 ..
-rw-r--r-- 1 google1117239_student google1117239_student    637 Sep 24 12:42 commands.sh
-rw-r--r-- 1 google1117239_student google1117239_student 370625 Sep 24 12:35 earthquakes.csv
-rw-r--r-- 1 google1117239_student google1117239_student    751 Sep 24 12:42 earthquakes.htm
-rw-r--r-- 1 google1117239_student google1117239_student 321866 Sep 24 13:26 earthquakes.png
-rw-r--r-- 1 google1117239_student google1117239_student  12537 Sep 24 12:45 ez_setup.py
-rwxr-xr-x 1 google1117239_student google1117239_student    759 Sep 24 12:42 ingest.sh
-rwxr-xr-x 1 google1117239_student google1117239_student    707 Sep 24 12:42 install_missing.sh
drwxr-xr-x 2 google1117239_student google1117239_student   4096 Sep 24 12:42 scheduled
-rw-r--r-- 1 google1117239_student google1117239_student 702770 Sep 24 12:45 setuptools-33.1.1.zip
-rwxr-xr-x 1 google1117239_student google1117239_student   3058 Sep 24 12:42 transform.py
google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ 
google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ gsutil cp earthquakes.* gs:///e
arthquakes/
-bash: YOUR-BUCKET: No such file or directory
google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ gsutil cp earthquakes.* gs://qwiklabs-gcp-3c
9c336ef09395ac/earthquakes/
Copying file://earthquakes.csv [Content-Type=text/csv]...
Copying file://earthquakes.htm [Content-Type=text/html]...                      
Copying file://earthquakes.png [Content-Type=image/png]...                      
\ [3 files][677.0 KiB/677.0 KiB]                                                
Operation completed over 3 objects/677.0 KiB.                                    
google1117239_student@instance-1:~/training-data-analyst/CPB100/lab2b$ gsutil acl ch -u AllUsers:R gs://qwiklabs-gc
p-3c9c336ef09395ac/earthquakes/*
Updated ACL on gs://qwiklabs-gcp-3c9c336ef09395ac/earthquakes/earthquakes.csv
Updated ACL on gs://qwiklabs-gcp-3c9c336ef09395ac/earthquakes/earthquakes.htm
Updated ACL on gs://qwiklabs-gcp-3c9c336ef09395ac/earthquakes/earthquakes.png

最後に

動画の9:30ごろから編集する流れがあったのでちょい困る。。。
悩んで対応しなくてもよかった。