Python認定資格を取得しました。

AWSの資格に続き、先日Pythonエンジニア認定試験についても受験し、無事合格することが出来ました。

簡単ながら勉強法と受験した感想を記載していきます。

 

受けようと思ったきっかけ

Pythonを業務で使用していることで、以前から受けてみようと思っていたのですが10000円という試験料金にビビっていてなかなか重い腰が上がりませんでした。

しかしAWSクラウドラクティショナーの試験を合格したことで、少し自信になったということもあり、1発で受かればいいんだという強い意志のもと受験に踏み切りました。

 

試験概要

概要:文法基礎を問う試験 受験料金:1万円(外税)高い・・ 問題数:40問(すべて選択問題) 合格ライン:正答率70%

 

  勉強法

業務で使用していることもあり土台は出来ていました。

試験範囲であるPythonチュートリアルを試験前までに2回ぐらい読みました。

https://docs.python.org/ja/3.5/tutorial/index.html

 

後は模擬試験のサイトで2週間前から毎日1回模擬試験に望みました。(問題変わっても1000点取れるようになるまで・・・)

https://exam.diveintocode.jp/exam

  

当日の試験に必要なもの

Pythonエンジニア認定試験はCBT試験のため、当日の試験までにOddseyCBTのサイトのアカウントが必要なので用意しておかなければなりません。

身分証明証(顔写真付き) 

 

出題問題

模擬試験のサイトでた問題よりもひねった問題がでました。ただ考え方などは一緒なので模擬試験で間違えた問題を答えで理解するのではなく、なんでこの答えになるのかを理屈で覚えておけば問題ないと思われます。

  自分が頭を抱えた問題は以下です。帰ってどうなるかコードを書いてしまいました。 皆さんの興味があればPythonコンソールからコードを書いてみてください

 ライフサイクルを問われる問題ですがこの場合インスタンスごと別の配列になるのかがわかりませんでした

class Sample:

def __init__(self):
        self.c_list = []

  def add_c_list(self,data):
    self.c_list.append(data)

  def view_c_list(self):
    return self.c_list

sample1 = Sample()
sample2 = Sample()

sample1.add_c_list("data1")
sample2.add_c_list("data2")
sample1.add_c_list("data3")

print(view_c_list)

次に迷ったのが例外処理についての問題です

raiseの中で更にraiseどう出力されるんだこれ!?

try
    raise SyntaxError('Exception発生')
except SyntaxError:
    raise
    print('test')

 

感想

試験範囲がPythonチュートリアルを呼んだことで、使ったことのない書き方や文法を豆知識として 覚えることが出来ました。 Pythonの基礎を覚えるのにも良い問題が出るのでみなさんも興味があれば是非取得を目指してみてください。

 

TJBotZeroHandsOnに参加しTJBotを作ってきた。

今回はBMXUG社が主催のTJBotZero組み立てHandsOnイベントに親子で参加したのでその内容を記載します。

 

そもそもTJBotはなにという方は以下のQitaの記事に記載があります。

TJBot Zeroとは

 

イベントではTJBotの組み立てから行いました。私の子供二人が中心になって組み立てを行いました。まずは工作の時間です。半分以上は工作だったような気がします。

 

1.まず台紙から切り抜きます

f:id:kinokuniya56:20191024163330j:plain

 

2.足と胴体の骨組みを組み立てます。こういう作業は子どもたちが大得意です。

f:id:kinokuniya56:20191024163635j:plain


3.raspberry piを胴体に設置し、カメラを接続します。

配線の回しこみなど少し力を入れるとTJBot壊れるかもと思いました。

f:id:kinokuniya56:20191024171142j:plain

 

4.LED,マイク,スピーカーの配線を行います。

raspberry piのGPIOに接続していきます。正直この配線にとても時間がかかりました。

f:id:kinokuniya56:20191024164025j:plain

 

5.頭を組み立て、かぶせて、じゃじゃーん!! 完成です

電源に接続するとLEDが光った〜

f:id:kinokuniya56:20191024172505j:plain

 

