2021年6月26日土曜日

AWS 認定 高度なネットワーキング 専門知識(ANS)に合格したのでまとめ

 AWS認定9つ(アソシエイト3、専門5、DOP)取得してから受験しました。スコア835で合格。

ネットワークの業務経験

全くなし。応用情報技術者試験での知識程度(筆記では選ばないくらいの苦手意識)


勉強内容

  • ANSは模擬試験がない。サンプル問題はあります。
  • 本とAWS公式の講義やドキュメント、AWS blog、Blackbeltなど
  • Udemyには良さそうなのが無かったので受講せず


なお、公式でこういう記事があります。ネットワークの勉強方法を聞いてみた。

https://aws.amazon.com/jp/builders-flash/202106/way-to-learn-network/

テスト範囲について

公式ガイドブックにある範囲(2018年くらい)までのようです。最新の内容ばかり勉強しても知識が使えない可能性があります。VPCシェアリングは出題されますが、トランジットゲートウェイ(TGW)は範囲外でした。TGWは全Region対応ではないからかもしれません。なぜTGWが必要とされているのか、ということを知っておくとよいかと。Route53も2018年頃までの機能でなんとかすることになります。


良かった本

  • マスタリングTCP/IP入門・・・この1冊でほとんどカバーできる
  • インターネットルーティング入門・・・BGPのことなどが詳しく学べる
  • ネットワークはなぜつながるのか・・・基本的なことを理解できる
  • インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門・・・オンプレミス側のネットワークの話が詳しい

公式ガイドブック(AWS Certified Advanced Networking Official Study Guide: Specialty Exam)は読みませんでした。試し読みができるので、冒頭の問題だけ問いてみましたが・・・難しかったです。Webの感想には公式ドキュメントが読めれば本は不要という意見も、テスト問題がこのテキストの内容とマッチしているという意見もありました。12冠取れたあとで、勉強用に買いました。

AWS Certified Advanced Networking Official Study Guideを買った


認定取得が揃ったあとに、勉強用に買いました。英語は読みやすいですが、500ページ程なのでなかなかのボリュームです。試験に向けて抑えておくポイントがいろいろ書かれています。1日10ページ読むとして2か月くらいかかるでしょうか。

オンライン学習

Exam Readiness: AWS Certified Advanced Networking - Specialty 動画が長いですが、かなり良い。

https://www.aws.training/Details/Curriculum?id=21330

Quiz Showという番組もあるのですが、いまいち。


公式ドキュメント

VPC、VPC Peering、VPN、Direct Connect、Route53

できること、できないこと、設定手順、トラブルシュートなど、詳しく知っておく


ホワイトペーパー

「AWS 認定試験に備える」のページで推薦されている中の2つが詳しい


スケーラブルでセキュアなマルチ VPC の AWS ネットワークインフラストラクチャを構築する

https://docs.aws.amazon.com/ja_jp/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/welcome.html


Amazon Virtual Private Cloud の接続オプション

https://docs.aws.amazon.com/ja_jp/whitepapers/latest/aws-vpc-connectivity-options/welcome.html


AWSのプレゼン


前半のAWSネットワークサービスの時系列の話がとても良いです。PDF版では省略されていますので動画で。

「ネットワークデザインパターンDeep Dive」 | AWS Summit Tokyo 2019

https://www.youtube.com/watch?v=6I7jQOLOiWY


プレゼンがとてもよい。

AWS re:Invent 2017: Networking Many VPCs: Transit and Shared Architectures (NET404)

https://www.youtube.com/watch?v=KGKrVO9xlqI


これは特に勉強になりました

20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続

https://www.slideshare.net/AmazonWebServicesJapan/20200219-aws-black-belt-online-seminar-aws


AWS Black Belt Online Seminar 2017 AWSへのネットワーク接続とAWS上のネットワーク内部設計

https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2017-awsaws


パケットの気持ちになって辿るAmazon VPC のルーティング

https://pages.awscloud.com/rs/112-TZM-766/images/AWS-08_AWS_Summit_Online_2020_NET01.pdf


20210209 AWS Black Belt Online Seminar AWS Direct Connect

https://www.slideshare.net/AmazonWebServicesJapan/20210209-aws-black-belt-online-seminar-aws-direct-connect


2018年のもの。AWS Black Belt Online Seminar AWS Direct Connect

https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-aws-direct-connect-123494683


AWS blog

Route53 resolverが出るまでは、DNS forwarderとか使って複雑でした、という話。

