投稿者アーカイブ kuze_k

投稿者:kuze_k

API Gateway + Lambdaについて

先日はS3イベントトリガーからLambdaを起動することを試したので、今回はAPI GatewayとLambdaを連携させてみたいと思います。

私的には以下サイトが参考にできそうです。


https://qiita.com/baikichiz/items/2de7c4c0dcf9b051037a

【API Gateway】AWS Lambda統合のPythonでHello, world


【AWS】HTTP API+Lambda+DynamoDBのチュートリアルをやってみた


上記”【API Gateway】AWS Lambda統合のPythonでHello, world”を参考にして実行したところ、特に問題なく動作できました。初めてAPI Gatewayを設定しましたが賞味15分程度でできました。

APIに認証が何もないのもよくないので、今度は以下を参考にAPIキーの設定を追加してテストしました。


https://qiita.com/baikichiz/items/ed787c5c79059213401e

【API Gateway】API呼び出しにAPIキーを設定する


こちらも特に問題なく賞味10分ほどで完了できました。

私が少しつまった部分として、windows端末からcurlでテストしたのですが、–headerオプションで付ける”x-api-key:********************”と部分がダブルクォーテーションだと動きますが、シングルクォーテーションではエラーになりました。

なお、

developer associate試験については以下本を読んで勉強中です。

ポケットスタディ AWS認定 デベロッパーアソシエイト [ 山下光洋 ]
価格:2310円(税込、送料無料) (2022/4/12時点)楽天で購入

わかりやすくて良い本だと思いますが、やはり実機触りながらでないとなかなか頭に入らないですね。

読んでるだけだとよくわからないことが、実際にさわってみると結構簡単に動いて理解も早いです。

なんとか4月中に試験申し込みしたいと頑張っています。

今日はこれぐらいにしておきます。

投稿者:kuze_k

S3+lambda+dynamodb+cloudwatch logsについて動作確認

さきの投稿に続いて、週末に動作確認を行いました。

結論としては問題なく動作できました。

具体的な内容は下記サイトを参考にさせてもらいました。

https://atmarkit.itmedia.co.jp/ait/articles/2109/24/news008.html

「Amazon S3」にアップロードしたCSVファイルを「Amazon DynamoDB」に自動登録する「AWS Lambda」関数の作り方

S3,Dynamodbについてはサイトの案内の通り操作するだけなので悩ましいところはなかった。

私が少し詰まったのは、以下2点。

・lamdaに割り当てるユーザー管理ポリシー。

 新規ポリシーとしてdynamodb-put-batchwriteを作成した後で、ロールlambda-import-csv-into-dynamodbへポリシーを割り当てる。

・S3へアップロードするemployee.csv1の形式でエラー。

 最初メモ帳でcsvファイルを作成しs3へアップロードしたらcp932関連でエラー発生。

  UnicodeDecodeError: ‘cp932’ codec can’t decode

作成したCSVファイル形式がよくなかったのが原因。改めてterapadで”文字コード指定再読込”を”SHIFT-JIS”として、CSVデータを保存したところ、エラーはなくなりました(cp932=SHIFT-JISな認識)。

その他は特に止まるところもなく、賞味30分程度で一通り試せました。

S3にファイルアップロードすることで、dynamodbへデータ書き込みおよび更新までできました。cloudwatch logsへもデフォルトのままでlambdaログが記録されました。

肝心なlamdaコードについてもサイト情報そのままで動作できました。

個人的にはpythonスクリプトの部分が一番キモと思いますが、この程度のコード量なら読めば理解できますし、多少の作り変えでいろいろ試せそうに思いました。

今回はS3イベントでキックする形ですが、それ以外にもlambda起動できる条件はいろいろあるので、改めてアイデア考えて別条件でサーバレスを試してみたいと思いました。

今日はこれぐらいにしておきます。

投稿者:kuze_k

S3イベントトリガー+lambda関数実行+dynamodb書き込み

先日AWS DAの資格取得について書きましたが、本だけ読んでいてもだめなので実機触って理解を深めようと思います。

ネットで検索しているとS3+lambda+dynamodbの組み合わせでサーバレスを実現している例を見かけますので、まずはそれにならって試してみようと思います。

私的には以下が参考にできそうです。

「Amazon S3」にアップロードしたCSVファイルを「Amazon DynamoDB」に自動登録する「AWS Lambda」関数の作り方:AWSチートシート – @IT (itmedia.co.jp)

Lambdaを使ってS3に上げたログをDynamoDBに自動登録 – Qiita

S3をトリガーとするLambdaの冪等性をDynamoDBで実現してみた | DevelopersIO (classmethod.jp)

lambdaのランタイムはpythonにしようと思います。

上記を参考に見る限り簡単にできそうではありますが、週末に試してみてはまりポイントなどを後日記載しようと思います。

今回はS3からのイベントトリガーでlambda起動させる流れで考えていますが、ほかにもいろいろ連携できるようです。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-services.html

一つ連携できればそれ以外もある程度イメージできるようになるかなと思うのでまずは試してみます。

