AWS関連のことを調べてみた2022年12月18日

AWS関連のことを調べてみた2022年12月18日

インフラ周りでお金をかけずに SSR したかった(AWS + Cloudflare)

SSR(Server Side Generation) というのをやってみたくて、Twitter のトレンドを時系列でチャート化するサイトを作った。
結局 SSR は必要なくて、SSG になっちゃったけど。

https://twitter-trend.ahyaemon.com/

見た目はこんな感じ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244354/8439e1b2-3148-edc8-2acf-a569520c6b75.png)

# 実現したかったこと

最近のツイッターのトレンド推移を把握できるサイトを作りたい。
トレンド情報は一時間に一度 Twitter API を叩いて取得する。
-> トレンド情報をどこかに保持しておく必要がある

# 実現方法の遷移

## 構成

### Backend + SSR
当初考えていたのは「Twitter API を叩いてレスポンスを保存しておくバックエンド」 + 「バックエンドを見にいく SSR サーバー」で、一時間毎の更新なら適

元記事を表示

lambda + Goで定期バッチを作成する

この記事はディップ株式会社[Advent Calendar 2022](https://qiita.com/advent-calendar/2022/dip-dev) の18日目です

## 概要

私が所属しているチームでは週1回定例があり、[DocBase](https://docbase.io/)という情報提供ツールに議事録を残しています。
議事録は毎週定例実施前にテンプレートを手動で準備していましたが、以下問題点がありました。

#### 新規issueの記入が面倒
議事録には、定例までの期間に新しく作成されたissueを記入をする必要がありますが、所属チームではリポジトリを複数管理しています。
そのため、リポジトリごとにissueを検索 -> md形式に変換 という工程を複数回を行う必要があり、issueの記入に時間がかかりました。

#### 手作業によるミス
人の手で作業を行うため、日付のミス・issue起票のミス・議事録作成忘れなどが稀に発生していました。

これらを解決し業務を効率化させるために、定例議事録の作成をバッチ化させました。

## 詳細

定例バッチの作成

元記事を表示

Lambdaのパフォーマンスチェックに便利なx-rayの基本的な書き方をまとめる

# はじめに
aws xrayはプログラムのパフォーマンス分析を行うのに非常に便利な機能です。
本記事はxrayのLambdaで使用するときの基本的な記法についてまとめた記事になります。

# 環境
使用している環境は以下です。
“`bash
$ uname -a
Linux XX 5.15.79.1-microsoft-standard-WSL2 #1 SMP Wed Nov 23 01:01:46 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
“`
プログラムの実行環境は[aws sam](https://aws.amazon.com/jp/serverless/sam/)を使用して用意し、`requirements.txt`に`aws-xray-sdk`を追記します。
“`requirements.txt
requests
aws-xray-sdk
“`

(SAMについての基本的な使い方は[こちら](https://qiita.com/abemaru/items/b5deac7a218475e75ca1)に書いてあります。)

元記事を表示

S3オブジェクトをトリガーにした zip展開するLambda構築ハンズオン

## はじめに
##### 先日他のアカウントから、自分の保有しているS3に対してzipファイルが送られてくる事案がありました。
##### どうせなら受け取った際に『zipを展開出来ないか?』とのことだったので、展開するためのLambdaを構築したので記事として残します。
————

## 構成図
![](https://cloud5.jp/wp-content/uploads/2022/12/スクリーンショット-2022-12-18-9.50.27-640×205.png)

————

## ハンズオン
### 構築の流れ
#### 1.S3作成
#### 2.Lambda作成
#### 3.EventBridge作成
##### 上記の順番で構築を行なっていきます。

##### 最終的には、今回作成したS3にzipファイルを保存すると、EventBridgeで検知して、展開Lambdaでzipファイルの展開を行います。
![](https://cloud5.jp/wp-content/uploads/2022/12/スクリーンショット-2022

元記事を表示

最近書いたコスパのよいシェルスクリプト(ターミナルから離れずに翻訳)

# 何これ?
最近短いシェルスクリプトを書いたら、意外と使用頻度が高かったのでメモっておく。Amazon Translateをコマンドラインから使うだけのもの。

# 誰向け?

俺。その他、以下のような人
* 英語を頻繁に読み書きしないといけない人
* `aws`とか`jq`コマンドが入っているややインフラな人
* 翻訳のためにわざわざターミナルから離れたくない人

“`shell:translate.sh
getopts “j:e:” OPT

case $OPT in
j) SOURCE=en; TARGET=ja; S_FLAG=”??”; T_FLAG=”??” ;;
e) SOURCE=ja; TARGET=en; S_FLAG=”??”; T_FLAG=”??” ;;
*) echo “Usage: $0 {-e|-j} “; exit; ;;
esac

REGION=ap-northeast-1

echo “$S_FLAG → $T_FLAG”
aws translate translate-text \
–region

元記事を表示

AWS CDK公式チュートリアル実況プレイ(VPC編)

AWS CDKに興味があったので公式ドキュメントを見ながら進めて見る。
公式ドキュメントに日本語がないのがちょっと辛いが。。。

## 公式チュートリアル

Clod9にAWS CDKを導入する公式チュートリアルがあったのでまずはそちらを進める。

### AWS CDK CLIのインストール

まずはnpm経由でcliをインストールしてみる

“`
npm install -g aws-cdk
“`

↓のようなログが流れてインストール完了

“`
added 2 packages, and audited 3 packages in 4s

found 0 vulnerabilities
npm notice
npm notice New minor version of npm available! 8.5.0 -> 8.19.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.19.2
npm notice Run npm install -g npm@8.19.2 to update!

元記事を表示

AWS Application Composerを使ってサーバーレスアプリを作ってみた

この記事は、[AWS LambdaとServerless Advent Calendar 2022](https://qiita.com/advent-calendar/2022/lambda) アドベントカレンダーの19日目の記事です。

## はじめに

皆さん、こんにちは。AWSのソリューションアーキテクトの福井です。今年もAWS re:Inventで数多くの新しいサービスとサービスのアップデートが発表されました。本記事では、今回新たに発表された [AWS Application Composer (Preview)](https://aws.amazon.com/jp/application-composer/)を使ってサーバーレスアプリケーションを構築してみましたので、紹介させて頂きます。

## AWS Application Composerとは

[AWS Application Composer](https://aws.amazon.com/jp/application-composer/) は、ビジュアルなエディターを使って様々なAWSのサービスを組み合わせて、サ

元記事を表示

AWS CDKでAppSyncを構築してみた

この記事は[弥生 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/yayoi)の18日目の記事です。

こんちには、2022年7月に入社したバックエンドエンジニアの永野です。

弥生にはエンジニアリンググループという取り組みがあり、
そこで検証したAWS CDKでAppSyncを構築する方法について、ご紹介しようと思います。

なお、今回はAWS CDKとAppSync、またGraphQLについての説明は割愛させていただきます。
すでに詳しい記事が世に沢山あることと、そもそも私自身が実は上記に触るのが初めてで、知るより慣れろということで、手を動かすことをメインに取り組みを進めてきたためです。

# エンジニアリンググループとは
技術情報やノウハウの蓄積/共有を行い、エンジニアを育成するためのバーチャルグループです。
毎週水曜日に2~3時間ほど活動を行っています。

活動内容はグループごとに決めています。私が参加しているグループでは、直近はAWSのスキルアップを目的に、各自がハンズオンの実施やサービスの調査・検証な

元記事を表示

LocalStack環境の構築(と好きなラーメンの話)

# はじめに
今年はAWSの技術習得に挑戦した一年でした!
テーマが「今年がんばった技術と好きなラーメン」ということなので
自己学習のためにLocalStack環境を構築した記事を投稿します。

# LocalStackとは
ローカルマシンでAWS環境をエミュレートできる機能を持つクラウドサービスエミュレータです。
AWS Lambda、S3、DynamoDB、Kinesis、SQS、SNS などのAWSサービスをローカル環境で実行できます。
無料で使える「Community版」と有料の「Pro版」があります。
詳しくは以下の公式サイトを参照してください。

https://localstack.cloud/

# 構築した環境
WSL2を使用しました。

* Windows11
* WSL2
* Ubuntu
* docker
* docker-compose
* awscli
* awslocal
* LocalStack

# WSL2とUbuntuインストール
– コマンドプロンプトを起動して以下のコマンドを実行
“`
> wsl –install
“`
– インストール

元記事を表示

[AWS]CFnで作成したスタックをCDKで書き直し→デプロイ(&その逆)したらどうなるの

こんにちは、AWSおよびCDKひよこクラブのmasaozi3です:hatching_chick:
本記事はAWS/CDK/CloudFormation初学者:hatching_chick:向けの内容です。

あまりやらないとおもうのでニーズがあるのかわかりませんが、一度CFnで作成したスタック定義を完全にCDKで書き直したい場面にぶちあたり、どういう挙動になるのか気になったので調査してみました。
そしてさらにニーズがあるのかわかりませんが、逆にCDKで作成したスタックをCFnに完全に書き換えるパターンもやってみました。

ちなみにCDKでは[cloudformation-include](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.cloudformation_include.CfnInclude.html) を使うことで、CFnファイルをテンプレートとして取り込みつつ実装することもできるそうですが、今回はCDKで全てを書き直し、CFnのファイルは破棄できる状態にすることが前提です。

スタックIDを一致させれば同一

元記事を表示

社内向けチャットボットの改修

# 目次

1.はじめに
2.全体スケジュール
3.改修内容詳細
4.作業内容
 4.1 AWSチーム
 4.2 QAチーム
5.まとめ

# 1.はじめに

株式会社エニプラでは、社内のチームごとにテーマを決め、
毎月行われるチーム会でテーマに沿った活動を行っています。
チーム会で行った内容は、
年末に「エニプラアワード」という場で全社員や来期の新卒に向けて発表を行っています。

昨年度、私たちのチームでは
「Amazon lexとSlackを使った社内向けチャットボットの作成」をテーマに活動してきました。
昨年度の活動内容につきましては、下記の記事をご覧ください。
https://qiita.com/k_yoshino/items/89c050a2641e20d7e92f

今年度は、作成したチャットボットをよりブラッシュアップさせるために
「社内向けチャットボットの改修」をテーマに活動してきました。
 
テーマ決定の背景としては以下のような流れがありました。

まず、チャットボット作成後の課題検討事項として、大きく3点挙がりました。

①AWS上のリソース名やソースコード内の変

元記事を表示

AWS Cloud9 のすゝめ

この記事は [KDDI Engineer&Designer Advent Calendar 2022](https://qiita.com/advent-calendar/2022/engineer-designer) の18日目の記事です。

この記事では、「Cloud9 って何?」という人向けにAWS Cloud9 の紹介をしていきます

# はじめに
AWS cloud9 とは、AWSマネジメントコンソールから簡単にIDE(統合開発環境)を起動することができるサービスです

https://aws.amazon.com/jp/cloud9/

ものすごく単純化すると、VSCode しか動かない PC をクラウド上で起動できるイメージです

こんな感じの開発環境をWebブラウザ上で動かすことができます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1471959/caebd801-7e6b-6b8f-662d-1732430d77ae.png)

この記事を書こうと思った背景には、

元記事を表示

OpenSearch を使用した類似文書検索

## 類似文書検索とは

類似文書検索とは、ある文書をクエリとして与えた時に、一連の文書から適切な文書を取得する技術のことを指します。例えばニュースサイトで、ある記事のページに「おすすめの記事」として別の記事がサジェストされているような場合に使われる技術です。類似した文書を取得するアプローチとしては、文書自体の類似度を元に取得する方法や、ユーザーがその文書を閲覧した記録に基づいて取得する方法がありますが、今回は前者に焦点を当て、検索エンジンである [OpenSearch](https://github.com/opensearch-project/OpenSearch) を使用した実現方法について説明します。

## OpenSearch における類似文書検索

### 1. More like this クエリを使用した類似文書検索

More like this クエリは、単語の出現頻度をベースとした検索であり、似た文書は同じ単語を持つという仮定を置いた検索になります。直感的な仕組みである一方で、似た意味を持つ単語を拾うことができないため柔軟性に欠けているという欠点もあります。

元記事を表示

クラウドログのSREチームに入ってみて

[クラウドワークス Advent Calendar 2022](https://qiita.com/advent-calendar/2022/crowdworks) の18日目の記事です。

はじめまして、クラウドログでエンジニアをしている久下です。
先日、健康診断で特定保健指導を受け、ラーメンを月に2回まで制限するという健康プランを立てました。現在は、目標達成後のラーメン食べ歩きを期待して生活しています。
クラウドワークスには10月に、クラウドログの1人目のインフラ・SRE担当として入社しました。
この記事では、クラウドログにSREチームに入ってみて感じたことや今後やっていきたいことについて書いていきたいと思います。

# これまでの経歴
20代は工場でものづくりをしていましたが、リーマンショックで希望退職しました。
その後SIer、MSP、飲食関係のIT企業でエンジニアを経験しました。

# 転職したきっかけ
前職では担当していたプロジェクトが一段落し、今後数年どういう業務をやっていくかについて考えた場合に、おおよそ想像できるようになっていました。
とても良い職場だったのですが、そ

元記事を表示

リゾルバーがLambdaのAppSync(Mutation編)

# 概要
この記事では、リゾルバーにLambdaを設定したAppSyncのMutationパターンを紹介します。

# 前提
– DynamoDBにテーブルが用意されていること
– AppSyncのスキーマを作成済みであること

# Lambda
まず、AppSyncに紐づけるLambdaを作成します。
ここでは、DynamoDBのデータを更新するコードを使用します。

※ 本来、DynamoDBのデータを更新するだけであれば、マッピングテンプレートで完結します。
  詳しくは、[こちら](https://qiita.com/inoue-mn/private/6532c55c715f8024a2b4)を参照ください。

“`python
import boto3
from boto3.dynamodb.conditions import Key, Attr

def lambda_handler(event, context):
id = event[‘input’][‘id’]
favorite = event[‘input’][‘favorite’]

元記事を表示

AWS: タグ別の自己記事目次 [automated]

# 概要
タグ別での自己記事の目次です。
Power Automate にて定期更新をしています。

# [DynamoDB の Put/Get/Scan/Query Command のサンプル](https://qiita.com/baku2san/items/06e760a8bb4dbf33a41b)
投稿日: 2022/12/12 (更新日: 2022/12/17)
AWS, DynamoDB, AWS-SDK-V3

# [AWS DynamoDB 複合ソートキーって・・単なる文字列ソートなんですね。](https://qiita.com/baku2san/items/a01604715ebd22b93017)
投稿日: 2022/12/10
sort, AWS, DynamoDB

# [DynamoDB で複合キーに # が入ってる場合の読み込み方。TypeScript 経験者には当たり前のお話](https://qiita.com/baku2san/items/e01662975d09aee2243e)
投稿日: 2022/12/8
AWS, 初心者, TypeScr

元記事を表示

Amazon CloudFront Functionsでハッシュの検証(HMAC)

こちらは『[ゆるWeb勉強会@札幌 Advent Calendar 2022](https://adventar.org/calendars/7513)』の18日目の記事です。

## はじめに
S3に保存しているコンテンツを保護したい場合、署名付きURLや署名付きCookieを利用すると思います。
もう少しライトにアクセスを制限出来ないかと思い、CloudFront Functionsで
ハッシュの検証を試してみました。

## 実現したいこと
クエリパラメータsに指定したハッシュ値が正しい場合のみ、S3に保存してある画像を表示するようにします。

ハッシュ化はCloudFront Functionsで用意されているビルトインモジュール(crypto)を利用します。
アルゴリズムはsha256を使用し、ハッシュベースのメッセージ認証コード (HMAC)を生成します。

今回リクエスト側の処理は省略します。
テスト用にPHPでハッシュ値を生成しました。

### 前提条件
* 画像はS3にアップロード済
* S3はCloudFront経由でのみアクセスする設定済
* CloudFro

元記事を表示

Amazon WorkSpaces と Azure Virtual Desktop 比較 ~Amazon WorkSpaces MFA実装編~

Amazon WorkSpaces(以下、WorkSpaces)と Azure Virtual Desktop(以下、AVD)シリーズの3本目です。
1本目の記事はこちら[Amazon WorkSpaces と Azure Virtual Desktop 比較 ~Amazon WorkSpaces事前準備編~](https://qiita.com/hidekko/items/c350d6dcc606247dd0a2)
2本目の記事はこちら[Amazon WorkSpaces と Azure Virtual Desktop 比較 ~Amazon WorkSpaces構築編~](https://qiita.com/hidekko/items/24e2f3e75d222c9e632e)

本記事は構築済みのWorkSpacesに多要素認証(以下、Multi-Authentication Factor=MFA<

Visual Studio Code の拡張機能で幸せなAWS サーバレス開発へ[概要編]

# 背景
3年ぐらい前からサーバレス開発(Lambda, S3, APIGateway等)を始めたのですが…
今まで、コマンドベースで開発をしていました。
今回、記事にする拡張機能は当初から入れておりましたが、Templateファイル(IaC)のCodeチェックでしか使っていませんでした。
そして、3年たった今
 「もう少し楽に開発したいなぁ〜そういや、この拡張機能、、ちゃんと使ってないな」
と気づき!!※というか、入れていたのを忘れていた…
効率化に向けて、どれぐらい有能に使えるかも含めちゃんと調べたいと思います。
現状、他にも同じような記事があると思いますが、自身のアウトプットの為に備忘録として残していこうと思います。

さて、今年も終わりに近づいてることですし重たい腰をあげますかっ…

# 拡張機能「AWS Toolkit」
## 紹介
本記事では「AWS ToolKit」について、使い方等をメインに記載していきます。
下記がVisual Studio CodeのMarketplaceでインストールできるAWS ToolKitになります。
[AWS TooKit](https:/

AWS CLI をインストールしてみて、S3 へファイルアップロードを試してみた

# はじめに

AWS CLI のインストールをして、S3 を各種操作する方法を簡単にまとめます。一連の流れがわかりやすく整理された AWS Document があまり見つからなかったので、後から見返したときにわかりやすいように整理しました。

# S3 Bucket の作成

ファイルをアップロードするための、S3 Bucket を作成します。S3 の画面で、Create bucket を押します。

![image-20221217180614735.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c5f72298-e47f-0b96-ca51-213394299b4a.png)

名前とリージョンを指定します。

![image-20221217181302658.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/2796e307-2ce1-a6d6-7d68-17eb08985a