- 1. Renesas RXファミリ用 FreeRTOS-LTS (iot-reference-rx) でIoT デバイスの証明書を更新する
- 2. AWS Lambdaのローカル環境構築メモ
- 3. [Terraform]ALBを作成してみた
- 4. Fargate上のGitLab起点でECSを更新するGitOpsを実現したい
- 5. AWS ChatBotからAmazon Qを活用する
- 6. ECS on EC2でDockerコンテナを使用時に発生した自動タスク再起動の問題と解決策
- 7. AWS CLIで複数のアカウントを切り替える
- 8. CloudFrontの多段構成
- 9. LINEボットから呼び出せるKendra+BedrockのRAGアプリを作る
- 10. AppSync (GraphQL) 学習メモ
- 11. S3 から Google Drive へ Lambda を使ってファイルアップロード
- 12. AWS SAMでPrismaを使ったAWS Lambdaを動かす
- 13. S3 バケットをEC2 インスタンスにマウントする
- 14. 【AWS】CloudFrontのざっくりとした仕組み
- 15. 【AWS】Application Load Balancerを解説【サービス解説】
- 16. 【AWS】ソリューションアーキテクト アソシエイト に首の皮一枚残って合格した話
- 17. AWSのウォームアップについてわかりやすく具体例を用いて覚える備忘録
- 18. 人工知能(Artificial Intelligence、AI)とは
- 19. SQSにLambdaトリガーを設定してみた
- 20. Amazon SQSのデッドレターキューの挙動を確認
Renesas RXファミリ用 FreeRTOS-LTS (iot-reference-rx) でIoT デバイスの証明書を更新する
# はじめに
最近、Renesas RXファミリ用 FreeRTOS-LTSサンプルプログラム (iot-reference-rx)がGitHub上に公開されました (iot-reference-rxには、FreeRTOS-v202210.01-LTSのライブラリを使用した各種デモプログラム/プロジェクトファイルが配置されています)。* [renesas/iot-reference-rx](https://github.com/renesas/iot-reference-rx)
このiot-reference-rxで試すことができるデモプログラムは以下の3つです
これらのデモプログラムは複数を同時に実行することが可能なようです。1. PubSub (AWS IoT Coreに簡単なMQTTメッセージを送信する)
2. OTA (AWS IoT Coreを使用してファームウェアアップデートを実行する)
3. Fleet Provisioning (共通の証明書/秘密鍵を使用してデバイス個別の証明書を取得する)今回はiot-reference-rxを変更してデバイス個別の証明
AWS Lambdaのローカル環境構築メモ
# 初めに
新しいWin11のPCにlambdaのローカル開発環境作ることになったのでメモとして残す。
※Hyper-V上に作成したまっさらなWindows11の仮想マシンに入れたものです。# Pythonインストール
ここからインストーラ落とす。今回は3.12.1を入れるhttps://www.python.org/downloads/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261327/c8e3d152-440e-00b9-b190-640ad237802a.png)
チェック入れてInstall Now
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261327/e81c982c-3cfb-a34d-6a20-80a8150383de.png)Disable path length limitが出るが何もしない(今回はそこまで深い階層パスになることがない想定
[Terraform]ALBを作成してみた
## 目的
Terraform学習でALBを作成したので備忘録として記事にまとめます。
今回は下記の構成図のように、冗長構成された環境でパブリックサブネットにALBを配置し、トラフィック送信先をASGへと紐づけます。また、ALBのヘルスチェック機能も併せて設定していきます。
尚、VPCやASGなどのALB以外のリソース作成コードに関しては割愛します。![blog2.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3663364/45754d7b-4fba-21d2-b47a-6080c0e01b40.png)
## ALB作成
“`alb.tf
resource “aws_lb” “alb” {
name = “test-alb”
#インターネットからのアクセスを許可
internal = false
#ALB,NLBを明示的に選択(今回はALB)
load_balancer_type = “application”
#別途作成したセキュ
Fargate上のGitLab起点でECSを更新するGitOpsを実現したい
# はじめに
この記事はDevOps on AWS大全 実践編の一部です。
DevOps on AWS大全 実践編の一覧は[こちら](https://qiita.com/tech4anyone/items/c27e74f9ae569ced259f)。この記事ではGitLab起点でECSを更新するCICDパイプラインのアーキテクチャを決める流れを解説しています。
具体的には以下流れで説明します。
– 解決したい課題の整理
– 今回使うAWSサービスの整理
– アーキテクチャの策定
– 策定したアーキテクチャで達成できたことAWSの区分でいう「Level 400 : 複数のサービス、アーキテクチャによる実装でテクノロジーがどのように機能するかを解説するレベル」の内容です。
# この記事を読んでほしい人
– DevOpsエンジニアがアーキテクチャを決めるときにどのような思考フローを踏んでいるか知りたい人
– ECSを更新するCICDパイプラインのアーキテクチャを知りたい人
– AWS Certified DevOps Engineer Professionalを目指している人
AWS ChatBotからAmazon Qを活用する
# 実施した内容
# メモ1(AWS CLI)
AWS CLI を実施する時は適切なIAMロールが追加で付与が必要。
例えば以下のようにEC2の一覧を見ようと思って叩きたい場合は
“`sh
@aws ec2 describe-instances –region ap-northeast-1
“`
![スクリーンショット 2024-01-03 23.49.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2292878/996358b7-2afa-c04a-05f5-a47aa9056e5a.png)IAMロールに`AmazonEC2ReadOnlyAccess`のポリシー追加が必要。
叩いてみると、いくつかパラメータを聞かれるが Skip していると値が返ってくる。
![スクリーンショット 2024-01-03 23.52.14.png](https://qiita-image-store.s3
ECS on EC2でDockerコンテナを使用時に発生した自動タスク再起動の問題と解決策
English below the Japanese
## 背景Amazon ECS on EC2を使用してVue、Laravel、MySQLを実行する3つのDockerコンテナを構築した際に直面した特定の問題について述べます。この問題は、タスクが不定期に約一日に一回自動的に終了し、再起動する現象です。
## 環境
– コンテナA:Vueを実行(専用のDockerボリュームあり)
– コンテナB:Laravelを実行(専用のDockerボリュームあり)
– コンテナC:MySQLを実行(専用のDockerボリュームあり、再起動によるデータ損失あり)これらのコンテナは、それぞれ専用のDockerボリュームを持ち、EC2インスタンス上の一つのクラスターを介して一つのタスクとして定義され、各ボリュームがホストマシンにマウントされています。
## 問題の特定過程
タスクが不定期に再起動するため、AWSでは停止したタスクの情報は約1時間しか保持されません。そこで、以下のURLに従い、タスクの停止原因をCloudWatch Logsに記録することにしました。
[参考URL](htt
AWS CLIで複数のアカウントを切り替える
# 概要
– 仕事でAWSを使っているのですが、AWS CLIを使って複数のアカウントを切り替える方法でハマったのでメモ(**かなり初歩的な内容です**)
– 以下のような状況を想定
– AWS CLIを使って複数のアカウントを切り替えたい# ユースケース
– AWS環境が以下のような構成になっている
– 本番環境(`production`)
– ステージング環境(`staging`)
– 開発環境(`development`)
– それぞれの環境に対して、AWS CLIを使って操作したい
– AWS SSOアカウントが既に各環境に作成されている
– AWS SSOアカウントには、それぞれの環境に対応したロールが作成されている
– 例えば、本番環境に対応したロールは、`arn:aws:iam::123456789012:role/production-admin`のようなARNが割り当てられている
– 詳しくは、[AWS SSOのドキュメント](https://docs.aws.amazon.com/ja_jp/singlesignon/latest/u
CloudFrontの多段構成
# 概要
CloudFrontの多段構成を構築運用した際の、記録を残します。# 内容
既に運用しているCloudFront+αの環境において、既存環境(CloudFront)を手前に置きつつ、全く別な環境をさらにCloudFrontを利用して組みたかったので
いわゆる「CloudFront多段構成」をした際のメモを残しました。## 構成
次のような構成例で考えます。
![aws-cloudfront-cloudfront.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406764/7201d290-4693-9983-c117-340f0a1e690d.png)※AWSアーキテクチャ図作成は[こちら](https://aws.amazon.com/jp/architecture/icons/)からお好みのツールを
以下に構築・設定メモを残します。
### ドメイン購入+Route53 HostedZoneでの用意
購入したドメインを使用できるように設定しておきます。
さらに、ACMを`
LINEボットから呼び出せるKendra+BedrockのRAGアプリを作る
# はじめに
明けましておめでとうございます。本年もどうぞよろしくお願いいたします。
新年一発目のチャレンジとして、LINEボットから呼び出せるKendra+BedrockのRAGアプリを作ってみました。# 参考にした記事
### 参考記事①
LINEボットからBedrockを呼び出せるようなコードが配布されていました。
めっちゃありがたい。。
参考、というかガッツリ利用させていただきました。
@moritalous さん、ありがとうございます!!https://github.com/moritalous/bedrock-line-chat/tree/main
### 参考記事②
上記のコードにKendraとの連携部分を追記しました、というのがこの記事の内容なんですが
Kendraとの連携部分の記述は、以下の記事を参考にさせていただきました。https://dev.classmethod.jp/articles/amazon-bedrock-kendra-lambda-rag/
# やったこと
以下について、それぞれ記載します。
1. コーディング
1. LINE Me
AppSync (GraphQL) 学習メモ
# メモ
REST API のマネージドサービス = API Gateway
GraphQL のマネージドサービス = AppSync
スキーマとはフロントエンドとバックエンドがどのような形式でデータをやり取りするのかを決めたもの
## GraphQL
+ GraphQL
+ Facebookにより開発されたWebAPIのためのクエリ言語とそのランタイム(プログラムとかを動かすときに必要な部品のこと)
+ メリット
+ 少ないリクエストで複数のリソースにアクセス可能
+ クライアントに必要な最小限のデータだけを取得可能
+ デメリット
+ エンドポイントがリソースやアクションを表していない為、キャッシュやモニタリングなど、HTTPのエコシステムを活用しにくい
+ 単一のエンドポイントを一個だけ用意して、そこに対してクエリを投げ込む### GraphQLスキーマ
GraphQLスキーマとは、**GraphQL APIが扱うデータの形状とそのデータに対する操作**を定義するもの。スキーマは、**デー
S3 から Google Drive へ Lambda を使ってファイルアップロード
# はじめに
この記事では、AWSのLambdaを使用してAmazon S3からGoogle Driveにファイルをアップロードする方法を紹介します。
Google Drive APIを活用することで、プログラム的にドライブ内のファイル操作が可能になります。# S3 から Google Drive へ Lambda を使ってファイルアップロード
## Google プロジェクトの作成
画面を見ながら操作したい方は、[こちら](https://qiita.com/w2or3w/items/b66a4a8e45e6001a9c46)を参考して作業を進めて下さい。
1. **Google Drive API を有効にする**
– Google Cloud Platformで新しいプロジェクトを作成し、Google Drive APIを有効にします。2. **Google Cloud でサービスアカウントを作成する**
– Google Cloud Platformでサービスアカウントを作成し、必要な権限を付与します。3. **サービスアカウントの秘密鍵を作
AWS SAMでPrismaを使ったAWS Lambdaを動かす
## AWS SAMでLambdaを作成する
まずは、AWS SAM CLIを用いてテンプレート環境を作成します。事前に、AWS SAM CLIのインストールを[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/install-sam-cli.html)に従って行なってください。
準備が完了したら、テンプレートを作成します。
“`sh
sam init
“`
質問には以下のように答えます。
![スクリーンショット 2023-12-26 16.30.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591069/9a528524-63f0-1fd4-374f-f5478d718feb.png)
以下のようにアプリケーションが生成されたら準備完了です。
![スクリーンショット 2023-12-26 16.30.36.png](https://qiita-image
S3 バケットをEC2 インスタンスにマウントする
# チュートリアルの目的
次のアーキテクチャをどのように構築するかを見ていきます。
![00d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/f203c9e5-622e-9894-5d2e-5038983ef7aa.png)
3つのインスタンスにS3バケットをボリュームとして使用し、これらのインスタンスがデータを共有できるようにマウントする予定です。
以前のチュートリアルで共通のEFSボリュームを使用した似たようなケースについてすでに触れています。
https://qiita.com/seikida/items/94e0b480d4bd1a1a9b92
:::note warn
S3をボリュームとして使用すると、**パフォーマンスとデータの整合性に関する多くの制約があることに注意してください。** S3はオブジェクトをバージョン管理することができますが、まだ更新されていないオブジェクトがインスタンスに取得される可能性があります。バージョニングを使用する場合は、この種の問題に注
【AWS】CloudFrontのざっくりとした仕組み
## 背景
CloudFrontに対する理解がレベル1からレベル2に上がったので備忘録します。## 概要
以下を記載する。
– CloudFrontの仕組み
– CDNとは
– CloudFrontの仕組み
– 今後調査したいこと## CloudFrontの仕組み
CloudFrontを一言で言うと、「CDNを実現するためのAWSサービス」です。
なので、CloudFrontを理解するにはまずCDNを知る必要があります。#### CDNとは(超簡潔ver)
CDNとは、Webコンテンツの配信を高速化するための仕組みです。
オリジンサーバーの情報を世界中のキャッシュサーバーが代わりに配信することで、配信を高速化します。
例えば、キャッシュサーバーがオリジンサーバーより物理的に近いことにより、配信が高速化されます(下図)
![CDNの仕組み.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2393766/65276af4-089b-b182-a1a0-84c2dcd2720
【AWS】Application Load Balancerを解説【サービス解説】
## はじめに
AWSにはロードバランサーと呼ばれるサービスがいくつかありますが、今回はその中のApplication Load Balancer(ALB)について解説します。
## ELBの特徴
・書くELBの特徴についてはここでは省略しますが、AWSのコンソールにとてもよくまとまっているページがありましたので、その画面キャプチャを載せておきます
![ELBの特徴.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192949/391feb28-b0b2-dc42-26f2-3fa0478c5afd.png)## Application Load Balancer(ALB) の主な特徴
### レイヤー7のロードバランシング
ALBはアプリケーション層での負荷分散を提供します。これはHTTPおよびHTTPSトラフィックに対応しており、トラフィックを複数のターゲットに分散させることができます。
### 柔軟なリスナールールとアクションの設定が可能
パスベースおよびホストベースのルーティングをサポートし
【AWS】ソリューションアーキテクト アソシエイト に首の皮一枚残って合格した話
# はじめに
「SAAに合格した暁にはQiitaに合格体験記を投稿するぞ!」という謎のモチベーションのもと、何とか合格することができました。
巷にはSAAの合格体験記やら勉強法やらがQiitaだけでなく個人ブログやYouTubeなど色々な媒体に溢れかえっており、そちらを参照したほうがみなさんの糧となるはずです。
それでも当記事を投稿するのは、タイトルにあるとおり「首の皮一枚残って」という合格ラインギリギリで生き残ったことが、もしかしたらこれから受験する方々の背中を1mmでも押せるのでは、という思いがあることが理由です。
お世辞にもみなさんのお手本にはなることはありません。その点を踏まえて、もしよければ読み進めていただけると幸いです。### 私のスペック
:::note info
– 受験時点で芸歴21年。年数は重ねてるものの全てアプリケーションエンジニアとしてやってきておりインフラ系は全く経験なし。
– Java, C# のアプリケーション開発経験を持ってる。DB は Oracle, PostgreSQL あたり。自称バッチ処理大好きおじさん。
– 過去の業務の中でAWS
AWSのウォームアップについてわかりやすく具体例を用いて覚える備忘録
### AWSのウォームアップについての説明がよくわからなかったので調べて具体例を用いて説明
AWSの説明
–
インスタンスがウォームアップしている間、動的スケーリングポリシーは、ウォームアップしていないインスタンスのメトリクス値がポリシーのアラーム上限しきい値 (またはターゲット追跡スケーリングポリシーのターゲット利用率) より大きい場合にのみスケールアウトします。需要が高くなる場合は、アプリケーションの可用性を保護するためにスケールインを控えめに実行することがその目的になります。このブロックは、インスタンスのウォームアップが完了するまでスケールインして動的スケーリングを行います。>これ一発でわかりませんでした。クールダウンとどう違うの?!
### 具体例を用いて理解する
#### ウォームアップ中のシナリオ
ある Auto Scaling グループがあり、動的スケーリングポリシーが設定されています。このポリシーでは、インスタンスの平均 CPU 使用率が70%を超えた場合に新しいインスタンスを起動するように構成されています。
#### ウォームアップが開始された時
人工知能(Artificial Intelligence、AI)とは
機械学習エンジニアの木村です。AI(人工知能)への注目度が高まっています。AIは、あなたを幸せにするのでしょうか?
「幸せな人生とは、探して見つかるものではなく、自分で作っていくものです」
You do not find the happy life. You make it.幸せな人生を作って行きたいならば、利用しない手は、ないでしょう。ただ、仕組みをわかってないと、使いこなす事は、出来ないでしょう。そのため、仕組みを理解する為の支援をさせて頂きます。
☝️ まずは、AI(人工知能)に注目してみます。
—
人工知能(Artificial Intelligence、AI)とは、人間の知能を模倣した機械の知能のことです。AIの研究は、1950年代に始まり、1997年には、IBMのコンピューター「ディープ・ブルー」が世界チャンピオンのチェスプレイヤーを破り、AIの可能性を世界に示しました。機械学習とは、大量のデータからパターンを学習する技術です。機械学習のモデルは、アルゴリズムに基づいて学習し、未知のデータに対して予測や判断を行うための数学的な表現です。モデルは訓練データから
SQSにLambdaトリガーを設定してみた
## はじめに
SQSにLambdaトリガーを設定して、SQSがメッセージを受信した時、自動でLambda関数が発火する仕組みを試してみました。見なくていいですが、気分は前回記事の続き?です。
https://qiita.com/suiwave/items/149822a70b02daa25bd3
## 挙動まとめ
こんな感じの挙動が確認できました。#### ①正常系
![cap_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654730/4db3e7f2-f025-635a-815e-344f7917eb6d.png)キューはメッセージ受信後、メッセージをeventに含めながらlambdaを実行します。
可視性タイムアウト時間内にlambdaが正常終了すると、キューからメッセージが削除されます。#### ②異常系
![cap_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654730/
Amazon SQSのデッドレターキューの挙動を確認
# はじめに
年明けから重いInputは気分的に乗らなかったので、なんとなく気になっていたSQSを軽ーく動作確認してみました。
ドキュメントを読んで初めてデッドレターキューなる存在を知ったので、挙動を確認して、自分用にまとめます。https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html
## 結論
– 可視性タイムアウト期間を過ぎたメッセージはエラー扱いとなる。
– customerはPrimaryキュー側の「最大受信数」まで同じメッセージを受信することができる。
– 例えば最大受信数が1の場合、customerは1度だけ同じメッセージを受信することができる。
– 受信数が最大受信数をむかえ、かつエラーとなったメッセージは、**次のメッセージがcustomerに受信されたタイミングで**デッドレターキューに送信される。#### ①正常系
![cap_1.png](https://qiita-image-store.s