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

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

【AmazonSQS】障害時DLQに転送されたキューをSQSに再送したい(DLQ再処理)

![AmazonSQS 障害時DLQに転送されたキューをSQSに再送したい(DLQ再処理).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3754524/712e2579-1b08-8d82-ba3f-5a5c423741b6.png)

## 本記事で実現できること
障害時にDLQに転送されたキューを、オリジナルのSQSに再送する

## 前提
– AWSマネコンはログイン済み
– 障害時などDLQに転送されたキューが存在している

## 簡単な解説
全部で7フェーズ

①ホーム画面で、画面上部検索欄に[**SQS**]と入力。
 出てくるサービスの中から[**SQS**]をクリック

![AmazonSQS 障害時DLQに転送されたキューをSQSに再送したい(DLQ再処理) (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3754524/6ef1189b-9757-cde3-52ca-09dfe381c60

元記事を表示

Lambda Layer上でインポートするパッケージをローカルでインストール〜アップロードまで

## これは何?
今までインフラエンジニアで開発経験など無かったのですが, 趣味やサーバレスの検証も兼ねてLambda Layerを初めて自分で作成し実装した際にライブラリが異なることで`invalid ELF header`エラーが発生した際の対処法になります.

## 調査

Pythonで、momentoライブラリを導入してLambda Layerにアップロードした際に、 `invalid ELF header` エラーが発生しました.
(momentoについて詳しくは[こちら](https://docs.momentohq.com/ja/cache))

> https://docs.momentohq.com/ja/cache

これは、ローカルで実行しているPythonライブラリとLambdaで実行しているPythonライブラリが異なるため、ELF(Executable and Linking Format)ヘッダーの規定が異なりインポートエラーが発生しているものとなります.

“`toml
{
“errorMessage”: “Unable to impor

元記事を表示

macOS での Session Manager プラグインのインストールで `Failed to create symlink` になった件

まっさらな MacBook Pro がやってきたのでセットアップして必要な環境作っていくときにちょっぴりハマった話。

## 環境

* Apple M3 Pro
* macOS Sonoma 14.1

## AWS CLI でセッション繋ぐ

“`
$ aws ssm start-session –target i-XXXXXXXX

SessionManagerPlugin is not found. Please refer to SessionManager Documentation here: http://docs.aws.amazon.com/console/systems-manager/session-manager-plugin-not-found
“`

SessionManagerPlugin ない言われた。

[macOS での Session Manager プラグインのインストール(公式)](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/install-plu

元記事を表示

AWS SAMでLambdaのバージョン管理をしたい件

以前、「AWS SAMで作成したLambdaのバージョン管理することができないか」といった事象を経験したことがあり、その時調べた内容などの備忘録になります。

## AWS SAM におけるUpdateの挙動
まず初めに、AWS SAMにてLambdaバージョンを作成するには、[AutoPublishAlias](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-autopublishalias)を有効にする必要があります。(これによりLambdaのバージョンとエイリアスが作成。)

結論から言うと、旧Versionの保持についてはAWS::Serverless::Function上のプロパティからも保持するオプションのようなものはありません。

理由としては、以下の通りです。
以下のように、SAMで作成されたCfn スタックをアップデートする前に変更セットを作成します。
その時のリソー

元記事を表示

curlでAmazon Bedrock APIを呼び出してみた

# はじめに

みなさん、こんにちは。Amazon BedrockのAPIを呼び出すのにAWS CLIやAWS SDKを使うことが多いと思います。
UbuntuのEC2インスタンスは、初期設定だとAWS CLIやAWS SDKがインストールされていません。
今回は、初期設定の状態でAmazon BedrockのAPIを呼び出すことができるか試してみました。

# 前提

– バージニア北部リージョンを使用
– UbuntuのEC2インスタンスを作成
– AmazonBedrockFullAccessポリシーが追加されたロールをEC2にアタッチ
– EC2にはパブリックIPを付与しない
– EC2への接続はEC2 Instance Connectエンドポイントを使用
– EC2のセキュリティグループのインバウンドルールはEC2 Instance Connectエンドポイント用セキュリティグループからのSSHを許可
– EC2のセキュリティグループのアウトバウンドルールはすべてのトラフィックを許可
– Amazon BedrockでClaudeモデルの利用申請および有効化済み

#

元記事を表示

BedrockのナレッジベースがClaude 3 Sonnetに対応!

# ついにSonnetにも対応!

まだAWS公式のアナウンスはありませんが、ドキュメントが更新されているのがいち早く発見されました。

https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-supported.html

ひるたさん、いつも発見が早い!

https://x.com/web_se/status/1772417932024320397?s=20

現状、3つあるモデルのうちSonnetだけですが、既にBedrockにリリースされているHaikuモデルへの対応も時間の問題だと思われます。

また、エージェント for Amazon BedrockもじきにClaude 3対応されることが予想されます。

# 何が嬉しいの?

ナレッジベースとは、いわゆる「社内文書検索AIチャット」などを実現できるRAGアーキテクチャをAmazon Bedrockで簡単に作成できる機能です。

https://qiita.com/minorun365/items/24dfb0ea3afde6ed0a56

元記事を表示

EC2への複数ネットワークインターフェースアタッチについて

EC2に複数のネットワークインターフェースをアタッチして構築するケースについて。

AWSドキュメントでは下記に複数のネットワークインターフェースのアタッチについて説明があるのでメモ

– [ネットワークインターフェイスの設定に関するベストプラクティス](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/best-practices-for-configuring-network-interfaces.html)
– [ネットワークインターフェイスのシナリオ](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/scenarios-enis.html)

## 同じサブネットから複数のネットワークインターフェイスをインスタンスにアタッチするケースでは

[ネットワークインターフェイスの設定に関するベストプラクティス](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/best-practice

元記事を表示

AWS におけるクラウドセキュリティを強化するサービス

# 概要
AWS でシステムを運用する上で、セキュリティ面の対策することは不可欠です。アーキテクチャのベストプラクティスである [AWS Well-Architected](https://aws.amazon.com/jp/architecture/well-architected/?wa-lens-whitepapers.sort-by=item.additionalFields.sortDate&wa-lens-whitepapers.sort-order=desc&wa-guidance-whitepapers.sort-by=item.additionalFields.sortDate&wa-guidance-whitepapers.sort-order=desc) の6つの柱にもセキュリティの柱が存在するほど、重要なものとして挙げられています。AWS ではそのためのサービスが複数存在するので、今回は主にクラウドセキュリティ全般を強化するために利用したことがある(利用している)サービスを紹介します。

# 一覧
[1. AWS Identity and Access Mana

元記事を表示

【初心者】AWS Lambdaとサーバレス

# 目的
AWS Lambdaについての基本を知るため。
AWSを触る上で重要な概念であるサーバレスにも触れる。

# Lambdaとは
開発した関数をサーバレスに実行できるサービス。

## サーバレスとは

アプリケーション実行環境をマネージドサービスとして提供されたもの。

サービス使用者(私)は、サーバの構築やOSのバージョンアップなどの管理をする必要がない。
Lambdaでは関数さえあれば、サーバを意識することなく実行環境が構築できる。

## マネージドとは

サービス提供者(AWS)がインフラの管理や運用を含めてサービスとして提供する形態のこと。

## Lambdaの仕組み(簡素)

Lambdaは同時実行リクエストごとに、実行環境の個別のインスタンスをプロビジョニングします。

### LambdaをVPCにアタッチしていない場合
実行可能なAZで起動する。

### VPCにアタッチする場合
複数のAZでサブネットを指定することで高可用性を担保する。

## Lambdaにおける2つの実行方式(非同期・同期)

### 非同期実行
呼び出し元が処理結果を待機し

元記事を表示

Insight Database Testing で Aurora MySQL のバージョンアップ互換性確認テストを行う際にDatabase Activity Streamsの出力を使用する

こんにちは。インサイトテクノロジーの松尾です!

本投稿では、Insight Database Testing で Aurora MySQL のバージョンアップ互換性確認テストを行う際にDatabase Activity Streams(DAS, データベースアクティビティストリーム)へ出力された情報を使用する方法を紹介します!
本投稿自体はノウハウ的なものの紹介になりますので、Insight Database Testing を使った Aurora MySQL のバージョンアップ互換性確認テストの全般的な話題については以下の投稿を参照いただければと思います。

https://qiita.com/takumats/items/980948d6d4d9cf3bec43

また、Database Activity Streamsではなく通常の監査ログを用いたい場合は、以下を参照ください。

https://qiita.com/takumats/items/54fa15e94e943216c87e

## はじめに

Insight Database Testing で Aurora My

元記事を表示

氷河(Glacier)に眠っている写真たちをサルベージする 〜 その2 ボールド一覧の登録

# 目的
AWS S3 Glacier内のボールド一覧をMongoDBに登録する。

# やり方
ListVaultsCommandを実行する。引数の指定はない。

https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/glacier/command/ListVaultsCommand/

# ソースコード
## バックエンド
“`react:src/app/api/listVaults/route.ts
import { NextRequest, NextResponse } from “next/server”;
import {
GlacierClient,
ListVaultsCommand,
DescribeVaultOutput,
} from “@aws-sdk/client-glacier”;
import { MongoClient } from “mongodb”;

export const corsHeaders = {
“Access-Control-Allow-Origi

元記事を表示

油断した・・AWS Certified Developer – Associate合格体験記

# 先日、SAA-C03に続いてDVA-C02を取得しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287651/ebfda409-ba4f-fcb7-d9ca-6a60eaa4773f.png)

# ただ、正直一発で合格りたかった・・・
SAAに比べたら問題文は短いし、範囲も狭い。下馬評からも楽勝ムードが漂い1ヶ月でいけるだろうと思っていたが、まさかの不合格。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287651/5e99f032-54a8-74a1-e747-10a3d24f06a9.png)

# 敗因
:::note warn
①スピード重視で答え暗記に終始してしまった。
⇒模試でほぼ満点取れていたのに・・。(選んだ教材が簡単すぎたのもある)
:::

:::note warn
②わからない単元を超絶なんとなくで理解していた。
⇒特にLSI・GSIの違いやCogn

元記事を表示

scpコマンドでAWSのEC2とローカル間でファイル・ディレクトリを転送する

## scpコマンド

“`cmd:ローカル→EC2
scp -i <秘密鍵のパス> <転送元のパス> <ユーザー名>@<パブリックIPアドレス]>:<転送先のパス>
“`
“`cmd:EC2→ローカル
scp -i <秘密鍵のパス> <ユーザー名>@<パブリックIPアドレス]>:<転送元のパス> <転送先のパス>
“`

## ローカル→EC2の例

ユーザー名がec2-userで、EC2の/home/ec2-userディレクトリに転送する場合

“`cmd:ファイルを転送する
scp -i <秘密鍵のパス> -i <転送するファイルのパス> ec2-user@<パブリックIPアドレス>:/home/ec2-user/
“`
“`cmd:フォルダを転送する
scp -i <秘密鍵のパス> -r <転送するフォルダのパス> ec2-user@<パブリックIPアドレス>:/home/ec2-user/
“`

秘密鍵はダウンロードされた.pemファイルのこと。
ファイルの時は-i、フォルダ(ディレクトリ)の時は-rを前につける

## EC2→ローカルの例

ユーザー名が

元記事を表示

AWS Network Firewallの非対称ルーティング回避事例のご紹介

## 1.概要
みなさんこんにちは。オンプレからAWSへ移行しAWSを活用されていますか?
ところでオンプレミスでは一般的なサーバの可用性向上の方式として、クラスタリングソフトを使って2台のサーバをアクティブ・スタンバイによる冗長構成にする方式があります。

AWSのEC2でも同様の方式で構成が可能ですが、オンプレミスとAWSとではいくつか違う部分があります。例えば、AWSではAvailability Zone(以下AZ)をまたがって共通ディスクを利用することが出来ません。そのため、オンプレからAWSへ移行する場合には、同一方式を採用する場合に実現方式の再検討と再設計が必要です。

この記事では、AWS上でクラスタリングソフトを使ってEC2の冗長構成を組み、さらにDirect Connect(以下DX)、Network Firewall(以下NWFW)と組み合わせた場合に、非対称ルーティング(後述)が発生し通信出来ない構成例と、それの回避例を解説します。

## 2.まとめ
はじめに結論を書きます。
この不良(通信が出来ないケース)は、次の条件を全て満たした場合に発生する可能性があり

元記事を表示

Route53のパブリックホストゾーンを別アカウントに移管してみた

# 1.はじめに
以前業務でRoute53にて作成したパブリックホストゾーンを別アカウントに移管しました。
方法や注意点を備忘として記事に残します。

# 2.実際にやってみた
今回の作業は[「Route53で購入したドメインを別AWSアカウントに移管する手順」](https://qiita.com/roxas886/items/bb841764f2f48d2f4d39)の続きとなります。
以下①-③の手順を実施後に移管先AWSアカウントのパブリックホストゾーンへ名前解決を行うようになります。実際にやってみます。

![構成図-ページ2.drawio (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3683522/818b81fd-63ff-a00b-fb2c-1db2f7c0089e.png)

### ①移管先アカウントで移管するパブリックホストゾーンと同一ドメイン,レコードのパブリックホストゾーンを作成する

移管先アカウントで移管するホストゾーンと同一ドメイン、レコードのパブリックホス

元記事を表示

CDNって何??

## 初めに
皆さん「CDN」をお聞きした事はありますか?

現在AWSの学習をしています。
その際にCDNが出てきたので、自分なりにまとめてみました。

## CDNとは?
CDN=(Contents Dellivery Network)の略称です。

システムのサーバー負荷を下げつつ、コンテンツ配信を高速化する仕組みです

## 仕組みは?
![スクリーンショット 2024-03-25 15.36.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3744656/a04d22fd-0003-bfc8-37ef-0eeb3a85568c.png)

##### ①サーバーの負荷軽減
CDNでは、「エッジサーバー」と呼ばれる代理サーバーが、「オリジンサーバー」
 (大元サーバー)に代わりコンテンツ配信を行います。

エッジサーバーには、オリジンサーバーからキャッシュしたコンテンツが保存されており、ユーザーからリクエストがあると、オリジンサーバーに代わりレスポンスします。
(※エッジサーバーにキャッシュ

元記事を表示

Databricks にて Amazon が開発している大規模なデータ品質をテスト可能な PyDeequ を動かしてみた

## 概要

Databricks にて Amazon が開発している PyDeequ の動作確認を実施しましたので共有します。PyDeequ (python-deequ)の README に記載されているクイックスタートを Databricks の仕様に修正したコードで実行しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/62c4164f-ec2e-3f10-9623-4742f2d7717b.png)

引用元:[awslabs/python-deequ: Python API for Deequ (github.com)](https://github.com/awslabs/python-deequ)

## クイックスタート on Databricks

### PyDeequ に対応した Spark バージョンのクラスター(`12.2 LTS (includes Apache Spark 3.3.2, Scala 2.12)`)にて deequ (`co

元記事を表示

Lightsailを作ってみる④~【備忘録】SSH接続用アクセスキーの作成

# はじめに
以前からLightsailで諸々構築したりしてたのですが、今回どうしてもSSH接続がしたいということと、Lightsail構築時からあるデフォルトのアクセスキーは使用させたくないという思いがあり、デフォルトのアクセスキーのほかに接続用のアクセスキーを作成・接続してみたという備忘録になります。

**【以前Lightsailで色々やってた記事】**

https://qiita.com/Shun_konno/items/cc274c02ccb6931cb070

https://qiita.com/Shun_konno/items/f51ae599b68e0d2d36ea

https://qiita.com/Shun_konno/items/b6461594de1cdd7caa87

# 参考
https://docs.aws.amazon.com/ja_jp/lightsail/latest/userguide/amazon-lightsail-remove-ssh-key-on-instance.html

基本的に上記URL内記載の通りとなりますが、自分なりの注意事

元記事を表示

Savings Plansの共有先アカウントと使用量の確認アプリケーションを作ってみた

## 概要
https://qiita.com/hiroaki_i/items/2ac81024ec3f923ed771

の続きになります。
前回はその方法の共有でしたが、
今回はSAMテンプレートの共有です。

## テンプレート
https://github.com/hiroaki-ito-hulft/monthly-sp-cost-aggregator?tab=readme-ov-file

## 解説
### 出来ること
このSAMでデプロイされるスクリプトでは、
特定の1つのAWS Account IDで購入したSPを追跡できます。
アカウント指定は1つですが、複数SP IDがあっても問題なく、
複数のSPで合計何$そのアカウントに共有されたかが記載されます。

具体的には、以下のようなcsvが得られます。
| Account Id | Account Name | Legal Entity | Amount (USD) |
|:———–:|:————:|:————:|:————:|
| 11111111

元記事を表示

AWS認定 AWS Certified Solutions Architect – Professional 試験 (SAP-C02) に合格した話

## はじめに
最近、暑かったり、寒かったり、風が強かったり、雪が降ったりと、なかなか天気は安定せず、穏やかな春の訪れが待ち遠しいですね。

どーも、のぶこふです。

さて今回は、タイトルの通り、私(のぶこふ)が、SAP-C02に合格しましたよ。という内容です。

元記事を表示

OTHERカテゴリの最新記事