Knowledge Stones

フリーランスエンジニアの技術ブログです。

LINE Messaging APIを使用してチャットボットを作ってみる【②Lambdaで実装編】

f:id:polar_bear_tech:20190911232546p:plain

Lambdaで作ってみよう

AWS Lambdaはサーバーレスのスクリプトなので、サーバーを立ち上げる手間なく動作の確認ができるので、手始めにはオススメです。

流れは大体こんな感じです。

  1. AWS Lambdaで実装
  2. AWS API Gatewayの設定
  3. LINE BotアカウントにWebhookを設定

 

続きを読む

LINE Messaging APIを使用してチャットボットを作ってみる【①導入編】

オリジナルのチャットボットを作ってみた

先日の記事ではWebスクレイピングについて書きましたが、それで何を作っていたかというと、LineのMessagingAPIを使ったチャットボットを作っていました。

これです。

github.com

中身はスプラトゥーン2の武器をランダムで選んでくれる機能とか、フェスに投票して勝率を集計する機能とか、大したものではないですが盛り込んでいます。

 

作ってみて思うのは、「一般的なWebアプリケーションよりも簡単にできる」ということです。

 

UIはLINEのアプリケーションで既にデザインされており、こちらはシンプルな形式でコンテンツを配信するのみだからです。

あまりアプリケーションを作った経験がなくてもできると思うので、どうやって作るのかをいくつかの記事に分けて投稿していこうと思います。

 

続きを読む

RubyでWebスクレイピングして画像を一括ダウンロードする

 

まえがき

最近、Railsを使ってスプラトゥーン2のLineボットアプリを作ってみています。

作るにあたって、ゲームに登場するブキの画像をアプリ内で使いたかったんですが、公式がまとめて配布しているなんて都合の良いこともなく、地道にネットに転がっている画像を集めることになります。

何かを作るって時は大概こういう面倒な収集作業があるもので、時間もかかりますよね。

そこで、Webスクレイピングを使って、素材の収集作業を効率化しよう!となったわけです。

 

やりたいこと

対象はこのサイトです。

【スプラトゥーン2】全武器(ブキ)一覧とサブ・スペシャル|ゲームエイト

各ブキ情報のページにお目当の画像があるので、

  1. 一覧ページから詳細ページのURLを取得
  2. 各詳細ページから画像URLを取得
  3. 画像URLからダウンロード

こんな流れで処理できれば、一発で全部取れんじゃん?

 

続きを読む

AWS認定 クラウドプラクティショナー試験に向けての準備(後編)

クラウドラクティショナー試験に向けて学習すべきポイントと方法

2019年7月3日、クラウドラクティショナー合格しました!

実際に受験してみて、個人的に思う特に学習すべきポイントを挙げると、下記3点でしょうか。

  • 各種AWSサービスの概要は網羅すべし
  • 責任共有モデルの範囲を理解すべし
  • クラウドサービスの特徴・メリットを理解すべし

これらを覚えるための学習リソースは、以前記事にも一部記載しましたが、最終的に下記のラインナップでした。

※前回の記事

polar-bear-tech.hatenablog.com

 

一応、AWSの利用経験は2年程度ありましたが、準備期間として要したのは1カ月未満でした。決して高すぎるハードルではなく、しっかり準備すれば合格できる難易度に感じましたよ。

 

ただ、ナメてかかって落ちても1万円かかりますからね・・・
以下より、詳細なポイントと学習のための関連資料を書いていきますので、受験の参考にしていただければと思います。

 

※以下で紹介するのは、あくまで個人的に重要と考えたポイントであり、出題傾向を示唆するものではありません。
また、AWS認定の規約に則り、具体的な問題の内容などは記載していません。

 

続きを読む

AWS ルートアカウントのMFA(多要素認証)を有効にする

AWSのアカウントを作成したら早めにやっておこう

AWSにおけるルートユーザーアカウントは、AWS IAMの管理ができて、リソースへのフルアクセスが可能なアカウント。

もし乗っ取られたら・・・ユーザーは抹殺され、リソースは蹂躙され、完全に支配されてしまうでしょう。

なので、AWSのベストプラクティスに従ってMFAを有効化してみようという記事です。

 

AWS Trusted Adviserを使用して、セキュリティ設定の最適化推奨事項がみられますが、AWSアカウントを登録してIAMユーザーを1つ作成した時点で下図のようになっています。

f:id:polar_bear_tech:20190627183813p:plain

重要なチェック事項として「ルートアカウントのMFA」が挙げられています。
これに対応していきます。

 

手順の概要

ざっくり下記の流れです。

  • MFAに使用できるアプリをスマホにインストールする
  • ルートユーザーアカウントでサインイン
  • IAMダッシュボードからセキュリティ認証情報設定画面へ
  • MFAの有効化を選択する
  • MFAアプリを使用してQRコードを読み取り、連携設定をする

 

ルートユーザーアカウントのMFAを有効化する

まず、AWSコンソールにルートユーザーアカウントでログインして、IAMのダッシュボードを開きます。

IAMユーザーの作成やポリシー設定などは既に行ったうえで、Warningマークがついている「ルートアカウントのMFAを有効化」項目を開き、ボタンをクリックします。