https://aws.amazon.com/jp/blogs/security/how-to-set-up-dns-resolution-between-on-premises-networks-and-aws-using-aws-directory-service-and-amazon-route-53/


番外

さくらインターネットからAWS Direct Connectに接続するマニュアル

https://manual.sakura.ad.jp/cloud/network/aws-connect.html


2021年6月25日金曜日

AWS 認定 機械学習 – 専門知識(MLS)に合格したときのまとめ

AWS認定7つ(アソシエイト3、専門4)取得してから受験しました。スコア903で合格。


機械学習の経験

  • 過去、業務で2年くらいデータエンジニア+機械学習で解析をしていた
  • CourseraのAndrewNgの講座を受講したことがある
  • Sebastian Raschkaの本(Python機械学習プログラミング)は読んだことがある
  • オライリーの斉藤ディープラーニング本(1)を読んだことがある

あまり体系立てて勉強をしたわけではないです。かなり忘れていたので基本から覚え直しました。

勉強内容

  • AWS SageMakerビルトイン機械学習サービスの使いどころ
  • 機械学習の基本的なこと、モデルのチューニング
  • データの前処理(ほとんどDASでカバー)
  • AWSのMLサービスは少しだけハンズオンで触りました(Transcribe, Lex, Pollyとか)

他の認定試験との位置づけ

AWS認定試験12冠になったのでまとめ - shimo lab2

DASのデータ収集、ELT処理などが内容かぶっているので先に受けておくと楽かもしれません。

AXSでのアレクサの考え方はLex、Pollyにつながっていますが、別に勉強していなくてもよいかも。

勉強のリソース

G検定の黒本

やさしめの内容でしたが用語の整理に良いです。

Sebastian Raschka本

コードもあってけっこう詳しくて良いです。

Andrew Ng の Coursera Machine Learning

解り易くて良いです。若干古いといえば古いですが、式やグラフを使ってoverfittingやunderfittingを理解することができて良いです。コースを全てやるならコードがMATLABなのが難点でした。講義はyoutubeにも全話あります。

例えば下記はLeaning curveについて。overfitting, bias, varianceなどの解説。

Lecture 10.6 — Advice For Applying Machine Learning | Learning Curves — [Andrew Ng] - YouTube

機械学習の個人ブログ

沢山ありますが、あまり理解の助けになりませんでした。何故それを使うのか、ということよりも理論的な解説が多い傾向があります。

AWSのドキュメント

SageMakerのドキュメントと合わせて、AWS MLのドキュメントも意外に勉強になりました(古いのでサービスは使わない)。AWSブログなども合わせて詳しい解説が沢山ありました。

以下自分のブックマークです。

回帰モデルの洞察- Amazon Machine Learning

複数モデルクラスの洞察 - Amazon Machine Learning

SageMakerのサンプルが大量にあるAWS公式Github aws/amazon-sagemaker-examples: Example notebooks that show how to apply machine learning, deep learning and reinforcement learning in Amazon SageMaker

Amazon SageMaker BlazingText: Parallelizing Word2Vec on Multiple CPUs or GPUs | AWS Machine Learning Blog

Amazon SageMaker BlazingText を使用して強化されたテキスト分類と単語ベクトル | Amazon Web Services ブログ

SageMaker トレーニングおよび推論ツールキットの使用 - Amazon SageMaker

Amazon SageMaker の自動モデルチューニングで、ランダム検索とハイパーパラメータスケーリングをサポート | Amazon Web Services ブログ

Amazon SageMaker Studio notebooks で独自のカスタムコンテナイメージを使用する | Amazon Web Services ブログ

Amazon SageMaker Object2Vec の概要 | Amazon Web Services ブログ

Amazon Elastic Inference を使用して Amazon SageMaker で PyTorch モデルの ML 推論コストを削減する | Amazon Web Services ブログ

異常検出にビルトイン Amazon SageMaker Random Cut Forest アルゴリズムを使用する | Amazon Web Services ブログ

Understanding Amazon SageMaker notebook instance networking configurations and advanced routing options | AWS Machine Learning Blog

PCAの例 Running Principal Component Analysis in Amazon SageMaker | AWS Machine Learning Blog

データアクセス制御のためのポリシーの例が豊富 Millennium Management: Secure machine learning using Amazon SageMaker | AWS Machine Learning Blog

Optimizing costs for machine learning with Amazon SageMaker | AWS Machine Learning Blog

Introduction to Amazon SageMaker Object2Vec  | AWS Machine Learning Blog

