AWS関連のことを調べてみた2023年07月16日

AWS関連のことを調べてみた2023年07月16日
目次

M5Stack Toughと土壌水分量センサーでプランター菜園をモニタリングするVol.4(データ蓄積編)

# データ蓄積先の選定
前回までの記事で、電源、センサーとりつけ、AWS IoT へのデータ送信を行ってきました。

[M5Stack Toughと土壌水分量センサーでプランター菜園をモニタリングするVol.1(電源編)](https://qiita.com/EuzoBass/items/fb4a8f379c2425ad942b)
[M5Stack Toughと土壌水分量センサーでプランター菜園をモニタリングするVol.2(センサー取り付け編)](https://qiita.com/EuzoBass/items/b4bd99995d39b812ea56)
[M5Stack Toughと土壌水分量センサーでプランター菜園をモニタリングするVol.3(AWS IoT 編)](https://qiita.com/EuzoBass/items/4c30f23ffa3d2b9bfa32)

とりあえずAWS IoT にはデータが届いている状態なのでルールエンジンを用いてデータの蓄積を考えていくことになります。データ蓄積する際は、データベースを使ったりAmazon S3などのオブジェクトストレージ

元記事を表示

ConftestでCFnをテストする

# はじめに

先日、AWS Dev Day 2023 Tokyoのセッション動画が公開されました。

https://aws.amazon.com/jp/events/devday/japan/

8月末までの公開のため、少しずつ見ていっています。
その中の以下のセッションのスライドで、AWS SAMがテストできるとあり、興味がでたため少し触ってみました。

# 概要

– `Conftest`というツールを試用
– `Open Policy Agent`の`Rego`というポリシー専用の言語で記述
– Yamlをチェックできる
– それを用いて、CFnをチェックする

# 参考

https://www.conftest.dev/

https://www.openpolic

元記事を表示

アカウント内のS3バケット容量を一括出力する方法

# はじめに
AWSでしばらく遊んでいると、いつの間にか謎のS3バケットが増えていきませんか?
私はめんどくさがりで消すのをよく忘れるので、使途不明なS3が日々発生しています。
そんな中重い腰を上げて、一つ一つS3バケットの容量を見て要否を確認するのはさらに面倒…。

というわけで、AWS CLIでオブジェクト数と容量をまとめて出力する方法を共有します。



# コマンド
以下のコマンドでまとめて出力できます。
大事なのはaws s3 lsコマンドの以下オプションです。
– –recursive
指定したS3バケット配下のすべてのオブジェクトに対して再帰的に実行してくれる。
– –human-readable
KiBやMiBなど、確認しやすいサイズ表記にしてくれる。
– –summarize
`Total Objects`と`Total Size`を表示してくれる。

“`shell:実行
for bucket in $(aws s3 ls | awk ‘{print $3}’); do
echo $b

元記事を表示

100台超のEC2自動停止をAIに聞いて3分で実装してみた!

EC2の自動停止(メンテ不要Version)

以前の執筆記事でLambdaでのEC2の自動停止について
ご紹介しました。
[EC2の自動停止について](https://qiita.com/fukuchan_milk/items/64c924f8fa3fd4342ba8)

上記は超入門編で、AWSを初めて利用する方でも
行えるように記載しました。

さて、前回のコードでは課題にも記載した通りEC2の数が増減した場合にLambdaコードの修正が必要となってしまうため管理が煩雑になっています。

今回はメンテナンスフリー(EC2が増減してもLambdaの修正が不要!)な
コードでEC2の自動停止を実現します。

今回もAIに質問しながらコードを実装しました。

Q1)東京リージョンで稼働するすべてのEC2を日本時間の午前1時に停止したいです。LambdaでPythonコードを書くとどうなりますか

A1)EC2インスタンスを停止するPythonコードをLambdaで実行することができます。以下のコードは、東京リージョンで稼働するすべてのEC2インスタンスを日本時間の午前

元記事を表示

【AWS/ECS on EC2】 EC2コンテナインスタンスの登録方法

# はじめに
AWS Elastic Container Service (ECS)は、Docker コンテナを簡単に実行できるようにするためのフルマネージド型のコンテナオーケストレーションサービスです。ここでは、ECSをEC2インスタンスと一緒に使用する方法を紹介します。特に、Fargateとは異なり、EC2を使用する場合はEC2インスタンスをECSに登録する必要があります。本記事ではその登録手順を記載しいます。

# IAMロール作成
まず始めに、任意のIAMロールを作成し、以下の2つのポリシーをアタッチします。
– AmazonEC2ContainerServiceforEC2Role
– AmazonSSMFullAccess
※EC2インスタンスにセッションマネージャーで接続したくAmazonSSMFullAccessを設定しています。

# EC2インスタンスの作成
Amazon ECS最適化 AMIを使用して、EC2インスタンスを作成します。

### 最新のAMIの設定
以下のコマンドをCloudShell等で実行して、最新のAMIを取得します。ここでは、x86_64

元記事を表示

API Gateway、Cognito、Lambda、S3を使って署名付きアップロード・ダウンロードを実装する。

# はじめに
AWSが運営している[AWSブログ](https://aws.amazon.com/jp/blogs/news/)を流し見していたところ、ちょうどこんなシステムを作ってみたいと思い描いていた内容と合致するソリューションが手順・サンプル付きで紹介されていたので、少しハマったところも含めて手順をまとめてみようと思います。

– [AWS のサーバーレスと Amazon S3 署名付き URL、クライアントサイド JavaScript で大きなサイズの複数ファイルの一括アップロード・ダウンロード機能を実現する方法](https://aws.amazon.com/jp/blogs/news/large-size-files-transferring-by-serverless-s3presignedurl-and-clientside-javascript/)

# 紹介するソリューションについて
S3の機能で一時認証キーを使って一定期間のみアクセスを可能とする署名付きURLがありますが、署名付きURLを使ってCognito認証を行った上でアップロード・ダウンロードが行えるソリュ

元記事を表示

AWS Cloud Practitioner を受験してみた感想

約1年前にもなりますが Cloud Quest や無料のハンズオンで手を動かしてみたりしてました。

https://qiita.com/hugo584/items/ed194cb5426b70094651

合格すれば会社から報奨金もらえるし、重い腰を上げて受験しました。
(この夏旅行先でゴニョゴニョしたいからっていうのは内緒・・・)

せっかく受験したので、これから受験する人や、初歩的な資格だけど意外と難しいんじゃないかと尻込みしている人向けに書きます。

ちなみに受験後即記事を書いているので何か証明できるものはありませんが、
テストセンターの試験終了後に表示される結果速報で合格していることを確認してます。

なので一応合格体験記という立ち位置になると思います。

# 受験してみての感想

**その1: 出題内容は難しくない**

のちに紹介する模擬問題集と比べても難易度はあまり変わらないです。
どちらかというと模擬問題集ごとに書き方に癖が多少あるので、

その癖に慣れて色んな出版社(や出題者)が出している問題に触れておくと
本番でもそこまで設問の理解に脳のリソ

元記事を表示

AWS Dev Day 2023 Tokyo 参加の個人メモ -ブレイクアウト・クロージングセッション他編-

ジャーニーマン( @beajourneyman )です。

4年強寝かしていたQiitaを再始動しました。再始動1本目は「AWS Dev Day 2023 Tokyo」のゼネラルセッションについてまとめました。今回はブレイクアウトとクロージングセッションのいくつかピックアップしてご紹介します。

https://qiita.com/beajourneyman/items/04ce3b08ed358f7d4722

Dev Day にご参加されなかった方も2023/08/31(木)までオンデマンド配信中なので是非ご覧ください。

https://aws.amazon.com/jp/events/devday/japan/

# Game開発トラック:イラストで学ぶAmazon DynamoDB 〜テーブル設計からパフォーマンスチューニングまで〜

開発維持運用しているシステムでDynamoDBを利用していたので参加しました。元ゲーム業界で開発をされていたAWSソリューションアーキテクト(SA)中村さんからDynamoDBの概要説明があった後、カプコンの中島さんの実運用をベースにしたお話し

元記事を表示

[AWS Q&A 365][ECR]AWSのよくある問題の毎日5選 #95

# Q1: Amazon ECRはどのようなセキュリティ機能を提供していますか?
A1: Amazon ECRは、保存時の暗号化、コンプライアンスの検証、アイデンティティとアクセス管理(IAM)、およびモニタリングなど、複数のセキュリティ機能を提供しています。また、強化されたセキュリティのためにインターフェースVPCエンドポイント(AWS PrivateLink)もサポートしています。さらに、Amazon ECRはAWS CloudTrailと統合してアクションをログに記録し、セキュリティ関連の問題のトラブルシューティングを提供します。

# Q2: Amazon ECRは認証とアクセス制御をどのように管理しますか?
A2: Amazon ECRはAWS IAMを使用して認証とアクセス制御を管理します。ユーザーやAmazon EC2インスタンスには、コンテナリポジトリとイメージへのアクセス許可を付与することができます。リポジトリへのアクセスは、リポジトリポリシーを使用して制御することができ、これにより詳細なアクセスルールを定義することができます。

# Q3: Amazon ECRはコ

元記事を表示

[AWS Q&A 365][ECR]Daily Five Common Questions #95

# Q1: What security features does Amazon ECR provide?
A1: Amazon ECR provides several security features, including encryption at rest, compliance validation, identity and access management (IAM), and monitoring. It also supports interface VPC endpoints (AWS PrivateLink) for enhanced security. Additionally, Amazon ECR integrates with AWS CloudTrail to log actions and provides troubleshooting guidance for security-related issues.

# Q2: How does Amazon ECR handle authentication and access contro

元記事を表示

AWSマネジメントコンソールでEKSリソースを見れるようにする

## 背景
Amazon EKSで作成したクラスタ上のk8sリソースをAWSマネジメントコンソールから閲覧できるようにしたい。
今更感あるが、アウトプットの一環として共有。

## 結論
AWSマネジメントコンソールにサインインにするIAMユーザ(もしくはIAMロール)に、Kubernetesの然るべきロールを関連付ける

## 環境
“`shell
Client Version: v1.26.4
Kustomize Version: v4.5.7
Server Version: v1.26.6
“`

## 作業前
– Amazon EKSクラスタへの完全なアクセス権はクラスタを作成したIAMにしか与えられない
– したがって、作成したIAM以外のIAMでEKSの情報を参照しようとすると、例えIAMポリシーでEKSに関するフルアクセス権限を付与していようとも参照することはできない
![スクリーンショット 2023-07-15 151736.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389171

元記事を表示

AWS GameDay参戦記 ~初陣~

## AWS Gamedayとは?

以下が公式ブログの説明です。
> AWS GameDay は、ある課題に対して AWS サービスで解決するための対応力や実装スキルを試せる実践形式の人気ワークショップです。3 – 4 名でチームを結成し、待ち受けるさまざまなトラブルやクエストをクリアしながら最終ミッション達成を目指します。各クエストをクリアするごとにポイントが付与され、最も多くのポイントを獲得したチームが勝者となります。ゲーミフィケーションされた安全な環境で楽しみながら、さまざまなことを学ぶことができる機会をご提供するものです。

https://aws.amazon.com/jp/blogs/news/aws-gameday-at-aws-summit-2023/

AWS版の競技プログラミングだな、と個人的には思いました。

## 競技プログラミングとの共通点
– 複数のお題が与えられる
– GameDayではお題を「クエスト」と呼んでいます
– お題に対して適切な実装をすると点数がもらえる
– 実装した内容を提出すると、解答が正しいかどうかを採点してもらえる

元記事を表示

AssumeRoleTokenProviderNotSetErrorでdockerコマンドが打てなくなった時の対処法

`AssumeRoleTokenProviderNotSetError`がでて、調べて出てきたdockerコマンドがうてない、なんならdocker停止しちゃった人へ。

とりあえず、`~/.docker/config.json`のなかを空にして、docker desktop再起動すれば応急処置になるかも。

“`config.init
{
“credsStore”: “”
}
“`

バックアップ忘れずに。それとassumu roleの対応も忘れずに。

元記事を表示

AWS Dev Day 2023 Tokyo 参加の個人メモ -ゼネラルセッション編-

ジャーニーマン( @beajourneyman )です。

4年強寝かしていたQiitaを再始動します。

再始動に際して少しだけ自己紹介を書きます(短めに)。IT業界に入ってCOBOLプログラマ、SE、PMなどを経て、コンテンツマーケティング(オウンドメディア)・PR(SNS運用)を経て、AWS上で稼働しているシステムのPM兼SEに復帰しました。昨年10月から担当になり、9ヶ月のAWS初心者です。(本稿でのPMはプロジェクトマネージャです)

「AWS Dev Day 2023 Tokyo」のいくつかのセッションをピックアップして個人メモを残します。ご参加されなかった方も2023/08/31(木)までオンデマンド配信中なので是非ご覧ください。

https://aws.amazon.com/jp/events/devday/japan/

# Day 1 ゼネラルセッション(基調講演)
## 『質とスピード』特別編 〜 現代のソフトウェア開発にキャッチアップしていくヒント〜 和田さん
テスト駆動開発の第一人者、和田さん(@t_wada)のセッションのメモと簡単な感想を書きます。

*

元記事を表示

Serverless Express rootディレクトリのPOSTメソッドで403発生

# rootディレクトリのPOSTメソッドで403発生

### 結論

API Gatewayの特定のリソース配下にProxを配置してる場合、Expressでルートはproxyのルートを指定すること!

“`jsx
//account (POST)
|-//abc(GET/POST)
|-//efg(GET/POST)
“`

![API Gatewayの設定](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5968e051-e33f-46e5-975c-a1a78beddfc3/Untitled.png)

API Gatewayの設定

“`jsx
a.app.use(‘/’, accountRouter);
b.app.use(‘/account’, accountRouter);
c.app.use(‘/abc’, abcRouter);
d.app.use(‘/efg’, efgRouter);
“`

Q: 次のパスへのリクエストは、上記どのルーティング処理が実行されるでしょうか。

元記事を表示

CORS対応localhost:3030Node.js(Express)からAPIGateway

■内容

ローカルで立ち上げたExpressからAPI Gateway経由でLambdaを実行しようとすると、下記エラーがレスポンスされる。

> Access to XMLHttpRequest at ‘[https://{hostname}/xx’](https://vtravelapi.dtai-entrancepoc.com/auth%27)
from origin ‘http://localhost:3030’
has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
>

![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ed0d86d2-0d1d-4827-a3cd-d8b319809fde/Untitled.png)

FrontEnd   ー>  BackEnd

(Express)     (AWS API

元記事を表示

Lambda(Node.js18) SystemParameter(SDK v3)

# Lambda(Node.js18) SystemParameter(SDK v3)

### 注意書き

– AWSに関する説明は省略します。(Lambda、SystemParameterの実装/設定方法など)
– C#でLambdaの実装経験がありますが、Node.jsでのLambda作成が初めてでいろいろつまずいたので、備忘録として残しています。

# やること

1. Node.js14ラインタイムのLambdaで、SystemParameterに登録したSecureStringを取得する
2. Node.js14→Node.js18ランタイムへのアップデート対応
3. SDKを利用せずに、SystemParameterから値を取得する (未対応)

## 1.SDKを利用してSystemParameterの値を取得する(Node.js14)

“`jsx
const AWS = require(“aws-sdk”);

exports.handler = async (event) => {
console.log(“Test”);

// // 新規 A

元記事を表示

GitHub ActionsとOpenID Connectを使ってNext.jsのアプリケーションをS3にデプロイしてみよう!

## 概要
GitHub Actionsを使ってNext.jsのアプリケーションをS3バケットにデプロイする方法について
– Next.jsのアプリケーションの作成と設定
– デプロイ先のS3バケットの作成と設定
– IAM Roleを使ったOpenID Connectの設定
– GitHub Actionsのワークフローの作成

の順で解説していきたいと思います
かなり分量がある上にある程度AWSの知識が必要ですが一緒に頑張りましょう

## 前提
– S3へデプロイする用のGitHubのリポジトリを作成済み
– AWSのアカウントとIAMユーザを作成済み
– AWSとGitHub Actionsの基礎的な知識を有していること
– 今回はCloud Frontを使用していません

## S3バケットにデプロイする理由
AWSへアプリケーションをデプロイする手段としてECS(コンテナ)もありますが
フロントエンドのソースコードをコンテナではなく、S3へデプロイする利点としては以下のとおりです

– 一般的にS3バケットは静的なファイルのホスティングに適している
– S3はCloud F

元記事を表示

aws-cliからEventBridge SchedulerでECSタスクを起動する

EventBridge SchedulerからECSタスク(Fargete)を起動したいので、
自分が使う分だけ覚え書きします。

## create-schedule
スケジュールを作成します。
ruleでは「put-rule」と「put-targets」の2段階に分かれていましたが、このコマンドは1つでtargetまで指定します。

“`sh
# ECSタスクを実行する場合、長いので下記の–cli-input-jsonを使った方が良い……
aws scheduler create-schedule –name ecs-schedule \
–schedule-expression ‘cron(0 15 * * ? *)’ \
–schedule-expression-timezone ‘Asia/Tokyo’ \
–flexible-time-window ‘{“Mode”:”OFF”}’ \
–target ‘{“Arn”:”arn:aws:ecs:us-west-2:999999999999:cluster/some-cluster”,”RoleA

元記事を表示

AWS EC2 の Ubuntu 22.04 インスタンスに Tera Term で、SSH接続する方法

AWS EC2 で作成した `Ubuntu Server 22.04 LTS` インスタンスに `Tera Term` を使った SSH接続ができず、詰みかけたので備忘録として残します。

# 環境
今回の環境は下記のとおりです。

– ホストOS:Windows 11 Pro
– Tera Term:Ver 4.106

# 現象
AWS EC2 で作った Ubuntu Server にアクセスする場合、本来であれば下記の情報で接続ができるはずです。
しかし、なぜか接続ができませんでした!\(^o^)/オワタ

– ユーザー名:ubuntu
– パスフレーズ:空欄
– 秘密鍵:インスタンス作成時に設定したキーペア(.ppkファイル)

# 原因と解決方法
この原因は Ubuntu の OS アップデートで SSH 接続時のセキュリティが強化され、 `SHA-1 RSA認証` がデフォルトで無効化されたためです。
そして、 `Teraterm Ver 5.0 beta 1` 以前のバージョンでは `rsa-sha2-256` や `

元記事を表示

OTHERカテゴリの最新記事