今日はこれぐらいにしておきます。

投稿者:kuze_k

WordPressのSEOについて

SEOとして何かできることはないかなと調べていたところ、プラグインで簡単にできるものを見つけたので記載しておきます。

趣味のブログとして以下をやっていますが、こちらで実施した内容になります。

趣味のブログ(車・DIY・ガーデニングなど) – Just another kuzeezuk’s blog Sites site

ALL in One SEOというプラグインです。私の環境ではプラグインにインストール済みだったので、有効化のチェックをつけるだけで”ALL in One SEO”をというメニューが表示され、設定できるようになりました。実際にやったことは、ALL in One SEOのダッシュボードで、セットアップウィザードを実施。

ウィザードの詳細は記載しませんが、以下内容を真似て実施する。

【2021年版】All in One SEO の設定方法と使い方を簡単に解説【初心者向け】 (bryog.com)

その他は、

ソーシャルネットワーク – fackbookで、

オープングラフマークアップを有効にする
デフォルトの投稿画像ソース - コンテンツの最初の画像

です。

理由は、ブログ村へ登録しているのですが、この辺りの設定をする前はブログ村で記事は見えるも、アイキャッチになる画像が表示されずちょっと味気ない状態でした。

上記の設定をするだけで、記事に乗せた最初の画像がアイキャッチとして表示されるので、とっても簡単でした。なお、設定上はfackbookとありますがそれに限った話でなく、オープングラフマークアップを使ったものであれば対応できるのだと思います。

オープングラフについては下記が参考になります。

OGP(オープン・グラフ・プロトコル)とは | まーくんのアフィリエイト学校 (afi-b.com)

ブログ村のランキングにも登録しています。バナーを以下で張りました。

wordpress  ー 外観 -ウィジェットでサイドバーウィジェットエリアを開き、カスタムHTMLをクリックして、指定されたLinkを張り付けるだけです。

バナーの張り方およびLink情報については以下を見てやればわかります。

ブログ村の登録方法とバナーの張り付け方 | ブログ集客簡単マニュアル (infopower.jp)

ワードプレスは利用者が多いので情報量が多いので、ちょっとしたことなら簡単にできますね!

今日はこれぐらいにしておきます。

投稿者:kuze_k

lightsail + cloudwatch agentについて

wordpressを動作させているlightsailインスタンスへcloudwatch agentをインストールし、リソース監視・ログ監視できるようにしました。

参考にしたサイトは以下。

https://gattino.jp/cloudwatch-agentlightsail/

ほぼこのサイトの通りで設定・動作確認ができました。賞味15分ほどで完了。

一部異なった点としては、

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

でcloudwatch agentの設定ウィザードでいろいろ質問されますが、内容が少しだけ追加されていました。

あと、cloudwatch上でアラートおよびトピックの設定をした際に、通知先のメールアドレスを登録する場合は、以下のようなメールが届くので、承認処理が必要ですね。

—————————–


AWS Notification – Subscription Confirmation
You have chosen to subscribe to the topic:
arn:aws:sns:ap-northeast-1:**********:cloudwatch_alarms_topic

To confirm this subscription, click or visit the link below (If this was in error no action is necessary):
Confirm subscription

—————————–

Disk使用率・CPU使用率・ネットワーク使用率などのカスタム属性がCloudWatch上でグラフ表示できました。Lightsailのダッシュボード上ではDisk使用率は見えないのでこの辺りの設定は必要だと思います。

wordpressのログとして、/opt/bitnami/apache/logs/access_logをcloudwatch logsへ飛ばすようにしました。とりあえずログ参照できるところまで。

cloudwatch logs insightでログ分析できるようなので、後日試してみようと思います。

今日はこれくらいにしておきます。

投稿者:kuze_k

CASEとMaaSについて

突然ですが、車産業で言われているCASEとMaaSについて調べる機会があったので、簡単にまとめておきます。

CASEとは、

「Connected(コネクテッド)」「Autonomous(自動運転)」「Shared & Services(シェアリングとサービス)」「Electric(電動化)」の頭文字をつなげたもの。

MaaSとは、

Mobility as a Service」の略。

クルマがどんどんと「CASE」を進化させた先にあるもの。それが「MaaS」で意味合いは “移動”すること自体をサービスとしてとらえるという考え方。クルマだけではなく、自転車のような個人的な乗り物から、電車やバスといった公共交通も含まれているのが特徴。

少し古い記事ですが、MaaS基盤としてAWSが使えるネタがあったので記載しておきます。

https://www.itmedia.co.jp/enterprise/articles/2011/12/news048.html

MaaS基盤としてのAWSをどう活用? 採用企業が語ったサービスのこれから

https://cloud.watch.impress.co.jp/docs/news/1271731.html

AWSがMaaSへの対応を紹介、MaaS「EMot」でAWSを利用する小田急も登壇

今日はこれくらいにしておきます。

投稿者:kuze_k

lightsailのマルチサイト化②

昨日に引き続いてlightsailのマルチサイト化にチャレンジします。

