AWS re:Invent 2017 で発表された新サービスと機能 | AWS

AWS re:Invent 2017 で発表された新サービスと機能 | AWS. Amazon Kinesis Video Streams を使用すると、カメラ、RADAR、熱センサー、その他の接続されたデバイス… 続きを表示. Amazon Kinesis Video Streams を使用すると、カメラ、RADAR、熱センサー、その他の接続されたデバイスなどのソースから、機械学習 … 続きを読む

(皆さんに話を聞きました)後編

2018年2月6日掲載. こんにちは。シイノキです。年が明けたと思ったら、あっという間に2月がやってきます。3学期なんてあってないようなもの…とすると息子はもう大体2年生だし、あっという間に小学校も卒業しちゃったりするんだろうなぁと、早すぎる未来に想いをはせたりしています。 さて、昨年開催された「AWS re:Invent … 続きを読む

AWS 認定 Proffesional level を大体一ヶ月で取った話

はじめに

  • 去年の7~8月ぐらいにAssociate levelを3つまとめて取って、AWS 認定 Associate level を大体一ヶ月で取った話(https://qiita.com/yutaChaos/items/2b0b8d9bfe76a597953c) という記事を書きました。その記事の続編です。
    そこから続けてProfessionalも取るぞーと思ったのですが、すこしモチベーションが下がってしまい、ちょっと間が空いてしまいましたが、12月にre:Inventに行かせてもらったこともあり、モチベーションが上がったので、今年の1月に Solutions ArchitectDevOps EngineerProfessional Levelを取得しました。ふりかえりのために勉強方法や感想をまとめたいと思います。

AWS経験

  • 前職まではオンプレのみでAWS経験なし。
  • サーバサイドエンジニア(主にPHP,node,java)
  • 今の会社に入って1半年でVPC,EC2,RDS,ELB,S3を業務で使用。SNS,SQS、DynamoDBなどのサービスは触ったことがない。

勉強期間

  • 12月の終わりの正月休みなどを利用しつつ大体2週間程度
  • 通勤でdocumentを読んだり、休みの日は喫茶店で3~4時間程度勉強していました(家だとあまり集中が出来なくて・・・)

試験の難易度について

  • 個人的な印象ですが、難易度は Solutions Architect > DevOps Engineer だと感じました。
  • Proffesional Levelの問題はAssociate levelと比べると機能の暗記というよりもユースケースからベストプラクティスをどう導き出すか?という観点が多かったように思えます。

取得した資格

  • AWS Certified Solutions Architect – Professional 2017/1/9 取得
  • AWS Certified DevOps Engineer – Professional 2017/1/25 取得

学習を始める前の注意

出題範囲と配点をよく確認する。

  • 各認定のページで出題範囲とサンプル問題がダウンロードできるので、出題範囲と配点はよく確認しておく。
  • Associateでもそうでしたが、Professionalでも基本出題範囲と傾向は点数を取るために重要でした。
  • AWSのサービスは大量にあるのでむやみやたらに勉強するときりがない。出題されない部分ばかりを勉強してしまうと悲劇を起こします。(実体験)
  • 資格によって、各分野の採点配分が異なるので重点を置いて、学習する部分も出題範囲を目安にした方がより効率的に学習できると思います。
  • 公式のblack beltでもAWS認定についてのslideがあるのでこちらを確認することもオススメです。

受験メモ

  • 試験のアグリーメントで試験内容のことは細かく書けないので、各試験の受験後のメモを書いておきます。

AWS Certified Solutions Architect 受験メモ

  • Direct Connectが多いように感じた。
  • リアルタイムはとりあえずkinesis
  • STS連携の問題切り分けておいたほうが良い
  • 問題文のうちの2つぐらいは除ける、のこり2つはどちらも可能であるが、どちらのほうが良い。という問題

AWS Certified DevOps Engineer 受験メモ

  • 問題の大半はCloudFormation,Elastic Beanstalk,OpsWorks の出題傾向が多かった。
  • CloudFormationはparamterや機能名が出て来ることも多い。
  • blue-green deploymentsはもっと勉強しておけばよかった。

勉強方法

  • 今回はいくつかの学習サイトやインターネットの記事を参考に勉強することが多かったです。Associateの勉強は完全に日本語オンリーでやっていましたが、Proffesionalだとあまり日本語の情報もなく、途方にくれていた所、英語圏だと結構情報が多かったので問題傾向や学習内容は英語のものを頼る部分が多かった。
  • 基本的な内容はLinux Academy、わからない問題はdocumentとネットで検索してという形が多かったです。

Linux Academy

  • オンライン学習サービスのLinux Academy( https://linuxacademy.com/ )のAWSコースを受講してみました。(多分日本語で出てくるリナックスアカデミーという学校とは別物)
  • AWS Certified Solutions Architect – Professional Level
  • AWS Certified DevOps Engineer – Professional Level
  • Linux Academyのコースは前編英語です。結構細かい所まで解説してくれるので非常に勉強になります。Cloudの勉強としてはクオリティが高く、結構良かった。
  • 反面試験勉強という観点だけで見ると過剰な部分もある。
  • アプリもあって、videoを保存して見ることも出来るので通勤でも使えた。

A Cloud Guru Forums

  • A Cloud Guruというクラウドの普及活動などをしている団体のforumです。(serverlessconfとかでも有名)
  • 各自の試験の質問や報告などが頻繁に投稿されていて、情報を集めるのに便利。
  • https://acloud.guru/forums/home

Jayendra’s Blog

  • Solutions Architect Professionalのサンプル問題や各解説がたくさん載っているブログ、ただ微妙に正解か怪しい問題も結構ある。
  • http://jayendrapatil.com/

meyrick.net

模擬試験

  • Professinalの模擬試験は絶対受けてください!
  • 本番より難易度が高い気がします。私は模擬試験全部落ちたorz
  • 終了後に正答率が出るので自分の傾向を調べられる.

blackbelt

よくある質問

  • 各サービスのよくある質問にあるユースケースは問題に出ることもあるので確認

AWS クラウドサービス活用資料集

  • https://aws.amazon.com/jp/aws-jp-introduction/
  • AWS公式の中で一番情報がまとまっているのはクラウド活用資料集でした。ユースケースや各オンラインセミナーへのリンクがまとまっています。

公式トレーニング

  • 私は受けたことがありませんが、AWS公式のトレーニングコースがあってもし会社が出してくれたり、余裕があれば受けてみることをおすすめします。

受験

受験方法

  • 2017年の9月からAWSの試験業者がPSIに変更され、受験方法が少し変わりました。テストセンターで受験することはかわらないのですが、kiosk端末で受けてWebカメラで監視されつつ、チャットで指示を受けつつ受験する形です。
  • 今までより試験会場と試験時間が減っているので早めに予約をしたほうがよいと思います。
  • 例外で東京の場合はテンプル大学の場合はkiosk端末ではなく、今までと同じPCだけで受験出来るようになっているので、監視とかが気になる方にはおすすめです。

受験時

  • professionalは80問と問題数も多いので、制限時間170分内に全ての問題を終わらせるためには一問あたり最大2分で終わらせないといけないので、わからない問題にはチェックをつけて、後で回答するようにする心構えぐらいで受けたほうが良い。

さいごに

  • とりあえずAWSの基本の5種が制覇出来たのですごくうれしい!
  • 次はAWS specialityか、Azure or GCPの他のクラウドベンダーの知識もつけていきたい。

続きを読む

マイクロサービス | Developers.IO

AWS re:Invent 2017 シリーズ. 【レポート】可用性のモデル #reinvent #arc321 · AWS特集 · レポート. 記事; 2018年01月26日; 稲葉純; 1. はじめに 本記事はAWS re:Invent 2017のセッション「ARC321 – Models of Availability」のレポートです。 本セッションはすでに動画、スライドが公開されています。 動画 スライド […] AWS. 続きを読む

AWS AppSyncとReactでToDoアプリを作ってみよう (0)はじめに

昨年12月のAWS re:Invent 2017で発表されたAWS AppSyncのパブリックプレビュー申請が通ったので、ToDoアプリの作成を例にして、AppSync + ReactでWebアプリを構築する際の流れを紹介していきたいと思います。

この記事で取り上げる内容

この記事では、あえてGraphQLスキーマの定義からReactでのクライアント側の実装までを順を追って説明していきます。
ToDoアプリのスキーマについては、AWS公式ドキュメントのDesigning a GraphQL APIに記載されている内容に沿って作成していきます。

とりあえずサクッとサンプルを動かしたいという方は、次のような記事の内容を参考に AWS公式のサンプルを動作させてみるのも良いと思います。(自分も最初はこのサンプルを動かしてみて雰囲気を掴みました)

目次

今回は、記事が長くなりそうなので、何回かに分けて内容を紹介していきます。

  1. AWS AppSyncとReactでToDoアプリを作ってみよう (0)はじめに ←今回はこの記事
  2. AWS AppSyncとReactでToDoアプリを作ってみよう (1)GraphGLスキーマの定義
  3. AWS AWS AppSyncとReactでToDoアプリを作ってみよう (2)DataSourceとResolverの設定
  4. AWS AppSyncとReactでToDoアプリを作ってみよう (3)Reactアプリの作成

事前知識

GraphQL

AWS AppSyncでは、クライアントからAppSyncで作成したAPIへのクエリの際にGraphQLを利用します。

次の記事などを参考にしてサラッと概要を掴んでおけば、問題ないかと思います。

React

今回の記事では、AWSからクライアントライブラリが出ていて、一番簡単に実装できそうなReactでクライアント側の実装を行います。
使用するライブラリaws-appsyncが、内部的にReduxを使用しているため、React + Reduxに触ったことがあるとよいかと思います。

注意点

この記事は、AWS AppSyncのパブリックプレビュー時点(2018/01/22)の内容を元に紹介している内容です。

続きを読む

AWS GreengrassにKerasのモデルをデプロイしてみた

AWS GreengrassにKerasのモデルをデプロイしてみました。

きっかけ

Re:Invent 2017で発表された新サービス「AWS Greengrass ML Inference」にプレビュー申請したところ、残念ながら結果はNot Approved。

GAまで待つのもちょっと悔しいので、普通のGreengrassにkerasのモデルをデプロイしてみることにしました。

必要なもの

  • AWSアカウント
  • Raspberry Pi

作業概要

  1. Kerasの環境準備(Mac)
  2. greengrassチュートリアル実施
  3. Raspberry PiにKeras等をインストール
  4. Kerasのモデル作成
  5. デプロイ用のLambda作成
  6. Greengrassへデプロイ
  7. 動作テスト

1. Kerasの環境準備(Mac)

MacにKerasの環境を準備します。

$ brew upgrade pyenv
$ pyenv install 2.7.14
$ pyenv virtualenv 2.7.14 keras
$ cd hoge/huga
$ pyenv local keras
$ pip install tensorflow jupyter keras h5py

2. Greengrassチュートリアル実施

Raspberry Piの環境構築を兼ねて、AWSドキュメントにあるGreengrassのチュートリアルを実施します。

「モジュール 3-I: AWS Greengrass での AWS Lambda」までの実施でOKです。

3. Raspberry PiにKeras等をインストール

こちらの記事を参考にさせて頂きました。
Raspberry Piにsshでログインしてインストールします。
熱暴走するかもとの事だったので、自分はUSB扇風機で風を当てながら一晩熟成させました。

$ sudo pip install http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastStableBuild/artifact/output-artifacts/tensorflow-1.5.0rc1-cp27-none-any.whl
$ sudo pip install keras
$ sudo apt-get install python-h5py

4. Kerasのモデル作成

今回はkerasのexampleからMNISTの文字分類のソースコードを拝借して、Kerasのモデルを作成します。

1. 上記ソースコードをダウンロードする
2. 下記3行を追記して用意した環境で実行する

model.save('mnist_mlp.h5')
np.save('x_test.npy', x_test)
np.save('y_test.npy', y_test)

3. 実行後、下記3ファイルが生成される

  • mnist_mlp.h5 (Kerasのモデル)
  • x_test.npy (画像データ)
  • y_test.npy (画像データに対応する正解ラベル)

5. デプロイ用のLambda作成

GreengrassへデプロイするLambdaを作成します。

1. BlueprintsからLambdaを作成する
AWSマネジメントコンソールでLambdaを選択後、blueprintsから「greengrass-hello-world」を選択して、Lambdaを作成します。
ロールはチュートリアルで作成したものを指定してください。
2. ソースコードを置き換える
AWSマネジメントコンソール上で、Lambdaのコードを下記へ置き換えます。

from __future__ import print_function


import greengrasssdk
from threading import Timer
import time
import keras
from keras.models import load_model
import numpy as np
import random

client = greengrasssdk.client('iot-data')
x_test = np.load('x_test.npy')
y_test = np.load('y_test.npy')
x_test = x_test.reshape(10000, 784).astype('float32') / 255
model = load_model('mnist_mlp.h5')


def greengrass_keras_prediction_run():
    r = random.randrange(10000)
    prediction = model.predict(x_test[r].reshape(1, 784))
    predicted_value = np.argmax(prediction[0])
    answer = y_test[r]

    message = 'predicted value: {0}, answer:{1}'.format(predicted_value, answer)
    client.publish(topic='keras/prediction', payload=message)

    Timer(5, greengrass_keras_prediction_run).start()


greengrass_keras_prediction_run()


def function_handler(event, context):
    return

3. デプロイメントパッケージをダウンロードする
AWSマネジメントコンソールから、Lamdbaのデプロイメントパッケージをダウンロードします。
4. mnist_mlp.h5 / x_test.npy / y_test.npyの3ファイルをデプロイメントパッケージに含める
ダウンロードしたデプロイメントパッケージを展開後、3ファイルを含めて再度zip圧縮します。
zipファイルにはフォルダを含めないように注意してください。

$ zip -r ../keras_prediction.zip *

5. デプロイメントパッケージをアップロードして、Lambdaを更新する
6. 新しいバージョンを発行して、発行したバージョンに対しエイリアスを作成する
手順はGreengrassのチュートリアルと同じです。

6. Greengrassへデプロイ

手順はGreengrassのチュートリアルと同じです。Greengrassのコンソール画面から操作します。
1. Lamdbaを登録する
一覧から作成したLambdaを選択後、Lambdaのエイリアスを指定して登録します。
2. Lamdbaの設定を変更する

  • タイムアウト:25秒
  • ライフサイクル:Make this function long-lived and keep it running indefinitely

3. subscriptionを追加する

  • ソース:Lambda
  • ターゲット:IoT Cloud
  • トピック:keras/prediction

subscription.png

7. 動作テスト

1. Greengrassのコンソール画面の左側のTestをクリック
2. Subscription Topicにkeras/predictionを指定
3. Subscribe to topicをクリック
下記が表示されれば成功です。
test2.png

雑感

AWS Greengrass ML Inferenceでは、上記のように煩雑でなく簡単に学習モデルがデプロイできるようになるでしょうか。
似たようなサービスにAzure IoT Edge(こちらも未だプレビュー)がありますが、今度はこっちをさわってみたいと思います。

続きを読む

スマートスピーカー、流行のトリガーは「オフィス」? 「Alexa for Business」の可能性 (1/2)

買おうにも、アマゾンから招待が届かずいつ買えるか分からない、音声AIアシスタント「Alexa」搭載デバイスの「Amazon Echo」。実は、これがビジネスの場面に進出しつつあることをご存じだろうか。 2017月11月に開催されたアマゾンの年次イベント「AWS re:Invent 2017」で、エンタープライズ向けの音声AIアシスタント「Alexa … 続きを読む

大企業がマルチクラウドに取り組まない理由

驚きは全くないが、Amazon Web Service(以下、AWS社)のCEO(最高経営責任者)を務めるアンディ・ジャシー氏は、自身が率いる会社について非常に強気だ。同社が2017年11月に米国で開催したカンファレンス「re:Invent」の基調講演に登壇したジャシー氏は、その直後に記者会見に応じた。この会見は約45分に及び、 … 続きを読む

AWS re:Invent 2017: How Netflix Tunes EC2

韓国では、仮想通貨の取り引きが盛んだ。 だからこそ、韓国政府が打ち出した仮想通貨の取引所の閉鎖方針に 、世界の市場が反応した。 韓国国内では、22万人以上がオンラインの嘆願書に署名し、「夢」を奪うなと訴えている。 「韓国では、自分で家を買うのは難しい。どうすれば買えるのかすら分からない」嘆願書は言う。 続きを読む