AWS関連のことを調べてみた

AWS関連のことを調べてみた

AWS CloudWatchのLiveTailがLambdaデバッグに便利

最近、でもないけど半年ほど前?に追加されたLiveTailがLambdaのデバッグにめちゃ便利だった話。

## 前置き
直接環境にアクセスできるときはTailコマンドを使ってアプリケーションのログをリアルタイムで見ることはよくあります。それのクラウド版です。
ELB配下で複数台動くマシンのログをリアルタイムで確認するのに少しだけ使っていました。
これはこれで強力です。だって特定のマシンに乗り込んじゃうとロードバランスされた後でどこにログが落ちるかわからないので。
と言ってもそこまでありがたみを感じることなくあんまり使ってませんでした。

## 環境
AWS CloudWatch Logs – LiveTail
Lambda python3.12

## Lambdaのデバッグ
初期のDebugにはprintを使ってResultに表示されるログを確認しながら作業します。
VisualStudioを使ってやるという人、ごめんなさい。ローテクでお話が進みます。
ほとんどこれで事足りるぐらいの比較的軽い処理しか乗せないので大丈夫です。

![スクリーンショット 2024-02-20 1516

元記事を表示

複数のクロスアカウントでS3イベント通知を構築するCfnテンプレート

# はじめに
S3バケットにオブジェクトを配置・更新した時に、複数の別のアカウントのLambdaから当該オブジェクトを取得してゴニョゴニョしたい、といったことがありました。
一部、S3の制約に引っかかるなどして手戻りもあったので作業の記録として記事に残します。

# 本文
## S3イベント通知
S3バケットのオブジェクト配置・更新をトリガーにLambdaなどをキックしたい場合、S3のイベント通知を使用することが有効です。

S3オブジェクトのイベントタイプを指定することで、オブジェクトが作成された時・削除された時など、必要に応じてイベントを指定することができます。
また、イベント通知のフィルターを活用することで、特定のファイルに絞り込むことが可能です。
大量のファイルを扱うバケットでも、特定のファイルの特定オブジェクトイベントのみLambdaをキックする、といったことが可能です。

## 制約
ただ、この通知設定において、フィルターのプレフィックスとサフィックスを指定している、かつ同じイベントタイプを設定しようとすると、エラーとなります。

例えば、「はじめに」に書いたように、特定オ

元記事を表示

【Node.js】LambdaからDynamoDBのデータを取得する方法

## はじめに
Lambdaを使用してDynamoDBのデータを取得する方法について紹介します:point_up_tone1:
データ取得までの流れは 画面 → API Gateway → Lambda → DynamoDB となっていますが、画面からLambdaを呼び出すところまでは割愛します。

## ソースコード
userIdを条件にして、データを取得するという例を紹介します。

“`javascript
const { DynamoDBClient } = require(‘@aws-sdk/client-dynamodb’);
const { QueryCommand, DynamoDBDocumentClient } = require(‘@aws-sdk/lib-dynamodb’);

const client = new DynamoDBClient({});
const docClient = DynamoDBDocumentClient.from(client);

exports.handler = async(event) => {
// Cloud

元記事を表示

AWS Certified Cloud Practitioner 合格体験記

# 概要
AWS Certified Cloud Practitioner (CLF-C02) に知識ゼロの状態から合格したので、合格までの道のりやもっとこうしておけばよかったと感じていることを記録します。

# 受験までの勉強
– インプット
– 書籍
『AWS認定資格試験テキスト AWS認定 クラウドプラクティショナー』(https://www.sbcr.jp/product/4797397406/)
定番書籍。受験を決めてからすぐに購入しましたが、個人的にはあまり使用しませんでした…
マネジメントコンソールの画像なども使用して細かな部分まで解説されているため、詳細まで理解したい人にはお勧めです。
合格さえできればいいという方は購入しなくてもいいかなと思います。
– 動画
– AWS Skill Builder(公式)
https://explore.skillbuilder.aws/learn/course/external/view/elearning/1875/AWS-Cloud-Practi

元記事を表示

【AWS】IoT Core – DynamoDBv2チュートリアル

# IoT Core – DynamoDBv2チュートリアル

この記事では、AWS IoT Coreを使用してデバイスデータをDynamoDBv2テーブルに保存する方法について解説します。
具体的な手順を、DynamoDBとDynamoDBv2の違いを踏まえながら説明します。

## 目次
1. DynamoDBとDynamoDBv2の違い
2. ステップ 1: DynamoDB テーブル作成
3. ステップ 2: DynamoDB テーブルにデータを送信する AWS IoT ルールを作成
4. ステップ 3: AWS IoT ルールと DynamoDB テーブルをテスト

## DynamoDBとDynamoDBv2の違い

AWSのDynamoDBとDynamoDBv2では、データの格納形式に重要な違いがあります。
これらの違いを理解することは、データモデルの設計とクエリの最適化において重要です。

### DynamoDB

DynamoDBでは、データは主にJSON形式の文字列として格納されます。
これは、複数のデータポイントを一つのカラムに組み込むことが可能で、柔軟なデー

元記事を表示

アクセス許可の境界 学習記録

個人的なメモ

アクセス許可の境界
評価論理に基づいて、左~右へ順にAllow/Denyを見ていく流れ

そのため、何らかのポリシーがエンティティにアタッチされ、その操作がSCPのアクセス許可ポリシーで許可されているか確認し、次にリソースベースの許可ポリシーでその操作が許可されているか順に確認されるイメージ
フィルターのようなイメージ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3146038/c69a4331-4193-8d02-16bf-c7c2f9803587.png)
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGide/reference_policies_evaluation-logic.html

元記事を表示

AWS Hands-on for Beginners Network編#1 をCloudFormationでやってみる

AWS 初心者向けハンズオン
「Network編#1 AWS上にセキュアなプライベートネットワーク空間を作成する」をCloudFormationで実施してみました。

https://aws.amazon.com/jp/events/aws-event-resource/hands-on/

https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Network1-2022-reg-event.html?trk=aws_introduction_page

:::note info
目的
– AWS CLIとCloudFormationの実装方法を比較
– スタックの作成、削除はAWS CLIから実施
:::
完成系
![hands-on-beginers_1.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3297641/68fb5704-c3d1-08d8-2b3c-d5985d4084da.png)

AWS C

元記事を表示

ルートアカウントしかできないこと

ルートアカウントしかできないこと

・AWS アカウントのルートユーザー (コンソール) の仮想 MFA デバイスを有効にします
・AWS アカウント のルートユーザー (コンソール) 用にハードウェア TOTP トークンを有効にします
・AWS アカウント ルートユーザーの FIDO セキュリティキーを有効にする (コンソール)
・AWS アカウントのルートユーザー のパスワードを変更する
・紛失または忘れたルートユーザーのパスワードのリセット
・ルートユーザーのアクセスキーの作成
・ルートユーザーのアクセスキーの削除

・AWS アカウントのルートユーザー (コンソール) の仮想 MFA デバイスを有効にします
多要素認証のことで、推奨事項となる
主にアプリケーションをデバイスにインストールし使用するタイプで、例えばデバイス等にGoogle Authenticatorインストールするタイプ
ランダムに6 桁の認証コードを生成され、ログインする際に6桁の認証コードを入力し、ログインする

・AWS アカウント のルートユーザー (コンソール) 用にハードウェア TOTP トークンを

元記事を表示

RDS for OracleでCPUを使っているプロセスを特定してkillする方法

# はじめに
データベースではクライアントから投げられたクエリがぶん回ってリソースを消費してしまう、という事がたまにあります。このような時、通常はOSへログインしてtop等からCPUリソースを消費しているプロセスを特定し、そのプロセスをkillするような対応を取ります。

RDSではOSへのログインができないため、そのような場合にどのプロセスがCPUリソースを消費しているか、特定がし辛いというものが以前はありました。
しかしながら、現在では [拡張モニタリング](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) を利用することでOSのリソース使用状況を確認することができます。

今回は RDS for Oracle を利用して、クライアントからのクエリがぶん回っているときに該当のセッションを切断する一連の流れを示します。

# 拡張モニタリング
拡張モニタリングはRDSのOSリソースを確認できるツールになります。
拡張モニタリングはRDSの設定で「拡張モニタリングの

元記事を表示

【空想編】大学で挫折した卒業研究をAWSの力で再現したい

記載内容は所属会社を代表したものではなく、私の個人的な意見ということをご了承ください。

本件は長くなりますので、【空想編】、【設計編】、【実現編】の3部に分けて投稿したいと思います。
今回は【空想編】と言うことで、思い付いたことを書き述べていきます。

# はじめに
私は学生時代、下記のような卒業研究を行っていました。
前提:
スポーツフードアドバイザーの資格を所持
→球技系、持久系、筋力系のそれぞれのスポーツをする上で必要な栄養素に関する知識

昨今、ウェアラブルデバイスの発展に伴いウェアラブルデバイスをつけているだけである程度どのスポーツに従事しているかが分かる。

近年、食事の写真を撮影することは何らおかしいことでないこと。

ターゲット:
・自己啓発でスポーツに取り組む一般アスリート
・社員の健康を管理したい会社向け

研究内容:
人間の心理として、美味しそうな食べ物を見たとき、その食べ物を食べたくなる傾向があります。
参考:
https://www.mashingup.jp/2015/11/050660sns_diet.html#:~:text=%E9%A3%9F%E3%8

元記事を表示

Amazon API Gateway vs MuleSoft

2024年1月時点のAmazon API GatewayとMuleSoftの比較になります。

## Amazon API Gatewayとは
Amazon API Gatewayとは、さまざまな規模に応じた「Web API」の作成や公開、管理を簡単に行えるサービスになります。
フルマネージドなのでインフラの管理が一切不要で、開発者はサービスの開発だけに集中できます。
WAF、Lambda、Cognito、IAMなどのサービスと連携が可能です。
HTTP、REST、WebSocket APIが作成可能です。
## MuleSoftとは
MuleSoftは、企業がアプリケーションやデータを統合するための統合プラットフォームです。
APIの作成、データの接続、ビジネスプロセスの自動化など、さまざまな統合タスクを効率的に実行するためのツールや機能を提供しています。
MuleSoftはAPIの構築において、アプリケーションを3 層に分割するアーキテクチャを提唱しています。
この3層アーキテクチャは、クライアントの差異を吸収するExperience層、データ加工を行うProcess層、データソー

元記事を表示

筋トレを継続したい!(AWS Lambda × Python × ChatGPT でLINEbot作成)

# 筋肉ムキムキになりたい!!
1度くらい筋肉には憧れたことはあるだろう…
そしてトレーニングを始める人もいるだろう…
しかし、続かない…
そこで、筋トレを継続するための、**筋トレbot**を作成しました!

# 開発環境
AWS Lambda
Python 3.12

# トレーニングメニュー
トレーニングメニューを自分で考えるのは面倒ですよね。
そこで、ChatGPTにお願いして、トレーニングメニューを考えてもらおう!

![image0 (1).jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682615/74b9ba69-6594-941d-ffde-ac88146299e2.jpeg)

いい感じのメニューを提案してくれましたね。

# 筋トレ後は褒めてもらおう
ただトレーニングをこなしていくだけだと、モチベーションが保てませんよね。
トレーニングが終わった後は、トレーニングしたことを報告して、褒めてもらおう!

![image1.jpeg](https://qiita-i

元記事を表示

半年ぶりにAWS&Pythonのハンズオンやってみた。

内容
・趣旨目標
・使えるサービス
・参考サイト
・環境・EC2の作成、キーペアの作成
・SSH接続
・VSCodeから接続、ファイルなどの作成

## 趣旨目標
AWSを活用して簡単なWebアプリ(Hello World)をSSH通信でデプロイして、手を動かして学ぶ。

## 使えるサービス
EC2,Python,VSCode,Ubuntu

## 参考サイト:

## 環境
Windows11,Python,VSCode(これらはセットアップ済みとして進めます。)

## EC2の作成、キーペアの作成
Ubuntuを選んでキーペア作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/750d7c13-6ed8-1e0e-a193-54e3d7aafa4d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

TerraformでFCM Webプッシュ通知の環境を構築する

## はじめに

FCM([FirebaseCloudMessaging](https://firebase.google.com/docs/cloud-messaging?hl=ja))でWebプッシュ通知を送信する環境をTerraformで構築しました。

– 通知受取側:PWA(Nuxt3)
– 通知送信側:AWS Lambda(Python)

Pythonから送信するので、[FirebaseAdminSDK](https://firebase.google.com/docs/reference/admin?hl=ja)も使えるようにします。
バックエンドは私の場合はLambdaですが、他の場合でもFCMの環境作成自体は同じです。

コンソールから構築する記事はたくさんあったのですが、Terraformでの実装例が全然ないのと、普段AWSを主に使っているのでGCPの理解が足りず割と苦労しました。

FirebaseとTerraformの公式ドキュメントを参考にしています。

https://firebase.google.com/docs/projects/terraform/

元記事を表示

DynamoDBのカーディナリティが高いとは?

## はじめに
DynamoDBの勉強中、パーティションキーはカーディナリティの高いものを選択することが重要だよ、とAWS公式ドキュメントに書いてあったのを見ました。

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/data-modeling.html

いや、そもそもカーディナリティが高いって何?と前提から理解できていなかったので、
カーディナリティとは何なのかというところから調べました。
結果、カーディナリティについて理解できたので共有します。

## 想定読者
カーディナリティについてあまり分かっていない人

## カーディナリティとは
カーディナリティとは、カラムに格納されるバリエーションの数を指します。
つまり、カーディナリティが高いほど、カラムには多くの異なる値が格納されていることを意味します。

#### カーディナリティが低い例・高い例
以下に示すような、フルーツの収穫テーブルがあったとします。

| Harvest Date | Fruit Name |
|——–

元記事を表示

AWS CLF入門 – スケーリング編

## はじめに
AWS CLF (AWS Certified Cloud Practitioner) を取得した際の学習記録をアウトプットとして以下に記す。

## リンク
[ネットワーク](https://qiita.com/yashiuri/items/31b2c9c3c49c2584cd01)
[セキュリティ](https://qiita.com/yashiuri01/items/73e5310b09ff41912862)
[コンピューティング](https://qiita.com/yashiuri01/items/9eaf71a1590e7815f9ef)
[コンテナ](https://qiita.com/yashiuri01/items/708b57ee179ae29e72a9)
[スケーリング]() ←今ここ
[ストレージ]()
[データベース]()
[メッセージ]()
[モニタリング]()
[デプロイ]()
[コストとサポート]()
[移行とイノーベーション]()
[AWS製品群一覧]()

# **Amazon EC2 Auto Scaling**

– アプリケーショ

元記事を表示

【AWS CLF-C02】AWS Certified Cloud Practitioner受験合格体験記

## はじめに
2024年2月 AWS Certified Cloud Practitioner(CLF-C02)に合格しましたので、受験合格体験記を記載します。
何かの参考になれば幸いです。

## 試験学習開始時の状況
試験学習開始時の状況は以下の通りです。
– AWSの実務経験は1年程度
– 2~3年ほど前にSAA(ソリューションアーキテクト–アソシエイト)の試験学習をしていたことがある
– インフラエンジニアとして従事

## 試験学習でやったこと
試験学習は2023年11月下旬頃から開始しました。
試験受験までの実質的な学習期間は1ヶ月位かと考えています。

また、以前SAAの学習をしていたこともあり、ある程度はAWSについて既に把握している所は多々ありましたので、その時の内容を思い出しながら進めて行きました。

※AWS Well-Architected Frameworkの柱は、5本だったはずでしたが6本目の柱が追加されている等の新たな発見が有りました。

以下に試験対策として行った事項を時系列で記載していきます。

### テキストの購入
2023年9月に、C02へ試験

元記事を表示

AWSで定期実行するバッチの作成方法(Terraformで作成)

## AWSにおけるバッチ処理
「AWS バッチ処理」で検索すると、AWS Batchを用いたバッチコンピューティングの情報が多くヒットします。
しかし、実際の業務では定期的に実行されるバッチ処理の方がよく利用されると思います。
本記事ではAWSを用いて定期実行するバッチ処理を作成したいと思います。

## AWSでバッチ処理を実施するときの選択肢
以下の3パターンが考えられます

|No |方式 |メリット |デメリット |
|—|—|—|—|
|1 |EC2上でCronを動かす |長時間のバッチを実行可能
OSやサーバのスペックの自由度が高い|サーバのメンテナンスが必要(セキュリティパッチなど)
バッチが動いていない時間も課金が発生する|
|2 |EventBridge + Lambda |サーバのメンテナンスが不要
3つの中で料金が一番安い
環境構築が容易
デフォルトで同時実行が1,000まで可能 |15分以内にバッチを終わる必要がある
大きなメモリを割り当てられない|
|**3** |**EventBridge

元記事を表示

【AWS】awscli IAMユーザーに付与された権限を確認する

# 目的
AWSでの開発に必要不可欠なIAMユーザーですが、発行してもらったIAMユーザーで作業中に
「権限エラーになった:sob:」
という経験をほとんどの方がされていると思います。

そんな時に、そのIAMユーザーに割り当てられた権限をAWS CLIで確認する方法を備忘として残します。

AWSコンソール上からももちろん確認は可能です。
AWS CLIを使用するメリットとしては、
– 文字として出力しておくことで状況のエビデンスが取得できる
– 管理者等へ権限の確認や変更依頼をする時に、結局文字情報が必要になることが多い
– JSONで出力されるので、バッチ処理とか運用自動化とかにもうまく使えるかも・・・?

辺りかなと思います。

ただしこのやり方はIAM権限の読み取り(ReadOnlyAccessとか)を許可してもらえている前提であり、作業に必要なリソースしか見せてもらえない厳しい現場の場合は管理者に確認するしかありません・・・。

:::note info
AWS CLIが使用できる環境が既にある前提で話を進めます。
:::

## IAM ユーザーに直接アタッチされている

元記事を表示

【QuickSight】招待メールからログイン出来ないUserがいた場合の確認ポイント

# はじめに

Amazon QuickSightの招待メールを関係者に送付してログイン確認をお願いした際に、1名のみ招待メールからどうしてもログインができず解決に苦戦しておりました:worried:

そこでサポートに問い合わせた結果、原因と解決方法が盲点でしたのでこの学びをTipsとしてまとめておきたいと思います:pencil2:

# 発生した事象

新規アドレス宛に招待メールを送付していましたが、「ユーザー名はこのアカウントに既に存在します」のエラー文が表示されました。

そこで、一度ユーザーから削除し再度招待メールを送付しログインを試みましたが同じ結果でした:tired_face:

▼QuickSightのログイン画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550351/83900ea9-f1a3-a5db-d787-528054a9b45a.png)

▼QuickSightの管理画面
何度確認しても、ログインした形跡はありませんでした。
![image.png]

元記事を表示

OTHERカテゴリの最新記事