いろいろ調べてみましたがサブドメインでのマルチサイト化はできますが、サブディレクトリでのマルチサイト化は簡単にはできなさそうでした。。

いったんサブドメインでのマルチサイト化で進めようと思ったのですが、今度は別のトラブルに遭遇しています。

サブドメインになったので当然SSL化する際にも異なる証明書が必要になりますが、そこがうまく動かないようです。

sudo /opt/bitnami/bncert-tool

で証明書作成をしたのですが、メインサイトはSSL化後も表示できるのですが、後から作ったサブサイトが見えない事象が発生。。

下記サイトを参考にマルチサイトでのSSL化を実施しました。

AWS Lightsail でWordPress を簡単に常時SSL化

結論としては、メインサイトはbncert-toolで証明書更新までいってくれたのですが、サブサイトの方はwordpressの管理画面にて、site-urlを手動で書き換えることでSSL化できました。。

今日はこれぐらいにしておきます。

投稿者:kuze_k

lightsailのマルチサイト化①

これまでTechネタを中心に書いてきましたが、たまには息抜きで趣味ネタも書きたいなーと思い始めました。このブログ内に趣味ネタまでごちゃ混ぜで書くのもイマイチだと思って、調べていたらマルチサイトという機能があることを発見しました。今回はこれにチャレンジしてみようと思います。

lightsailで動かしているのでそれ前提でマルチサイト化を検討してみます。

lightsailでインスタンス作成時にシングルとマルチが選択できたことを思い出しました。。

まずはlightsailの管理コンソールに入って、お試しで新規にマルチサイトでインスタンスを作成、、数分でデプロイ完了です。

/wp-adminへログインしたところ、メインサイトがあるのは当然として、最初から新規メニュー項目で”参加サイト”があることを確認。

参加サイト ー サイトネットワーク管理 - サイトをメニューを辿って、”新規追加”をクリックすると新サイトの作成画面が出ました。

マルチサイトを作るだけならとっても簡単でした。ですが、、

標準ではサブドメイン構成になってしまいます。方式としてはサブドメインとサブディレクトリの2パターンがあるのですが、SEOを考えるとサブドメインよりも、サブディレクトリの方が良いみたいです。

⇒サブディレクトリは、1つのドメインに多数のコンテンツがあるように見えるため

 サブドメインで分けてしまうと別物と判断されてしまう(ドメイン違うので当然ではある)

wordpressのGUI上で簡単に方式変更ができず、いろいろググってみると同様に困っていた人がいたようで、CLIから設定変更が必要な模様。

wp-config.phpファイルを修正し、

define( ‘SUBDOMAIN_INSTALL’、true); → define( ‘SUBDOMAIN_INSTALL’、false); へ修正したら、”新規追加”からサイトはサブディレクトリで作れるようになった。 なんだ簡単じゃんと思ったのもつかの間、新サイトを閲覧してみたら、画面表示が一部おかしくてテーマがちゃんと表示されない形に。。文字情報は見えるけど。。 他に.htaccessファイルも修正が必要みたいで試してみるも、改善されず。。

AWSのlightsailのドキュメントを探したところサブディレクトリはなくて、サブドメインの記載のみ。

明日もう少し調べることにします。

投稿者:kuze_k

Aws developer associate

最近awsについて投稿していますが、せっかくなので資格取得しようと思い参考書を購入しました。

秀和システム

アソシエイト試験ポケットスタディ

Aws認定デベロッパーアソシエイト

2310円

最初に参考問題がありますが、ぜんぜん正解がわかりません。おとなしく解説読んで勉強します。

実際にawsさわりながら、勉強したことをblogに書きながら合格を目指します。

ちなみに私はsaaを所持していますが、大分内容がちがいますね。。当たり前ですが。

1か月ぐらいで合格できることを目指します。

今日はこれぐらいにしておきます。

投稿者:kuze_k

AWS Budgetsで予算管理

最近AWSを触る機会が増えてきたので、コストが高くなってびっくりしないようにするためにAWS Budjetsを設定してみました。

設定は至って簡単で登録名や予算額・閾値(%)・メール通知先などを設定するだけで簡単に設定できました。設定時間は数分あれば完了。

実際に閾値まではまだ達してないのでアラート来てないですが、今後様子見して動作確認しようと思います。

なお、通知方法はメール以外にもslackへもできそうでした。また通知だけでなくアクションも自動起動できるようです。詳細は未調査ですが、予算超過したら指定サービスを自動停止させるようなイメージかなと考えています。時間あるときに確認してみようと思います。

調べていてびっくりしたのはAWS Budgets自体が必ずしも無料ではないことですw。

2アラーム設定までは無料でいけるようですが、それ以上アラーム設定する場合は、課金されるそうです。。


Your first two action-enabled budgets are free (regardless of the number of actions you configure per budget) per month. Afterwards each subsequent action-enabled budget will incur a $0.10 daily cost.


AWS Cloud Financial Management | Pricing | Amazon Web Services

今日はこれぐらいにしておきます。