- 1. Fargate で Tomcat の Java/JMX を取得し CloudWatch に表示する
- 2. AWS PinpointでiOSにプッシュ通知を送信する際のAPNS環境の違いとテストフライトの注意事項
- 3. Serverless Flamework ことはじめ
- 4. 【AWS】Lambdaで登録した関数をREST APIで呼び出す方法
- 5. 【AWS】EC2経由でパトライトとの連携について②
- 6. 【AWS】EC2経由でパトライトとの連携について①
- 7. AWS EventBridgeスケジューラで圧倒的コスト削減に成功した話
- 8. 43日目 SAAに挑んだ社畜S
- 9. CloudFormationを使ってSNS TopicとChatBotを作成しよう!
- 10. CloudFrontでのキャッシュについて
- 11. aws-amplifyで仮パスワードを更新する
- 12. Well Architected frameworkを使って、何が出来るのかわからない
- 13. HEIC(HEIF)画像をJPEGに一括変換する
- 14. [Amplify]boto3でS3のオブジェクトを操作するときの権限を付与する。
- 15. BedrockとLCELでAdvancedRAGのクエリ拡張をやってみる
- 16. Azure DatabricksからのAWS S3へのアクセス
- 17. [CI CD] OIDCでGithubActionとAWS繋がってReactAppのCI CDを設定
- 18. AWS Data Engineer Associateの学習方法
- 19. Amazon Location Serviceでジオコーディングとリバースジオコーディングをやってみた
- 20. Node.jsで書いたSeleniumのコードをマルチデバイス対応させる
Fargate で Tomcat の Java/JMX を取得し CloudWatch に表示する
# やりたいこと
Fargate で Tomcat の Java/JMX を取得し CloudWatch メトリクスとして表示する。
また、Container Insights に表示する。# 参考にしたサイト
https://aws.amazon.com/jp/blogs/mt/monitor-and-scale-your-amazon-ecs-on-aws-fargate-application-using-prometheus-metrics/
https://qiita.com/tayaaa/items/94f1baf5952bfa195ca5
https://qiita.com/SightSeekerTw/items/931834efbcff5b61eb0f
# 先にハマったところ
CloudWatch メトリクスまで表示させるのであれば、2 つ目の記事で良いが、Container Insights まで表示させるのであれば、1 つ目の AWS のブログの記事を参考にした方が良い。
CloudWatch エージェントの設定をパラメータストアに保存(CWA
AWS PinpointでiOSにプッシュ通知を送信する際のAPNS環境の違いとテストフライトの注意事項
こんにちは、開発部の天津炒飯です。
自分はステージング(STG)環境でテストフライトにプッシュ通知を送信できず、苦戦した経験があります。そこで、APNSのそれぞれの環境の違いと、STG環境でのテストフライトの注意事項を紹介したいと思います。
## APNS Product環境とSandbox環境の違い
### 1. Production環境
* **用途:** 本番環境で実際のユーザーに対してプッシュ通知を送信するために使用します。
* **証明書:** Apple Developerアカウントで取得するProduction用のAPNS証明書が必要です。
* **トークン:** 実デバイスで発行されたデバイストークンを使用します。
* **Pinpointチャンネル:** APNS
### 2. Sandbox環境
* **用途:** 開発およびテスト環境でプッシュ通知の動作を確認するために使用します。
* **証明書:** Apple Developerアカウントで取得するSandbox用のAPNS証明書が必要です。
* **トークン:** 実デバイスまたはシミュレーターで発行さ
Serverless Flamework ことはじめ
Lambdaを学習するにあたり、Serverless Flameworkを利用したため、使い方について整理しました。
## Serverless Flameworkとは
一言で言うと、サーバレスアプリケーションの構成管理やデプロイのためのOSSツールです。https://www.serverless.com/
AWS、Azure、Google Cloudといったクラウドサービスに対応しており、豊富なテンプレートも提供されています。
本記事では、AWSのCloud9を利用し、設定を進めます。
## インストール
Node.jsのv12以上が必要となるため、事前に公式サイトよりインストールしておきます。
Serverless Frameworkはnpmのパッケージとして公開されており、ターミナルで以下のコマンドを入力しまするとインストールできます。
“`
> npm install -g serverless
# @を付けることで特定のバージョンの指定が可能
“`インストールしたslsのバージョンを確認します。
“`
> serverless -v
# serv
【AWS】Lambdaで登録した関数をREST APIで呼び出す方法
# Lambdaに関数を登録する
1.「関数の作成」ボタンを押下する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639599/7f573744-c384-6ad4-5b4d-a3a2ece70b0c.png)
2.関数を作成する(※本稿では、関数名とランタイム以外はデフォルトで設定する)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639599/fa2efaa8-296c-59b1-4e9c-cab9f2fa93f9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639599/44223c68-7d65-8721-9d44-5f9e24fbe0e3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.am
【AWS】EC2経由でパトライトとの連携について②
【AWS】EC2経由でパトライトとの連携について①の続きです。
###### ■Lambda関数
:::note warn
SSM RunCommand実行が必要ですので、「AmazonSSMFullAccess」ポリシーのアタッチが必要。
@aws-sdk/client-ssm、mailparserのnode.jsライブラリはLambdaレイヤーに事前導入済み。
:::
“`ruby:qiita.rb
import { SendCommandCommand } from “@aws-sdk/client-ssm”;
import { ssmClient } from “./ssmClient.mjs”;
import { simpleParser } from “mailparser”;export const handler = async (event) => {
console.log(“request:”, JSON.stringify(event, undefined, 2));
let res = “0”
l
【AWS】EC2経由でパトライトとの連携について①
当社の監視システムでは、各システムに対して障害を検知しましたら、メールにて関係者に通知していますが、夜中で夜間バッチにて障害検知時、メール通知が行われたとしても即時発覚ができない問題点はあります。
従ってメール通知のみならず、パトライトと連携して点灯や警告音等で監視部隊に通知することを決めました。
監視通知メールはどのようにパトライトと連携するかという点についてAWS上で構築したEC2を経由し、パトライトにRSHコマンドを実行し指示を出す方法がありますので、以下の通りまとめて記載しておきます。
##### ■全体構成図
![構成図.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600067/6bb1ca06-927b-2032-1597-d719f14647e0.png)
ポイントとしては
①SES受信機能を利用してメール受信したらイベントをSNSに送り、SNSよりLambda関数を実行させる。
②Lambda関数はSystemManagerのRunCommand機能を利用して、EC2内部のシェル
AWS EventBridgeスケジューラで圧倒的コスト削減に成功した話
## 概要
前回の記事でご紹介した「EventBridge」を使って、3割ほどのコスト削減に成功したので残しておきます!
AWSを使ったインフラのコスト削減をしたいときは、ぜひご参照ください。
前回の記事はこちら↓
**[AWS EventBridgeスケジューラが便利すぎた!](https://qiita.com/Nightley_dev/items/1f54fb761f713cde5c3e)**
## 対象リソース
コスト削減と銘打ってはいますが、ECSコンテナなどのスケーリングでも、積極的なリソースコントロールができるのでオススメです!
今回対象としたawsリソースは、以下の通り。
– EC2
– ECS
– RDS
– VPC endpoint
– Cloudwatchアラーム(エラーになるため無効にする)
– route53ヘルスチェック(エラーになるため無効にする)## terraformで作成してみた
### IAM
まずはIAM設定。お試しなのでポリシーゆるめです。
“`jsx
#——————————-
43日目 SAAに挑んだ社畜S
## :checkered_flag:はじめに
どうも、社畜Sです。
先週までの記事の通り、私たち社畜は
**「AWS Certified Solutions Architect – Associate(通称SAA)」**
に合格すべく学習に励んでいました。そしてついに、先週の土日に社畜3人ともSAAを受験してきました!
今回はそんな社畜Sの試験結果について話していこうと思います。
気になるその結果は………!?
## :checkered_flag:結果発表
**社畜S、無事合格できましたー!!!**
![pose_goukaku4_businessman.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766505/e084a126-c493-b4bf-5410-ef5b94438908.png)
正直、わからない問題が多すぎて完全に落ちたと思っていましたが、残り1~2問間違えていたら不合格というラインでぎりぎり踏みとどまっていました!
ぎりぎりですが合格は合格
CloudFormationを使ってSNS TopicとChatBotを作成しよう!
## 概要
SNSとChatbotを使ってSlack通知を受け取りたいのでCloudFormationを使って実装する方法について解説していきたいと思います## 前提
– Slackのワークスペースを作成済み## 実装
以下のファイルを作成します
– sns-topic.yml
– chatbot.yml## SNS Topicの作成
SNS Topicを作成します
今回は
– Alert
– Warning
– Securityの3種類のTopicを作成していますがTopic数はプロジェクトの要件に応じて調整してください
KMSを使って暗号化したいので以下のように各Topicに応じてKmsMasterKeyIdを設定します“`yml
AlertTopic:
Type: AWS::SNS::Topic
Properties:
DisplayName: shun198-alert
TopicName: shun198-alert
KmsMasterKeyId: !Ref KMSKeyAliasName
“`
CloudFrontでのキャッシュについて
## はじめに
CloudFrontのキャッシュは、エッジロケーションでコンテンツを保存し、ユーザーに近い場所から配信する仕組みです。
本記事では、CloudFrontのキャッシュによるメリットや保持期間、削除について解説します。## メリット
CloudFrontのキャッシュは、ユーザーに近いエッジロケーションでコンテンツを保存し、迅速な配信を可能にする仕組みです。これにより、次のようなメリットがあります。
①**配信の高速化**: ユーザーに近いエッジロケーションからコンテンツを提供することで、リクエストのラウンドトリップタイムが短縮され、ページのロード時間が減少します。これにより、高速な応答が可能になり、特にグローバルなユーザー基盤を持つサービスで顕著な効果があります。
②**帯域幅の節約**: 多くのリクエストがエッジロケーションで処理されるため、オリジンサーバーの負荷が減少し、必要な帯域幅が節約されます。また、オリジンサーバーへの転送量が減ることで、データ転送コストの削減にもつながります。
③**高可用性の実現**: オリジンサーバーがダウンした場合でも、エッジロ
aws-amplifyで仮パスワードを更新する
# はじめに
つまったので共有
公式ドキュメント分かりづらくない???# 環境
“`:モジュール等
Nuxt3 3.10
aws-amplify 6.3.2
@aws-sdk/client-cognito-identity-provider 3.577.0
“`# 背景
管理者ユーザーが自身の組織に一般ユーザーを追加するようなユースケースを想定して、ユーザー追加機能を実装していた
1. 管理者が一般ユーザーの名前やメールアドレスなどを入力し、ユーザー追加を実行
1. 裏で`aws-sdk`の`AdminCreateUserCommand`を実行
1. 成功すると、対象ユーザーのメールアドレスに仮パスワードが送信される
このとき、Cognito上で対象ユーザーの確認ステータスは`パスワードを強制的に変更`となっている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177673/a94cd846-3372-b6f6-7362-e1e731de1f55.png)1. 追加された
Well Architected frameworkを使って、何が出来るのかわからない
### Well architected frameworkを使って、何が出来るのかが、わかりにくいので、
**Microsoft Certified: Azure Solutions Architect Expert**
**Google Cloud Professional Cloud Architect**
**AWS Certified Solutions Architect – Professional**
**資格を保有している著者の観点から**、クラウドベンダー全てのWell-Architected Frameworkを確認し、「エーベルの三要素」で、
__「誰に(Who)」、「何を(What)」、「どのように(How)」伝えたいのか__ を整理してみました。**整理した内容を確認する事で、理解を深めて頂けると、嬉しいです!**
:::note info
エーベルの3要素モデルは、事業の戦略的な範囲を定義するために、__「誰に(Who)」、「何を(What)」、「どのように(How)」__ の3つの次元を考慮します。これらは、それぞれ __「顧客グループ(Cu
HEIC(HEIF)画像をJPEGに一括変換する
# はじめに
iOS(11以降)では写真を撮影したときに、特に設定をしていなければHEIFと呼ばれる方式で画像を保存します。拡張子はHEICです。この方式は高画質かつファイルサイズが小さいので便利そうなのですが、Apple系のOS以外ではまだサポートが充実していません。今回はHEIC画像を一括(バッチ)でJPEGに変換する方法をいくつか試してみます。# Windows版ImageMagickを使う
ImageMagickは様々なフォーマットに対応したツールで、最近HEICを読み込めるようになりました。Windowsバッチで次のように書くと、batファイルを設置した場所と同じ階層のHEICファイルを全てJEPGに変換できます。PATHを通すことができない場合はImageMagickの場所をフルパスで書くことで実行できます。“`bat
for %%f in (*.HEIC) do (
start convert.exe “%%~nf”.HEIC “%%~nf”.JPEG
)
“`
この例はマルチプロセスで、処理するファイル数と同じ数のプロセスが実行されま
[Amplify]boto3でS3のオブジェクトを操作するときの権限を付与する。
# はじめに
Pythonでboto3を使用してS3バケットのオブジェクトを操作するときに、エラーにハマったので、メモとして残しておきます。# エラーの内容
boto3を使用して、S3のオブジェクトを操作しようとしたときに、以下のエラーが発生した。
“`
An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied”
“`このエラーはS3のオブジェクトを操作するにあたって、権限が足りていないことが原因です。
しかし、以下のように権限は付与されていました。
“` custom-policies.json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Action”: [
“s3:GetObject”,
“s3:ListObject”
“s3:PutObject”,
“s3:DeleteObject”
BedrockとLCELでAdvancedRAGのクエリ拡張をやってみる
LLMでretrieveの前処理を行い、クエリを書き換え、または分割してからナレッジベースに対してn回のretrieveを行い、LLMで回答を生成するRAGをLCELで書いてみます。
※この記事ではretrieveの後処理は実装していません。クエリ拡張は、Command R+ の search_queries_only を使うバージョンと、Claude 3 で生成させるバージョンの二種類作ります。
クエリを書き換えるがretrieveは1回のみで作った例は以下
↓https://qiita.com/cyberBOSE/items/fd65de9f857d36180fa5
# 参考文献
https://aws.amazon.com/jp/blogs/news/verifying-the-accuracy-contribution-of-advanced-rag-methods-on-rag-systems-built-with-amazon-kendra-and-amazon-bedrock/
https://github.com/langchain-ai/langcha
Azure DatabricksからのAWS S3へのアクセス
こちらの手順をウォークスルーします。
https://learn.microsoft.com/ja-jp/azure/databricks/connect/storage/amazon-s3
こちらも参考にしています。
https://medium.com/@malavansa/azure-databricks-and-aws-s3-storage-92cf03636c9
:::note warn
**警告!**
クラウド横断での接続を行う構成ですので、以下の点には注意してください。– アクセスに用いる認証情報は厳重に管理してください。
– クラウド間通信のコストが発生することに注意してください。
:::# AWS側での作業
## S3バケットの作成
`taka-bucket-from-azure`というS3バケットを作成します。**S3ブロックパブリックアクセス**は有効化してください。
![Screenshot 2024-05-21 at 9.39.25.png](https://qiita-image-store.s3.ap-northeast-1.amazo
[CI CD] OIDCでGithubActionとAWS繋がってReactAppのCI CDを設定
# 前提
[前の記事](https://qiita.com/17021084/items/741157305e88df986588#:~:text=%E3%80%8CDone%E3%80%8D%E3%82%92%E6%8A%BC%E3%81%99%E3%81%A8%E3%80%81%E3%80%8Csecret%20access%20key%E3%80%8D%E3%81%8C%E8%A6%8B%E3%81%88%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8B%E3%82%89%E3%80%82%E5%BF%B5%E3%81%AE%E7%82%BA%E3%80%81%E3%82%AD%E3%83%BC%E3%82%92%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%BE%E3%81%99)にはこちらテーマも説明しました。但し、「Secret access key」をダウンロードして、GitHubに保存することから、漏れる懸念があります。# 概要
本記事では、「Secr
AWS Data Engineer Associateの学習方法
# はじめに
2024年4月から始まったAWS認定DataEngineerAssociateの学習方法を書いていきます。# 試験ガイドを読む
https://d1.awsstatic.com/ja_JP/training-and-certification/docs-data-engineer-associate/AWS-Certified-Data-Engineer-Associate_Exam-Guide.pdf>AWS Certified Data Engineer – Associate (DEA-C01) 試験では、受験者がデータ
パイプラインを実装し、ベストプラクティスに従ってコストとパフォーマンスの
問題をモニタリング、トラブルシューティング、最適化する能力を検証します。
また、次のタスクについての能力も検証します。
• プログラミングの概念を適用しながら、データを取り込んで変換し、データ
パイプラインをオーケストレーションする。
• 最適なデータストアの選択、データモデルの設計、データスキーマの
カタログ化、データライフサイクルの管理を行う。
• データパイプラ
Amazon Location Serviceでジオコーディングとリバースジオコーディングをやってみた
今回は、Amazon Location Serviceを使ってジオコーディングとリバースジオコーディングに挑戦してみました。
備忘録も兼ねて、手順をまとめてみたので、皆さんの参考になれば嬉しいです。## 1. Amazon Location Serviceの設定
まずは、AWS CloudFormationを使ってAmazon Location Serviceの設定をします。以下のYAMLファイルを使って、PlaceIndexとAPIKeyを作成します。
“`
AWSTemplateFormatVersion: “2010-09-09”
Description: Create AmazonLocationService PlaceIndex&APIKeyResources:
########################
### AmazonLocationService PlaceIndex
########################
PlaceIndex:
Type: AWS::Location::PlaceIndex
Prope
Node.jsで書いたSeleniumのコードをマルチデバイス対応させる
# はじめに
普段はとある企業でフロントエンドを担当しています。
たまにバックエンドやインフラもやりますが、今回はテストシステムの構築から始めたのでフロント&インフラが絡むお話です。# 背景
社内開発で、リリース前テストは要望の上がったユーザー部門で行ってもらっていましたが、いろいろ対応しなければいけないパターンが出てきたことからテストの自動化を進めていきました。# 課題
## テストがそもそも負担大
私のいる会社では社内の担当部署で動作チェックを行ってもらい、問題なければリリース・・・というプロセスを踏んでいます(もっと良いフローはあると思う)
もちろん担当部署には他の仕事があるのでテストばかりやっているわけにはいきません。## 機能・アプリの増加によるテストケース増加
これはテストを網羅的に実施しようとすると永遠に付きまとう問題かと思います。
手作業でテストを行っていたのでなおさら負担は大きいものでした。## テストでマルチデバイス対応が必要になっていた
iOSのある特定のOSバージョンでしか発生しないバグが発生するなど、ユーザーテストでは網羅に限界のある内容が出て