AWS ソリューションアーキテクトアソシエイト試験

受けてきました。

初めてAWSを使ったのは現職になってからなので、去年の8月からです。だいたい9ヶ月くらいでしょうか。EC2/VPC/セキュリティグループ/ALBくらいしか使ったことはないです。

連休ということでふと気が向いてしまい、4日の勉強で取ってしまおうと無茶な計画を立てました。

本は2冊読みました。まずはこちら。

会社のwebサイト(コーポレートサイト)を作るという事例で、最初は簡単なものから徐々に機能を追加して拡張性や可用性を高めていったり、パフォーマンスを考慮した構成にしていったりという流れで解説されていました。とても読みやすかったです。試験対策の問題も各章ごとに数問用意されていて、試験の雰囲気を掴むにはよかったです。だいたい3日くらいで読めました。

なんとなく不安に感じ、次はこちらを買いました。

試験前日だったもので通読はせず、1冊目を読んだときに苦手に感じたところや、載っていなかった分野についてさらっと読みました。あとは模擬試験を2周。1周目で70%だったので、本番に向けて不安が残りました。

試験は西日暮里のテストセンターで。自宅から徒歩10分くらいのところで、近くてよかったです。18席あるところに2〜3人しか受験者がおらず、広々と落ち着いて受けることができました。

試験は無事合格。AWSの試験は合格か不合格かしか出ないとのことです。どれくらいできたかはわかりませんが、無事合格できてよかったです。

勉強時間は4日間を合わせてだいたい10時間ほど。仕事でもAWSは使いますし、いい勉強になりました。他の分野の試験も勉強してみたいです。

(追記) 試験結果は翌日来ました。

Fedora 30 に更新

リリースされた とのことで、Fedora 30 に更新してみました。

キー配置はまた us に戻っちゃうので、mozc の設定ファイルを編集。

無事アップグレード終わりました。

RHEL8 beta で Python3 を入れて Ansible から操作できるようにする

まずは subscribe しておきます。

Python3 を入れます。RHEL8 beta では最初から Python がインストールされていないので、Ansible からいじることができません。

(追記) platform-python を使うのが筋のようです。

無事入りました。

/usr/libexec/platform-python を参照させるのがいいみたいです。一応確認してみます。

Python が入ったということで、実際に Ansible Tower から接続してみます。まずはインベントリを定義。ansible_python_interpreter は ansible 2.8 からは自動で検出してくれるそうです。

認証情報を設定して、ad hoc コマンドの ping モジュールで繋いでみます。

これで無事繋がることがわかりました。よしよし。

ESXi 上の RHEL7 をいじる

ESXi 6.7 を立てまして、RHEL 7.6 を5台インストールしました。これを Ansible からいじってみます。

まずはインベントリの取得から。

https://github.com/ansible/ansible/blob/devel/contrib/inventory/vmware_inventory.py

を使ってみました。vmware_inventory.py と vmware_inventory.ini を取得してきます。

vmware_inventory.ini を編集して設定します。このように作ってみました。

実行してみます。かなり大きな JSON が返ってきました。いまの ESXi には RHEL7 や RHEL8beta、Kali Linux が入っています。

vmware-inventory コマンドを使って、ダイナミックインベントリとして読めることを確認します。–graph か –list を指定すると、インベントリとして読み取った結果を表示することができます。グループ分けもされていることがわかります。

この RHEL7.6 のグループ5台に対して、subscribe して yum update してみる playbook を書いてみました。

実行してみます。

無事処理できました。ログインして確認してみます。

いい感じですね!

Ansible を始めてみる

ansible-galaxy を使うことで role の雛形が作られます。Rails で言うと Scaffold みたいなものです。

インベントリファイルを作ります。ファイル名は inventory にしました。

sample role を呼び出すための playbook を書きます。playbook.yml としました。

sample にはまだタスクがありませんが、実行できるようになりました。

実際にタスクを書いてみます。sample/tasks/main.yml を編集します。

実行してみます。

ここでは localhost を対象に debug メッセージを出してみただけでしたが、対象を動的に変えてみたり、モジュールを使って実際にサーバの設定をしてみたりなど、ここからいろんなことができるようになります。

最初の一歩になればと思います。

Fedora 29 を入れたらやること

忘れないようにメモしておきます。

caps キーを ctrl にする設定。忘れるのでメモ。

日本語キーボードにならないときは /usr/share/ibus/component/mozc.xml を編集。

PyCharm で Django その2

https://docs.djangoproject.com/ja/2.1/intro/tutorial02/

mysite/settings.py で設定。

DB はそのまま sqlite3 を使うことにしました。

国際化のところは日本に。

Terminal で migrate します。

次は Model の作成。
class の引数が親クラスというのはどうも気持ち悪い。。

Model を追加したら settings.py に追加するようです。PyCharm が補完してくれます。

makemigrations します。このへんはちょっと流儀が Ruby on Rails と違いますね。

migrate して DB に反映させます。

チュートリアルに書いてありますが、

1. モデルを作る (models.py)
2. マイグレーションファイルを作る (python3 manage.py makemigrations)
3. マイグレーションする (python3 manage.py migrate)

こういう流れですね。

次の API で遊んでみるというのは Rails で言うところの irb や rails console みたいなものだと思います。
tab 補完も効きますね。

models.py に少々実装しますが、import を忘れていたりすると警告が出ますし、補完も効くのでわかりやすいです。

次は Django admin を入れていきます。管理者ユーザを作るところから。

サーバを起動してブラウザからアクセス。

ログインするとこんな画面でした。コード書いてないのに標準で認証や認可の仕組みが入っているようです。

polls/admin.py を書きます。

即反映されて、レコードをいじれたりするようになってました。

その2 はここまでです。

PyCharm で Django その1

https://docs.djangoproject.com/ja/2.1/intro/tutorial01/

「Polls アプリケーションをつくる」から進めていきます。

Terminal から実行するとディレクトリとファイルが一式作られました。

ビューを書いていきます。

改行の数にも意味があるんですね。。2つにしないと警告が出ました。

polls/urls.py と mysite/urls.py を書いて、サーバを起動し直せば作ったビューが出てきます。