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

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

DynamoDBのセカンダリインデックス活用法!

# はじめに
DynamoDBはAWSのNoSQLデータベースとして非常に人気があるサービスですが、特にセカンダリインデックスを使いこなすことで、その威力を最大限に引き出すことができます。
本記事では、DynamoDBのセカンダリインデックスについて学びを共有します!

# 対象読者
– DynamoDBを使ったアプリケーション開発をしている方
– セカンダリインデックスについて深く知りたい方
– NoSQLデータベースのパフォーマンスを向上させたい方

# 目次
1. セカンダリインデックスとは?
2. 利用シナリオとそのメリット
3. グローバルセカンダリインデックス(GSI)のベストプラクティス
4. ローカルセカンダリインデックス(LSI)のベストプラクティス
5. セカンダリインデックスのスパースインデックスについて
6. よくある課題とその解決策
7. まとめ

# 1. セカンダリインデックスとは?

セカンダリインデックス(Secondary Index)とは、DynamoDBのテーブル内のデータを別の方法でアクセスするためのインデックスを指します。これにより、プライマ

元記事を表示

Guardrails for Amazon Bedrockのハルシネーション検知をKnowledge bases for Amazon Bedrock(Claude 3)とともに使う方法

Amazon Bedrockの機能である「Guardrails for Amazon Bedrock」にハルシネーションを検知する機能が追加されました。AWS Summit New York 2024で発表されました。

AWS Summit New York 2024で発表された他の機能はこちらが詳しいです。

https://qiita.com/hayao_k/items/6f8c23f62f16e17f45bc

ハルシネーション検知機能をKnowledge bases for Amazon Bedrockといっしょに使ってみたところ、エラーになりました。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/b0bb65db-8131-8a5a-c5db-bc13c69b87e5.png)

理由がわからなかったのですが、ドキュメントで以下の記述を確認!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

【AWS】CodeDeployを使ったデプロイが何をしてもうまく行かなった件

# 初めに
現在以下のハンズオンの「AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!」でCICD構築を行っている。
https://aws.amazon.com/jp/events/aws-event-resource/hands-on/

途中苦戦しながらも何とかCodeDeployでデプロイするところまで来たのだが、以下のように失敗をした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2521217/b4363597-c36d-5cbd-5e25-c1b01b9b844f.png)

ちなみに今回の(私の場合の)前提条件は以下である。
・EC2インスタンスやCodeBuildなどの設定はハンズオン参照
・EC2インスタンスにはSSH接続している

# 原因を探る
まずエラーの原因を探ろうとしたのだが、コンソール上だと詳細が見つけられなかったため、黒画面で確認してみることにした。以下のコマンドでログを確認する。もちろんSSH接続した状態で。

“`

元記事を表示

S3 Selectをaws-sdk-rustで行う

## S3を準備
### S3 Bucketを作成

CloudFormationを用いて以下を作成します。

– S3 Bucket
– 作成したS3からデータを取得するためのIAMユーザー

“`yaml
AWSTemplateFormatVersion: “2010-09-09”
Resources:
S3Bucket:
Type: “AWS::S3::Bucket”
Properties:
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
OwnershipControls:
Rules:
– ObjectOwnership: BucketOwnerEnforced
VersioningConfiguration:

元記事を表示

GitHub Actions – セルフホステッド ランナー(AWS CodeBuild)

# 内容

GitHub Actions WorkflowのJob実行に使われる環境にセルフホステッド ランナー(AWS CodeBuild)を使用する
今回は、セルフホステッド ランナーを使ったJobでRDSクラスターの操作を行う
また、CodeBuildのデプロイにはCFNを使用する

# セルフホステッド ランナー

ランナーはJob実行に使用する環境で、
GitHub ホステッド ランナーとして、Linux、Windows、macOSが用意されており、
以下のように `runs-on` で指定する

“`yaml
jobs:
check-bats-version:
runs-on: ubuntu-latest
“`

セルフホステッド ランナーも使用することができ、一つの方法としてAWS CodeBuildでランナーを作成することができる
以下のように各種カスタマイズが可能
※VPC等EC2でのみ設定可能な項目あり