f:id:polar_bear_tech:20190627184108p:plain

すると、「セキュリティ認証情報」という画面に移動しますので、「多要素認証(MFA)」項目を開き、ボタンをクリックします。

f:id:polar_bear_tech:20190627184354p:plain

ポップアップ画面が表示されるのでで、MFA認証デバイスの登録を行っていきます。
今回使用するのは、仮想MFAデバイスなので、一番目の項目を選択。

f:id:polar_bear_tech:20190627184549p:plain


ここでQRコードの表示とMFAコードの入力項目が出てきます。
QRコードの表示」をクリックして表示させましょう。

f:id:polar_bear_tech:20190627184708p:plain

 

MFAに使用するアプリケーションのインストール・設定

ページ下部の参考リンクにAWSの公式ページを載せました。
サポートされている仮想MFAアプリケーションの中から、「Authy 2段階認証」を使用したいと思います。

f:id:polar_bear_tech:20190627182803p:plain

 

アプリケーションを実行して、基本設定をしましょう。
電話番号やメールアドレスの登録と、SMSによる番号認証があります。

基本設定が完了したら、+マークからアカウントを追加します。

f:id:polar_bear_tech:20190627183033p:plain

QRコードの読み取り画面に移るので、先ほどAWSコンソールに表示させたQRコードを読み取りましょう。

f:id:polar_bear_tech:20190627185139p:plain

読み取ると、アカウントの情報をバックアップするための画面へ移ります。

例えばスマホをなくした、壊れたというときに、取り込んでいたアカウントの情報が一緒になくなってしまい、MFA認証できなくなった!となると詰んでしまうので、
ここでパスワードをかけてバックアップできるようです。

f:id:polar_bear_tech:20190627185427p:plain

次に、アカウント情報に名前とアイコンを付けます。
カギマークをタップすると、アイコンの選択肢が出てきますので、「Amazon Web Service」を選ぶと、他のMFA認証を追加していく際に判別しやすくできますね!

アカウント名は任意でよいかと思います。

f:id:polar_bear_tech:20190627185623p:plain
f:id:polar_bear_tech:20190627185627p:plain

設定が完了するとおもしろいポップアップ。
Authyを使って2段階認証を設定しました!という情報をシェアしませんか?という。

f:id:polar_bear_tech:20190627185957p:plain


もちろんエンジニア映えするのでTweetしました。

 

そして認証コードが表示されるようになりました!
一時的な番号なので張ってもオッケー。

f:id:polar_bear_tech:20190627190256p:plain

 

AWSコンソールにMFAデバイスを登録する(仕上げ)

最後に、AWSコンソール側にMFAコードを入力します。

コードは30秒で切り替わりますが、連続2回分のMFAコードを入力すればOKです。

f:id:polar_bear_tech:20190627184708p:plain

 

「MFAの割り当て」ボタンをクリックして、完了!

f:id:polar_bear_tech:20190627190818p:plain

 

動作確認

一度サインアウトして、うまく設定できているか確認しましょう。
できたらサインインのフローとして下図のような入力画面が増えます。

f:id:polar_bear_tech:20190627190730p:plain

 

Trusted Adviser先生のお怒りは静まったかな・・・?

f:id:polar_bear_tech:20190627190859p:plain

静まりたもうた。

 

終わりに

AWSは1年間無料枠があって、気軽に体験できるようになっているけど、
気軽に使い始めた時にセキュリティ周りを設定していないと、万が一ってこともある。

ぶっちゃけ始めてAWS触ってみた時はこんな設定存在も知らなかったのでやっていなかった。

これを設定するきっかけは、Trusted Adviser先生の存在を知ったことと、AWSのベストプラクティスを軽く学習したおかげだった。

セキュリティ設定は甘く見ないで丁寧にやっていかねばと心に刻んだ次第です。

 

参考

MFAに関するAWSのページ
https://aws.amazon.com/jp/iam/details/mfa/

 

AWS認定 クラウドプラクティショナー試験に向けての準備(前編)

クラウドラクティショナー受験に向けてこれをやる!

  • 試験ガイダンスを読む
  • AWSの無料Eラーニングを受講する
  • ホワイトペーパーを読む
  • サンプル問題を解く
  • 模擬試験を受ける

この記事では、AWSの無料Eラーニングについて主に記載します。

実はまだ鋭意勉強中なので・・・上記の準備をした上で模擬試験、実際の試験を受けて、その結果でもって、勉強方法の参考にしていただければと思います。

 

続きを読む

AWS Summit Tokyo 2019 に行ってきたレポート

AWS Summit のここがすごい

  • お昼ご飯を配布!?ランチセッション!
  • 後部席でも聞き取りやすいぞサイレントセッション!
  • 開発者からサービス運用者までためになるぞ!企業ブース!
  • 一般参加できる AWS DeepRacer!
  • お酒や軽食も振舞われる楽しいreMixコーナー!

終始驚きがあって楽しかったAWS Summit 2019。
参加レポートということで魅力や雰囲気が伝わればと思います!

 

続きを読む