6.この後TJBotをネットワークに接続してPCからTJBotにアクセスします。

下のようなNode-REDのパネルがでてきます。このツールを使ってTJBotを制御します。下パネルはそれぞれ頭のLEDの色を変えるフローになります。

Node-REDとは

f:id:kinokuniya56:20191024172839j:plain

 

 

7.今回一番の目玉はTJBotとIBM WatsonのAIを使った画像認識でした。

カメラから読み込んだ画像をAIを使って解析し、結果をスピーカで喋らすというフローを作りました。

程よい精度で解析結果が返ってくるので、何度も動作して検証していました。

あまりに夢中になり写真撮り忘れましたが、AIの技術すばらしい・・の一言です

f:id:kinokuniya56:20191024173642j:plain

 

 

8.最後に

今回は約1日かけて作成しIBM Watsonの体験までできました。

電子工作がはじめての子供でも無事完成にまで持っていきました。

Node-REDは制御のフローパーツが英語で書かれていたため子供には少し難しかったかもしれませんが、動作するのを夢中で行ってました。

第二回とかあれば是非参加したいです。

f:id:kinokuniya56:20191024173939j:plain

 

長文を読んでいただきありがとうございました!!

 

AWS 認定クラウドプラクティショナーの資格を取りました

www.sbcr.jp

自社にてAWS 認定資格保有者が必要であることと、AWSについて自分自身勉強したかったこともありAWS 認定資格クラウドラクティショナーの資格取得を目指し、2019年10月に合格することができました。

取得するための情報を共有できればと思います。

 

  1. どんな勉強を行ったか
    AWS 認定資格クラウドラクティショナーの必要とされる知識
    AWS クラウドの知識とスキルを身に付け、全体的な理解を効果的に説明できる個人が対象です。
    参考URL:https://aws.amazon.com/jp/certification/certified-cloud-practitioner/

    自分はAWSについてはEC2やEC2の管理コンソールをいじくる程度でどんなサービスがあるかということはほとんど知らない状態からのスタートでした。

    まずは書籍を買おうと思い、購入したのが以下の本です
    クラウドプラクティショナー参考書

    AWSのサービスや概念、ベストプラクティスな設定が体系的に記載されているのでこの1冊があれば試験範囲はほぼ網羅できていると思います。
    私はこの本を6月頃に購入して牛歩のようですが9月末ぐらいまでかけて勉強し終わりました。
    本が勉強し終わると同時に試験の申込みを行いました。

  2. 試験の申込み方法は
    以下のURLから申し込みになります。
    AWSレーニングアカウントが必要になります。
    https://www.aws.training/SignIn?returnUrl=%2FCertification

    アカウント登録後に、AWS認定アカウントのページからPSI またはピアソン VUE で試験を予約します。(どういう目的でAWSを使用しているか、住所などの個人情報なども事前に登録が必要で最初は少し手間かもです。)

    一昔まえはAWS認定の試験をうけるために首都圏にでて受けに行かなければいけませんでしたが、ピアソン VUEでの試験会場は割と郊外の県でも開催をしていて、家からそんなに遠くない場所で試験をうけることができました。試験が受けやすくなったと思います。

  3. どんな問題がでるか
    あくまでも2019年時点の内容なので参考程度に記載を行います。
    問題数は65問で1000点中700点以上が合格となります。ということは45問以上正解していれば合格圏内と言えると思います。

    で65問中20問ぐらいはAWSのサービスを選択するような問題がでましたので、参考書にあるAWSのサービスはすべて覚えておいたほうが良いと思います。
    これで合格圏内の約半分は抑えられるかと思います。

    他にも覚えている限り以下のような問題がでました。
    AWSの弾力性や伸縮性が問われる問題が出題された。
    ・IAMユーザについて正しく説明されたものはどれかという問題がでた。
    ・リージョン、AZ、データセンタの正しい説明を選ぶ問題がでた
    ・EC2のどのインスタンスを選ぶのが最適かを問われる問題(オンデマンドインスタンスリザーブインスタンス、スポットインスタンス)
    AWSの請求に関する問題

    上記の問題はすべて参考書に記載されているので、概ねの理解があれば溶けるかと思います。

  4. 最後に
    参考書は勉強しましたがこの試験に関しては過去問や練習問題があまりなかったので、試験準備勉強の段階でとても不安になりました。
    AWS認定のサイトからは模擬試験を受けられるみたいなのですが有料で、少し高いと感じたので、ソリューションアーキテクトの問題を解いたり
    英語のサンプル問題を和訳していただいているサイトがありましたので(参考書の著者ですね)この問題を解いたりと準備しました。
    https://www.yamamanx.com/aws-cloud-practitioner/

    試験はギリギリながら合格できました。AWSの概念やどんなサービスが有るかなど知識になったので、取得してよかったと思っています。

    以上となります。