![2024-07-14-12-41-56.png](https://qiita-image-store.s3.a

元記事を表示

AWS Certified DevOps Engineer Professional 受験記録

# まず初めに
最初の投稿デビュー
月1回程度記事を投稿できるよう心がけていければと思います。

# 自己紹介
– エンジニア歴は26年目
– 20年はJavaを中心とした業務アプリケーション開発に従事
– 約6年前にAWSに関わるPJに参画したことがきっかけで、それ以降はクラウド基盤開発にシフト
– 現在は、Terraform で ネットワーク関連のリソースを構築している

# 保持しているAWS認定資格
– AI, ML関連資格以外は既に保持している
– 直近(2024年5月)に取得したのは、AWS Certified Advanced Networking Speciality

# 対象者
– これから、AWS Certified DevOps Engineer Professional を受験することを考えている方

# 本題
## 学習に利用したサイト
– Udemy
– [AWS Certified DevOps Engineer Professional 2024 – DOP-C02](https://www.udemy.com/course/aws-certifi

元記事を表示

ソリューションアーキテクトに求められる視点(12/13) Lambda SnapStart による起動パフォーマンスの向上

## はじめに
ソリューションアーキテクトに求められる視点を整理してみました。

アプリケーション開発に注力するために、ユーザーインタラクションが重要なウェブアプリケーションで、マネージドサービスを効果的に活用することで、ユーザーエクスペリエンスを向上させる方法について、考えました。

今回は、**Lambda SnapStart による起動パフォーマンスの向上**です。実務や試験で、ご参考にして頂けましたら、幸いです。

## **アーキテクトに求められる視点**
レイテンシの影響を受けやすいアプリケーションです。
Lambda 関数は、ライブラリのロード、クラスの初期化、一意の ID の生成を行うための初期化コードがハンドラーの外部に含まれています。
起動時のパフォーマンスを改善したいと考えています。

## **ソリューション**
Lambda 関数を更新して、スナップショット前のフックを追加します。一意の ID を生成するコードをハンドラーに移動します。各 Lambda 関数のバージョンを公開します。公開された Lambda 関数のバージョンに対して Lambda SnapS

元記事を表示

【AWS×Webアプリ】CloudFront+Cognito認証(Terraform)

## 目的
・AWS上の静的Webサイトホスティングを有効にしたS3をCloudFrontで公開。
・Cognito認証を実装。

## 前提条件
・Terraformを使用してAWS上にリソースを作成する。
・Lambda@Edgeを使用して実装する。
・作成する内容は以下と同様

https://qiita.com/Haruki-N/items/0905f7851a32e2dc0379

## TFファイル
“`terraform:aws_cloudfront.tf(前回からの追加箇所のみ抜粋)
resource “aws_cloudfront_distribution” “WebBucketDistribution” {
enabled = true
default_root_object = “index.html”
price_class = “PriceClass_200”

origin {
origin_id = “WebBucketOrigin”
domain_name = aw

元記事を表示

AWSの主要なサービスと機能を簡潔に理解

# AWSの主要なサービスと機能の詳細解説

## リージョンとアベイラビリティゾーン(AZ)
リージョン: AWSがサービスを提供している地理的な拠点。各リージョンは複数のAZで構成されています。
アベイラビリティゾーン(AZ): 物理的に離れたデータセンター。高可用性と耐障害性を確保するために利用されます。
## VPC(Virtual Private Cloud)
VPC: AWS上で仮想的なプライベートネットワーク環境を提供。セキュリティと管理性を向上させることができます。
サブネット、ルートテーブル、インターネットゲートウェイなどを利用して構成します。
# ネットワーキングと接続
## Direct Connect(DX)
Direct Connect: オンプレミス環境とAWSを専用線で接続するサービス。安定したネットワーク接続と低遅延を実現します。
高帯域幅のデータ転送やセキュリティ向上のために利用されます。
## Route 53
Route 53: AWSのドメインネームシステム(DNS)ウェブサービス。高可用性とスケーラビリティを提供します。
ドメイン名をIPアドレ

元記事を表示

「AWS Hands-on for Beginners Serverless #1 サーバーレスアーキテクチャで翻訳 Web API を構築する」をAWS CLIでやってみる

https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Serverless-1-2022-reg-event.html?trk=aws_introduction_page

上記、「AWS Hands-on for Beginners Amazon EC2 Auto Scaling スケーリング基礎編」 をAWS CLIでやってみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3297641/13e42ce8-b21f-5b8b-a1e4-d69b56228dd3.png)
ハンズオンから引用

:::note warn
ハンズオンではPython3.7を使用していたが、サポート修了のためPython3.8を使用
:::
# 1. AWS Lambda ハンズオン① Lambda を単体で使ってみる
## 関数設定
“`bash:コマンド
FUNCTION_NAME=”translate-function”

元記事を表示

【AWS】ECS on EC2とFarget構築時を比較して感じた注意点4つ

# 概要
今までAWS ECS on EC2を使っており、Fargateを使ったことがありませんでした。そこで、EC2で構築した際とFargateを利用した際を比較すると、Fargate構築時のみの注意点があると感じたので紹介します(特にCloudformationを利用して作成すると感じた点になります)。

## 注意点1:ネットワークモードは`awsvpc`

そもそもFargetはサーバーレスモデルなので、EC2ではなく、タスクにプライベートIPアドレス(正確にはENI)が割り当てられる形です。そのため、ネットワークモードは`awsvpc`のみをサポートする形になっています。

公式ドキュメントにも以下のように記載されています。

> Fargate 起動タイプを使用している場合、awsvpc ネットワークモードが必要です。
引用元:https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/task_definition_parameters.html

ネットワークモードには他にも`bridge`や`h

元記事を表示

Knowledge bases for Amazon Bedrockのナレッジベースを複数構築する効率的な2つの方法

Amazon Bedrockで簡単にRAGを構築する仕組みとして、 **「Knowledge bases for Amazon Bedrock」** という機能が提供されています。

https://aws.amazon.com/jp/bedrock/knowledge-bases/

マネジメントコンソールのウィザードに従って簡単に構築でき、ベクトルデータベースとしてOpenSearch Serverlessのコレクションを自動で作成する **「クイック作成」** が選択できます。

とてもお手軽なのですが、複数のナレッジベースを構築すると、毎回OpenSearch Serverlessのコレクションが作成されます。

図:ナレッジベースごとにコレクションが作成されるイメージ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/00dddb1c-f336-c7f1-99ab-806386d63d6f.png)

OpenSearch Serverlessの料金は、OCUという単

元記事を表示

EC2でユーザーデータとCodeDeployの実行順序を制御する

# 概要
EC2起動時にユーザデータを使用して処理を実行させることができます。
また、オートスケーリンググループを使用してEC2を起動した場合は、ライフサイクルフックを利用してCodeDeployにデプロイを実行する事が可能です。

ユーザデータ実行中にCodeDeployを起動するのではなく、ユーザデータが終了した後にCodeDeployを起動したい時の設定方法を説明します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/408925/426cc052-94f4-3842-5b65-bc80792fcdc8.png)

# 環境
以下の環境を想定します
– AWS
– EC2(Linux)
– オートスケーリンググループによりEC2を起動
– CodeDeployでデプロイを実行

# 設定方法
CodeDeployを実行する場合は、対象となるEC2にCodeDeploy Agentのインストールを行います。
CodeDeploy Agentをユーザデータ終了後に起動す

元記事を表示

ゼロから始める!サーバーレスアーキテクチャの世界

# はじめに
サーバーレスアーキテクチャは、近年非常に注目を集めている技術の一つです。クラウドサービスの進化に伴い、サーバーレスは開発者にとって避けて通れないテーマとなっています。このブログでは、サーバーレスアーキテクチャの基本からその利点、具体的な活用方法までを詳しく解説します。
初心者から中級者まで幅広い読者に向けてわかりやすく説明しているので、ぜひ最後までお読みください!

# 対象読者
– サーバーレスについて知りたい方
– クラウドサービスを活用している方
– システムアーキテクトやエンジニア

# 目次
1. サーバーレスアーキテクチャとは
2. サーバーレスの利点と課題
3. サーバーレスを始めるためのステップ
4. よくあるサーバーレスのユースケース
5. 実際のサーバーレスプロジェクトの例
6. サーバーレスアーキテクチャのベストプラクティス

# 1. サーバーレスアーキテクチャとは
サーバーレスアーキテクチャは、インフラの管理をクラウドプロバイダーに任せることで、アプリケーション開発に専念できるアーキテクチャの概念です。

### サーバーレスの基本について
サー

元記事を表示

EC2 Auto Scaling 起動設定(Launch Configuration)の廃止 → 起動テンプレート(LaunchTemplate)への移行|Beanstalk EB CLI環境

# 起動設定(Launch Configuration)の廃止とは
EC2 Auto Scaling の旧設定方法が廃止され変わるというものです。具体的にはLaunch Configurationという設定ファイルからLaunch Templateという設定ファイルに変わります。

自分のところへは以下のようなタイトルでメールが届きました。
「[お知らせ] EC2 Auto Scaling 起動設定の廃止のお知らせ | [Notification] EC2 Auto Scaling Launch Configuration Deprecation Notification」

# 環境
取り急ぎテスト環境で以下のものを立ち上げました。

Route53

Cloud Front

Beanstalk
 ALB+Auto scaling
 ↓
 EC2

RDS

デプロイ方法はeb cliで直デプロイです。

# 試してみた事
まずBeanstalkがどんな動作をしているのかを確認するためにeb createで新規にアプリを作成してみました。
その後以下実施しています。

##

元記事を表示

Laravelでのファイル操作:基本から応用まで

# はじめに
こんにちは、Webエンジニアの岩田史門([@SI_Monxy](https://x.com/SI_Monxy))です!
今回はLaravelでのファイル操作について記事を書いてみました!
改善点や修正点があれば、コメントにて優しくご指導いただけると嬉しいです!

# 概要
ファイル操作はWebアプリケーションにおいて非常に重要な役割を果たします。Laravelは、ファイル操作を簡単かつ効率的に行うための豊富な機能を提供しています。本記事では、Laravelを使用してファイル操作を行うための基本から応用までを解説します。

# ファイル操作の基本
Laravelでは、Storageファサードを使用してファイル操作を簡単に行うことができます。基本的なファイル操作を見ていきましょう。

“` php
use Illuminate\Support\Facades\Storage;

// ファイルの存在チェック
if (Storage::exists(‘file.txt’)) {
echo ‘File exists.’;
}

// ファイルの取得
$contents

元記事を表示

amazon linux2023 でhomeディレクトリ配下をユーザーディレクトリ毎に容量制限をかける方法

# 概要

amazon linux2023上に作成されたユーザー毎の利用できる容量に制限を設けたい
そこで、今後迷わないよう手順を整理して記事にまとめます

# 環境

– AWS
– EC2インスタンス
– AmazonLinux2023
– ストレージ
– EBS(1台): gp3

# 方針

1. homeディレクトリ用のEBSを追加する
1. homeディレクトリ用のパーティションを切る
1. homeディレクトリを利用するユーザーに対して quotaをかける

# 手順

## homeディレクトリ用のEBSを追加する

### EBSを作成

– EBSボリュームをAWSコンソール上から作成
– 作成が完了したEBSを選択し、アクション -> ボリュームのアタッチを選択
– デバイス名の選択
– データボリュームとして利用するため、推奨とされるデバイス名 /dev/sdf ~ /dev/sdp の間で選択する
– ここでのデバイス名とlinux上で認識されるデバイス名は異なる可能性があります
– 参考

元記事を表示

AWS、Terraform、Gitops関連用語の整理

# AWS
– **アベイラビリティゾーン (AZ)**
– リージョン内で物理的に分離された1つ以上のデータセンターです。

## VPC
CIDRを指定して作成する隔離された仮想ネットワーク環境です。
– **Public Subnet**
– 外部からアクセス可能で、Internet Gatewayを通じてインターネットにアクセスできます。
– **Private Subnet**
– 外部からアクセス不可能で、NAT Gatewayを経由してインターネットにアクセスします。
– **NAT Gateway**
– Private Subnet内のリソースを外部インターネットと接続するゲートウェイで、逆方向の接続はできません。
– **Public Route Table**
– Public Subnetから来るトラフィックの経路を設定し、Internet Gatewayを通じて外部に出るように経路を設定します。
– **Subnet Association**: サブネットとRoute Tableを接続します。
– **Secu

元記事を表示

実は多かった!AWSで利用できるローコード・ノーコードサービス

# はじめに
AWSを利用したアプリケーションを開発するにあたり、専門的なプログラミングスキルが求められます。これは、多くの非エンジニアにとって(私もそうですが)障壁となっているのではないでしょうか。

基本的なAWSサービスの知識はあっても、実際の開発経験が乏しいというケースも少なくはないと考えます。こうした状況を踏まえ、AWSは開発プロセスを簡略化し、より多くの人々がアプリケーション作成に携われるよう、ノーコードおよびローコードのマネージドサービスを提供しています。

こうしたツールは、コーディングを最小限に抑えつつ、効率的な開発を可能にします。さらに、最近では生成AI技術を活用したサービスも登場し、開発の可能性をさらに広げています。本記事では、AWSが提供するマネージドなノーコード・ローコードツールを整理します。

# ノーコード・ローコードとは
まず言葉の定義を確認しておきます。

**ノーコード(No-Code)** とは、プログラミング言語を使用せずに、視覚的なインターフェースやドラッグ&ドロップなどの直感的な操作でアプリケーションを開発するアプローチです。ユーザーは、事前

元記事を表示

AWS ConfigによるS3バケットのタグ監視 – EventBridgeとSNSで通知

# はじめに

AWSにおけるリソース管理の一環として、S3バケットに「Name」タグが適切に設定されていることを確認することは、リソースの整理や識別を容易にするために重要です。本記事では、AWS Configを用いてS3バケットのタグ付けを監視し、タグが欠如している場合にAmazon EventBridgeとAmazon SNSを利用して通知を行うインフラ構成を紹介します。これにより、不要なリソースの存在の有無を即座に検知し、迅速な対応が可能になります。

以下が作成したレポジトリーです

https://github.com/sugiyama404/practice_aws_config

参考にした記事です

https://repost.aws/ja/knowledge-center/config-resource-non-compliant

https://iret.media/96893

# 目的

本記事の目的は、AWS Configルールを新規作成

元記事を表示

OTHERカテゴリの最新記事