Overview of containers for Amazon SageMaker :: Amazon SageMaker Workshop

[AWS Summit Tokyo 2019] Amazon SageMaker Deep Dive


その他

Notes on Parameter Tuning — xgboost 1.5.0-SNAPSHOT documentation

 CS 230 - リカレントニューラルネットワーク チートシート

CS 230 - 深層学習のアドバイスやコツのチートシート

TensorFlowを使って学習率による動きの違いを確認する - Qiita

深層学習オプティマイザの比較評価|トレンドコラム|GPUサーバープラットフォームの設計/構築なら「技術力」のNTTPC

Optimizer入門&最新動向

sklearn.feature_extraction.text.TfidfVectorizer — scikit-learn 0.24.2 documentation

Visualization of SVM Kernels Linear, RBF, Poly and Sigmoid on Python (Adapted from: http://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html)



2021年6月21日月曜日

CapsLockがonかoffかを判定するシェルスクリプト

CapsLockの状態によって分岐させたかったので判定するスクリプトを書きました。xset qでキーの状態を出してgrepでCaps Lock  の状態を見ています。


#!/bin/bash


check=$(xset q | grep -q 'Caps Lock:   off';echo $?)


if [ $check -eq 1 ] ; then

echo Caps Lock on

elif [ $check -eq 0 ] ; then

echo Caps Lock off

fi


参考

https://unix.stackexchange.com/questions/359403/one-liner-to-see-if-grep-returned-something


2021年6月20日日曜日

Ubuntuで Capslockを全角半角キーとして使う

試した環境 Ubuntu20.04

キーボード配置 英語

fcitx, mozc

やりたいこと

  • 「CapsLock」を「全角半角」に(本来英語キーボードにはない)
  • 英数のときは小文字であること
  • 日本語のときも小文字であること(F10押すと小文字になること)
  • CapsLockは使えない状態にする

X11のファイルを設定する

 /usr/share/X11/xkb/symbols/capslock を見ると、どういう書き方になるかを確認できます。

/usr/share/X11/xkb/rules/evdev の中にコマンド群があって、caps: ...  という項目が並んでいるので

caps:mycaps   =   +mysetting(mycaps)

を適当な場所に追加します。(caps:mycaps という設定をmysettingファイルのmycaps   から読む、という意味)

次に、設定ファイルを作ります。/usr/share/X11/xkb/symbols/mysetting に以下を書き込んで保存します。(mycapsを呼び出すと、CAPSをZenkaku_Hankakuにする、という意味)

hidden partial modifier_keys

xkb_symbols "mycaps" {

    key <CAPS> { [ Zenkaku_Hankaku ] };

};

ここまで設定して、

$ setxkbmap -option caps:mycaps

とすると、CapsLockがZenkaku_Hankakuに変更できます。

設定ショートカットを作る

頻繁に設定がリセットされてしまうので、ショートカットを設定します。リセット自体は防げないようです。

mozc_reset.sh という名前(任意)でファイルを作ります。

このシェルスクリプトでは、fcitxを上書きしてからsetxkbmapを実行しています。

#!/bin/bash

# if Caps Lock is on, turn off
check=$(xset q | grep -q 'Caps Lock:   off'; echo $?)
if [ $check -eq 1 ] ; then
xdotool key Caps_Lock
fi

# reset fcitx-mozc
fcitx -r 1>/dev/null 2>&1
sleep 1s

setxkbmap -option caps:mycaps

パーミッションを変えておきます。

$ chmod 755 mozc_reset.sh

実行確認します。

$ bash mozc_reset.sh

ショートカットとして追加

Setting->Keyboard Shortcuts  + を押して追加ウィンドウ

Name: (任意)

command: bash mozc_reset.sh

Shortcut:  (任意) 

とりあえず使えています。たまに2回ショートカットを動作させないと正しく動かないときがありますが・・・。

参考

https://askubuntu.com/questions/968806/remap-caps-lock-to-ctrl-b

2021年6月19日土曜日

AWS認定試験12冠になったのでまとめ

AWSの認定試験を12個全て取得したので感想を書きます。あくまで個人の感想です。2021年6月までの話ですので、その後の講義や本の情報はアップデートされていません。


受けた動機

業務では新規事業開発の部署にいて、Webアプリケーションの企画やプロトタイピングをしたり、Pythonでデータ分析アルゴリズム作ってみたり、SORACOM回線とRaspberry Piでデータ送信したり、ということをしていました。

AWSに関しては、別の部署に依頼する形で少し知っていた程度ですが、自分でもやってみようと思い勉強し始めました(2019年11月頃)。

最初はソリューションアーキテクトだけ取ればいいかと思っていましたが、コロナ禍で引き籠っていたこと、SAPの一度目の受験で落ちて悔しかったこと、やっている内に面白くなったこともあり全部取れるまで続けられました。

スタート地点

キャリアの途中でIT系に移ったのですが、3年目で応用情報取れたくらいのところで、AWSの勉強を始めました。ただ、特にネットワーク関連はほとんど分かっておらず、ほとんど1から勉強したに近いです。データベース、仮想化、コンテナもチュートリアル程度しか知識ありませんでした。

英語はまぁまぁ得意です。英語のドキュメントが多かったのでかなり有利だったと思います。

受験日とスコア

受験日試験名スコア
2020年3月ソリューションアーキテクト アソシエイト(SAA)771
2020年7月ソリューションアーキテクト プロフェッショナル(SAP)684*
2020年10月ディベロッパー アソシエイト(DVA)959
2020年10月SysOps アドミニストレーター アソシエイト(SOA)763
2020年12月データベース 専門知識(DBS)774
2020年12月セキュリティ 専門知識(SCS)891
2021年3月データアナリティクス 専門知識(DAS)806
2021年3月Alexa スキルビルダー 専門知識(AXS)826
2021年5月機械学習 専門知識(MLS)903
2021年5月DevOpsエンジニア プロフェッショナル(DOP)868
2021年6月高度なネットワーキング 専門知識(ANS)835
2021年6月ソリューションアーキテクト プロフェッショナル(SAP)887
2021年6月クラウドプラクティショナー(CLF)943

  • SAPの1回目(*)は不合格で、他の認定を取ってから再受験しました。
  • クラウドプラクティショナーを一番最後にしたのは、受験料が高い試験に落ちたときに50%引きバウチャーを安くゲットできるように、後に取って置いたためです。
  • 大阪在住なので、コロナが減少傾向のときの合間を縫って受けました(勉強は並行)
    • 2021年5,6月にMLS、DOP、ANS、SAPを立て続けに取っていますが実際は1月頃から勉強していました


感想など

  • 各試験の難易度としては、プロフェッショナルが難しい、専門知識の中ではネットワークと機械学習が難しい、という感じです(他の方々と同じ意見)。
  • この試験の勉強が実務に役立ちそうかというと、どの試験もベストプラクティスやトラブルシューティングを想定した学習になっているので、かなり役立つと思っています。
    • 一方で座学中心なので、手を動かす部分がどうしても足りないので今後の課題です
  • ネットワークの試験はあまりハンズオンができない分、ネット上の資料が充実していたような気がします。機械学習も、資料が膨大にあったのでそこまで困りませんでした。
  • 勉強しているうちに、「ネットワークというのは結局のところビットのパケットが流れているんだなぁ」「データ解析とかも結局はビットをアレコレしているんだなぁ」、ということがぼんやりと理解できて、面白く感じるようになりました。
  • 「ちょっとわかってきたな」と思えるようになると、ネット上の資料の間違いに気づけるようになりました。多いのはAWS公式ドキュメントの日本語訳の間違いですが、個人や企業のサイトでもたまに間違っているので注意が必要です。(まぁこのブログも間違いがあるかもしれませんが)
  • 勉強しているときは、半分くらいは英語の資料を読んでいたような気がします。残念ながら、AWS公式ドキュメントの日本語訳の質は低いものが多いです。怪しいなと思ったら英語に切り替えて読むのが重要かと思います。


勉強方法

  • 「問題を解く→正答と誤答の理由を理解する」の繰り返し
  • チュートリアルなどを実際にやって動かしてみる
  • 自分用のノートファイルを作る。解らなかったこと、解ったこと、などを書いていく。後で検索できるように、とか見直しができるように、というようにする。あとあとで、業務などでも見返せるようにするのが理想。
  • 「発表から半年以内のものは試験には出ない」と公式セミナー(SAP Readiness)の中で述べられています。教材が古すぎると追加された機能がスルーされていたりするので、注意が必要です。概ね、2回前のRe:Inventの内容を確認しておけば良いのではないでしょうか。

Udemy

14つ受講しました。他のオンライン講座は特に見ていませんが、いろいろとあるようです。Udemyほとんどの講座をクーポンやセールで1200円(底値)で買えました。公式のクーポンよりも、講師が出すクーポンの方が安くなるときがあります。

Stephane Maarek 先生の講座には本当にお世話になりました。この先生はフランス出身らしいですが、英語がとても聞きやすかったですし、プレゼンもアニメーションが凝っていたりして上手。教えることに熱意を感じます。

2020年前半頃は日本語の教材が少なかったですが、本も続々と新しく出てきているので選択肢が広がってよいですね。
  • Udemy 良かったもの
    • Stephane Maarek のSAP、DOP、SOP、DVA、DBS、Practice Exam(DBS、DVA)
    • Jon BonsoのSOP Practice Exam
  • Udemy いまいちだったもの
    • Stephane Maarek のMLS、DAS(もう一人の先生が全然合いませんでした。内容が古い)
    • 同SAP、 DOP Practice Exam(文が長すぎて辛い。内容が古い気がする)
    • Shingo Shibata SAA、SAP 模擬試験(日本語なのは良いが、内容は良くない。校正できてなさすぎて辛い。自動翻訳なのではという苦情あり)

Qwiklabs

(サービスがなくなったようです@2021年)1か月だけ登録、55ドル課金。アソシエイト全部取ったあとにやりました。合わせて500ドル分くらいはできたので、お得だと思います。無料のものもあります。

特に良いなと思ったのは、こんな感じです(あまり認定試験に関係ないですが)
  • Build a Serverless Text-to-Speech Application with Amazon Polly
  • Building Serverless Applications with an Event-Driven Architecture
  • Automated Video Editing with YOU as the Star!
  • Deploy an End-to-End IoT Application
  • Troubleshooting Serverless Applications

AWS WEB問題集で学習しよう

サンプル問題だけ問いて、その後はやりませんでした (サンプル問題が難しすぎて、不安を煽って有料会員登録させようとしているな、と思ってしまったので)。 評判はいいみたいですね。

AWS本


「AWS認定ソリューションアーキテクト-プロフェッショナル ~試験特性から導き出した演習問題と詳細解説」

SAP用。この本はかなり良かったです。問題文が若干長すぎて辛いですが。


「AWS認定アソシエイト3資格対策~ソリューションアーキテクト、デベロッパー、SysOpsアドミニストレーター」

アソシエイト3種用。上記と同じ方々の本です。とても良いです。


「一夜漬け AWS認定ソリューションアーキテクト アソシエイト直前対策テキスト」

SAA用。なかなか良かったです。初版だったので誤植が多かったです。はっきり言って一夜漬けは不可能だと思いますが(出来る人にこの本は不要)


Exam Readiness

AWS公式の無料動画+問題の教材です。練習問題もそれなりにあって勉強になります。

動画のUIが古く、再生スピードが変えられない、巻き戻しができないときがあるのが難点でしょうか。内容も少し古めです。英語しかないものもあります。

BlackBelt


資料だけ見るよりも、動画で学習するのが良かったです。2倍速再生していました。特に理解が進んだと思ったのは、DirectConnect、SSM、KMS、MLシリーズらへんで、とても良かったです。専門やプロフェッショナルでは、Q&Aも読むと理解が深まるかと思います。

Re:Invent


最新の発表のものは認定試験には出ないので、しっかり見る必要はないかもしれません。1,2年前のものを見ると良いかと。壇上でのデモが問題の元ネタになっているものもありました(DynamoDBで投票とか)。

AWS Summit


たまにすごく良いのがありますが、探すのが大変かもしれません。誰かが推薦していたら読む、程度でいいかも。

かかった費用

この期間にかかったお金をざっくり計算します。

受験料と模擬試験の費用の合計:19万9800円。
(SAPの不合格がなくてストレート合格だったら、あと10,250円分安くなっていたはず・・・)

udemyが14つで2万円くらい。

教科書1万円くらい。

qwiklabで6000円くらい。

AWSそのものの使用料は1000円もいかないくらいでした。ほとんどFreeTierでやったので。

個別の認定のまとめ






Ubuntu20.04,22.04でフォントのインストール

 VSCodeで使いたかったので'Ricty Diminished'をUbuntu20.04にインストールしました。


フォントはここからダウンロードする。https://github.com/edihbrandon/RictyDiminished

Zipファイルを解凍する。


font-managerをダウンロード

$ sudo apt install font-manager

$ font-manager


UbuntuのFontManagerで、 「+」(追加)でttfファイルを全て選ぶ。一覧に現れたら成功。Ricty Diminished Dicordとの違いはヒゲが追加されているかとかのようです。



VSCodeで使うときは、VSCodeを一度再起動するとフォント設定が反応するようになりました。