ジョブスケジューラRundeckをEc2に立ててみた

業務でcronで動いているバッチを専用のサーバで動かすという要件があったため、Rundeckというジョブスケジューラで行うことになりました。

導入方法はとても簡単です。使い勝手も大変良く、日時のバッチの失敗の検知(メールで送信)などもGUI上で設定できます。

ここではRundeckを起動するまでの流れを簡単に説明致します。

 

 1.動かすサーバーを立てる。

自分はオンプレで立てましたが、一番最速なAWSのEC2で今回は立てます
AWSの管理コーンソールでサクッとインスタンスを作成してしまいましょう

f:id:kinokuniya56:20191016111025p:plain

 

f:id:kinokuniya56:20191016111111p:plain

f:id:kinokuniya56:20191016111231p:plain

 

 

最後にコンソールからSSHでEC2にアクセスするためのキーを作成します。

f:id:kinokuniya56:20191016111124p:plain

 

ここで作成したキーを使って作成されたEC2インスタンスに接続しましょう

>>>  ssh -i ~/.ssh/rundeck.pem ec2-user@<ホスト名>

※つながらない場合はkeyをchmod 600で権限を変えてあげましょう

 

2.Rundeckをインストール

インストールはJAVAとRundeckをインストールするのみです。
Webサーバなどの役割もRundeckの方で自動で設定してくれるみたいです。
ec2の接続先で以下のコマンドを実行してインストールします。

>>> yum install java-1.8.0

>>> rpm -Uvh http://repo.rundeck.org/latest.rpm

>>> yum install rundeck

 

3.Rundeck起動

サービスを起動します。

 >>> service rundeckd start

 

自サーバから応答が帰ってくるかを見ます。

 >>> curl -v 127.0.0.1:4440/user/login

 

コマンド入力後にHTMLが帰ってくれば起動はできているということです。

 

4.ブラウザから見れるようにす

ブラウザからrundeckにアクセスするにはrundeck側とEC2のセキュリティグループのインバウンドの設定が必要になります。

※Rundeck側
以下の設定ファイルを設定します。

 

rundeckユーザで作業しましょう

>>> sudo su - rundeck

>>> vi  /etc/rundeck/rundeck-config.properties

 

以下の項目を設定します。
私の場合はとりあえずIPのみを設定しました

>>> grails.serverURL=http://xxx.xxx.xxx.xxx:4440

 

※EC2側

インスタンス→セキュリティグループ→インバウンドの設定からrundeckのポート番号4440を許可します。

以下ような設定

f:id:kinokuniya56:20191016112630p:plain

 

さてこれで設定は完了です。ブラウザからアクセスしてみましょう

http://xxx.xxx.xxx.xxx:4440/user/login

 

f:id:kinokuniya56:20191016112727p:plain

 

ログイン画面が起動しました。
初期id/passはともにadminです。

ログインしてみましょう。メニュー画面に遷移します。
最近ブラウザのセキュリティの問題でhttpsでないとうまくいかないブラウザが増えていますが、
うまく遷移しない場合したのURLを直接叩いても良いです。

http://xxx.xxx.xxx.xxx:4440/menu/home

f:id:kinokuniya56:20191016112826p:plain

とここまででRundeckを使う準備はできました。
次回はRundeckの使い方を書いていく予定です。