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

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

【Error】AWS画像関係~原因が全く違った?件

# はじめに
ボタンを押した後に表示された画面。エラーが起こっていたのでエラーの発見から解決までの流れをまとめてみたいと思います

## どういうエラーか?
[![Image from Gyazo](https://i.gyazo.com/64af5f62351baa506441abfde57ce7fa.png)](https://gyazo.com/64af5f62351baa506441abfde57ce7fa)

– 何かしらのエラーが起こっていて、「所有者の場合はログを確認してください。」とのことなのでログを確認。

– 開発者ツールやターミナルの「docker compose up」のログにはエラー特に見当たらず。
– Renderのダッシュボードから、該当プロジェクトの「Logs」を見ると`Error`の文字を発見!
[![Image from Gyazo](https://i.gyazo.com/c1721c1cb281f131059e896ef3c7cbce.png)](https://gyazo.com/c1721c1cb281f131059e896ef3c7cbce

元記事を表示

AWSコンソールを使用した構築手順1-1

## 全体像
![AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/ea559194-0fa4-49cf-5d42-b25acbd7c113.png)

## 必要なAWSリソース
・VPC × 1 ( ap-northeast-1:東京リージョン)
・パブリックサブネット × 1
・プライベートサブネット × 1
・EC2インスタンス × 1
・NATゲートウェイ × 1
・インターネットゲートウェイ × 1

## 出来るようになること
・上記のAWSリソースの作成ができる。
・プライベートサブネット内のEC2インスタンスからインターネットへ疎通確認ができる。
 (qiita.comへpingを打つ。)

## 構築手順
### 1.AWSコンソールにIAMユーザとしてログインする。

### 2.ap-northeast-1:東京リージョンを選択

### 3.VPCの作成
#### 3-1.上記バーの検索に「vpc」と入力し、Enter押下
#### 3-2.画面左の「お使い

元記事を表示

DifyをAWSでガチ目に動かすには?〜理論編

:::note info
弊社メディア [DifyをAWSでガチ目に動かすには?〜理論編 \| ideaman’s Notes](https://notes.ideamans.com/posts/2024/my-aws-dify-stack.html) からの転載です。
:::

DifyのソースコードにはDocker Composeプロジェクトが同梱されている。

それを利用すると[自分専用のDify環境をサクッとセルフホストできる](https://notes.ideamans.com/posts/2024/my-own-dify.html)のだが、それを本番運用に利用するのは心許ない。

ではAWS上で、ガチ目のDifyスタックを展開するとしたらどうするか考えてみた。

## 全体像

Difyのソースコードは本当にセルフホストに親切で、[Docker Composeプロジェクトのコンポーネント図](https://github.com/langgenius/dify/blob/main/docker/docker-compose.png)もある。

![Difyの全体

元記事を表示

AWS CLIでCloudFrontの設定を変更するスクリプト

## CloudFrontの設定は、ちょっぴり面倒くさい

CloudFrontの設定をする場合、特定の項目のみを設定するのではなく、設定用のjsonを丸ごと流し込む方式を取ります。

“`bash:更新コマンド。オプションでjsonを読み込んでいる
aws cloudfront update-distribution \
–id $DISTRIBUTION_ID \
–distribution-config file://updated-config.json \
–if-match $ETAG
“`

jsonを作り込むのが面倒くさいので、スクリプトにして実行する方法を紹介します。

## 前提

AWS CLIコマンド、jqコマンドが使える環境であることを前提とします。

## 設定スクリプト

以下のように実行します。jqコマンドは抽出の他、フィールド編集も簡単にできるので良いですね。

“`bash
# 設定対象の指定
DISTRIBUTION_ID=

# 設定取得
aws cloudfront ge

元記事を表示

S3にファイルが置かれたらStep Functions+Glueで処理したい(リソースは1つ)

# はじめに
皆さん、イベント駆動処理していますか?
スケジュールを前もって決められない場合などに便利ですよね。
ただ、イベントが増えすぎると、それに伴い処理するリソースが増えていってしまいます。

例えば、S3にファイルが置かれたら、EventBridgeで発火、Step Functionsを起動してそのステートマシンでGlueを実行する処理を考えます。
以下は、ファイル数が3つの場合です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2949357/e16ab50a-e66e-8316-b248-f0b491449a57.png)

このように、ファイルに応じてリソースを増やしていくと、管理が大変になります。

一方で、このように一本化できると、リソース管理が楽になりますね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2949357/94627eb6-dea3-fbfb-87

元記事を表示

キューってなんやねん!!!

## 題名の通り
AWSで「サーバレス」だとか「非同期」だとかよく言われる単語で毎度おなじみのSQS。
実際に触ったことがないので、実際にやり取りされる「キュー」ってのが実際にどんな奴なのか全然イメージつかなくて困った。のでまずはChatGPT君に聞いてみた。

## ChatGPT君の答え
わし「メッセージキューって何ですか?データレコードみたいなものですか?」
ChatGPT君「メッセージキューの実態は、データレコードそのものではなく、メッセージの一時的な保存・管理を行うための仕組みや構造を指します。メッセージキューは、プロセス間通信や異なるシステム間での非同期通信に利用され、メッセージ(データのパケット)が送信者(プロデューサー)から受信者(コンシューマー)に渡されるまで、キュー内に一時的に蓄積されます。」

聞き方悪かったけど、とりあえずメッセージをキューイングするってのは、上記の通りで、メッセージなるものが送信者から受信者に渡されるまで、キュー内に一時的に蓄積しておくもののことを指す。

じゃあそのメッセージってなんやねん!ってことで聞いてみると、
「Amazon SQS(S

元記事を表示

AWS WAFを使って特定のIPのみアクセス可能な環境を作る

# 初めに
生後5ヶ月の娘に重くなったね〜と言ったら笑いながら胸ぐらを掴まれ恐怖を感じた27歳です。
今回は全三部構成(多分)の第三部となっております。(前回までの内容は下記にリンクを貼っておくので興味があれば!)

# 前回のあらすじ

CloudFront + S3で作った環境に関しては下記2つのQiitaを見たら誰でもできます!

https://qiita.com/rakkun/private/cbfa52a7fee3f7c0ea39

https://qiita.com/rakkun/private/dc98801524eb2abc6703

# 今回やったこと
AWS WAFを使ってCloudFrontにアクセスできるIPを制限してみた

## WAFとは?
– ウェブアプリケーションファイアウォール
– いろんな通信(SQLインジェクション、IPアドレス)を検知し遮断できる
– 今回は特定のIPだけアクセスさせる目的で使用
– (ちょっとお金かかるよ)

## イメージ
![スクリーンショット 2024-02-14 22.24.02.png](

元記事を表示

S3とCloudFrontを使って静的サイトを作成してみる

# これは何?
AWSの[S3](https://aws.amazon.com/jp/s3/)と[CloudFront](https://aws.amazon.com/jp/cloudfront/)を使って静的サイトの環境を作ったので備忘録

# メリット
– コストが安い(EC2などと違いアクセス分しかコストかからない)
– サーバーレスでメンテナスが不要
– S3だけで作るよりセキュリティー面good(https通信ができる)

# デメリット
– ある程度AWSの知識必要(そこまでは学習コストはかからない認識だが)
– PHPなどのサーバーサイドの言語は動かせない
– CloudFrontの設定でWAFを利用するとお金がかかる

# 環境作成

## S3の準備
バケットの作成は下の記事とほぼ同じ
https://qiita.com/rakkun/private/cbfa52a7fee3f7c0ea39

ブロックパブリックアクセス設定だけ違う(今回はチェックを外さない)
![スクリーンショット 2023-12-25 22.15.13.png](https://qiita-ima

元記事を表示

脳死でできるS3を使った静的ウェブサイトホスティング設定

# これは何?
AWSのS3を使って静的ウェブサイトホスティングの設定をしていく記事
脳死で書いているので脳死で試すこともできるはず。。。!

# 注意点
– この記事のメインはホスティングの設定なので、ウェブサイトの方は本当に雑な作り
– AWSのコンソールはUIがよく変わるので、そのうち方法変わっているかも
– 今回のやり方は推奨されていない
– S3だけだとHTTP通信しかできないので、ちゃんと運用する場合CloudFrontと組み合わせる必要がある(ここは今度書く)
# 実際にやっていく

## バケットの作成

ここからバケットを作成する
![スクリーンショット 2023-12-18 22.05.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685033/a1abb806-72ce-3812-75a3-0241be287529.png)

#### バケットの名前
全世界で一意である必要があるため、被らない名前にする必要がある
![スクリーンショット 2023-12-18 22.

元記事を表示

AWS DynamoDBを使ってNoSQLの基礎から実践へ:データベース構築・操作ガイド

## はじめに
AWS DynamoDBは、スケーラブルでフルマネージドなNoSQLデータベースサービスです。この記事では、DynamoDBの基本的な使い方について学び、実際にデータベースを構築・操作する手順を解説します。

これからDynamoDBを利用したアプリケーション開発を始める方に向けて、わかりやすく説明していきます。

## DynamoDBについて
DynamoDBの主な特徴を整理します。まず、DynamoDBはフルマネージドであり、サーバーの管理が不要で、スケーリングやバックアップも自動で行われます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/0a285c6c-b8ef-f419-a79a-658e6d247ae9.png)

また、DynamoDBは高いパフォーマンスを発揮し、固定のスループットを維持しながら必要に応じて柔軟にスケールします。

さらに、JSON形式でデータを保存でき、属性(カラム)を自由に追加できる柔軟なデータモデルが特徴です。

元記事を表示

SAA試験対策【ストレージ編】

# 始めに
実務でminioを用いて自社規定のファイルサーバーを構築する案件に入った。minioはawsのs3に互換性があり、性能も今のところ気にしないレベルで高いので個人開発でも取り入れていきたいと思ってる。
そんな折、minioでawsの仕組みやコマンドを調べる機会が多くなってきたのでどうせならSAA取得に向けて勉強をしてみようと思った次第である。完全に個人のアウトプットです。

# 前提
– アプリ側実装(Rubyとか、react)1年ちょい
– Azure案件に半年関わってた
– 現在minioを用いてファイルサーバ構築中

## ストレージ周りの用語集
– AMI
ソフトウェア構成を記録したテンプレのこと。AmazonMachineImage。EC2インスタンスを作成するためのテンプレート(OS、メモリ、CPU)バックアップに使える。別リージョンにコピー可能。
– IAM
AWSリソースへのアクセスを安全に管理するためのサービス。Identity and Access Management。
– EC2
サーバー構築サービス。OSを乗せた仮想環境をクラウド上に作ることができる

元記事を表示

オリジナルプロダクト「わんダムウォーク」の開発

# はじめに
 この度、内定直結型エンジニア実習[アプレンティス](https://apprentice.jp/lp)の課題として、オリジナルプロダクトの開発を行いました。その説明・雑感などをまとめます。
# 自己紹介
 弁護士を目指して法学部に進学、大学を休学して独学で司法試験の合格を目指すも挫折。人生に悩んでいたところ、以前からプログラミングに興味があったことを思い出し、2024年1月29日から学習開始。4月からアプレンティス5期生。出身は北海道。
# 仕様技術
– JavaScript
– PHP(8.1.29)/Laravel(10.48.15)
– MySQL(8.0.37)
– AWS(VPC/EC2/RDS/Route53/ACM/ELB)
– Google Maps API(Maps JavaScript API/Directions API)
– その他:AOS.js/Prettier/ESLint/Larastan
# わんダムウォーク
### キャッチコピー
「老犬と最期まで健康的に。」
### URL
https://wandom-walk.com
### わん

元記事を表示

AWSスイッチロールを使ってアカウント切替

### 目的
IAMロールでAWSアカウントを跨いだスイッチロールを行いたいと思い、
今回実際にAWSアカウントを跨いだスイッチロール設定そしてIAMロールのセキュリティ担保のためにいくつか設定を行いましたので記載します。

#### 設定手順
AWSコンソール>IAM>ロール>ロールを作成まで進みます。
「AWSアカウント」を選択すると下記画像のようになるため「別のAWSアカウント」を選択しIAMロールの使用を許可したいAWSアカウントを記載し「次へ」をクリックしてください。
(ちなみに複数のAWSアカウント設定・MFA設定を行うことも可能です)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146106/a45d6a59-0030-a6c7-152c-08753774261d.png)

「許可を追加」画面にて許可ポリシー選択画面に変わりますので、任意のポリシーを選択し「次へ」を選択してください。

「名前、確認、および作成」の画面に変わりますので、任意のIAMロール名・説明やタ

元記事を表示

Lambda(python)でS3からファイルを取得し、ファイルのマジックナンバーとMIMEを判定する

# やりたいこと
Lambda(python)で事前にS3バケットへアップロードしたファイルを取得し、ファイルの各メタデータであるマジックナンバーとMIMEを取り、ファイル形式を判定したい

# 構築
・S3バケット
・Lambda
・IAMポリシー
・IAMロール

# やり方
Lambda→S3のポリシー
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allow”,
“Action”: [
“s3:*”
],
“Resource”: “arn:aws:s3:::*”
}
]
}
“`

Lambdaソース
“`
import boto3

def lambda_handler(event, context):
# S3バケットとファイルキーを指定

元記事を表示

AWS CloudFormation StackSetsと組織

# 内容
AWS OrganizationsとAWS CloudFormation StackSetsを活用することで、OU内の複数アカウントに一貫したリソースデプロイが可能です。本記事では、アカウントがOUから離脱または参加した際に、デプロイされたリソースの挙動を確認していきます。

## シナリオ
1. SwitchRole用のテンプレートを作成
1. 1.で作成したCloudFormationをOUにStackSetsでデプロイ
1. この状態で、OU内のアカウントをOU外に移動や、再度OU内へ移動したときの様子を確認

## 挙動を確認
### CloudFormationのStackSetsでOUにデプロイ
CloudFormation StackSetsデプロイの様子
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812002/102003fe-d870-f929-1383-1f7b81ba10db.png)

### OU内のアカウントにSwich Role入れるか確認

元記事を表示

DatadogでiPaaS(HULFT Square)の処理ログを可視化したぜ

## はじめに!
本記事では “ゆる~く” ご紹介をします。

今日出てくるサービスについては以下公式HPへ
– [Datadog](https://www.datadoghq.com/ja/)
– [HULFT Square](https://www.hulft.com/service/hulft-square)

そもそもiPaaSってという方いらっしゃるのではないでしょうか??
そんな方は是非[こちら](https://www.hulft.com/column/glossary-05)へ。

**細かい話はいいから、結論どんな感じ?**
**という方はこちらまで[スキップ!!]()**

## さて今日のお題
私自身はDatadog初学者でして、
お客様から「うちはログ監視をDatadogで統一している」という話をお聞きしました。

**「なんかDatadogってどんなログも可視化できそう

Amazon ElastiCacheについて

## はじめに
こんにちは。開発部のMです。
今回は「Amazon ElastiCache」についてご紹介します。

## Amazon ElastiCacheとは
AWSが提供するインメモリ型データベースサービスです。インメモリ型データベースとはデータストレージにメモリを使用するデータベースのことです。SSDのようなディスクストレージよりも高速・安定したアクセスが可能で高頻度で参照するデータや検索に時間がかかるデータセットをメモリ上に保持することでシステムのパフォーマンスを向上させることができます。

## ElastiCacheのデータベースエンジン
ElastiCacheは「Memcached」と「Radis」の二種類のエンジンをサポートしています。
### Memcached
事実上、KVS(Key-Valueストア)型インメモリデータベースの標準として広く利用されています。高パフォーマンスですがデータの永続性やレプリケーション機能はないので、障害や再起動が発生した場合はデータは残りません。保持しておかなければならないデータはストレージや他のデータベースサービスへ保存しておき、

AWS SAA 受験対策メモ①

# はじめに
7月にAWS CLF-02を受験し合格。
知識を蓄えるインプットのみの学習も大切ですが、アウトプットすることでより知識として定着すると思いますのでこちらではメモ書きを書き残し、今後の別の記事では知見を深めるためのハンズオンなども実践して残していきたいです…!

私は直接殴り書きをして頭に叩き込むタイプでして、ノートに書いた1部をこちらに転載しております。
こんな感じで50ページほど書いていました。
![note.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3887873/79643af9-8123-ce89-1f1d-71a91f6def15.jpeg)

# メモ書き
・CloudWatchLogsでは決まったフォーマットのメトリクスフィルターを作成できる。
  CloudWatchアラームではメトリクスが発火した条件を決め、発火した際にはSNSと連携して特定のミドルウェア(メールやSlackなど)に通知することが可能。
→メトリクスフィルターとは。
  ログデータから特定の文

AWSを触る人はAWS-SAAを取りなさい!

# 初めに
近日中に地元でJAWS-UGが行われるため、名刺代わりにこの記事を書くことにしました。

# 目次
[1.自己紹介](#1-自己紹介)
[2.SAAの勉強をやるべき3つの理由](#2-SAAの勉強をやるべき3つの理由)
[3.AWSサービスを知ることができる](#3-AWSサービスを知ることができる)
[4.AWSサービスを使用してベストプラクティスを知ることができる](#4-AWSサービスを使用してベストプラクティスを知ることができる)
[5.例1:負荷分散のためのオートスケーリング](#5-例1:負荷分散のためのオートスケーリング)
[6.例2:データ分析基盤構築](#6-例2:データ分析基盤構築)
[7.自慢できる](#7-自慢できる)
[8.みんなもAWS-SSAを受けてみよう!](#8-みんなもAWS-SSAを受けてみよう!)

# 1. 自己紹介

初めまして!やさしい緑です!IT業界へ入り4年目になります!
・1年目~3年目ごろ:SESや受託開発案件などベンダー側で開発者として活動
 JavaScript(TypeScript)、Python(Pandas)で

for_eachでterraformリソースの作成を条件分岐する

## やりたいこと
varファイルにリソースを作成するか否かをtrue or falseで記載し、trueの場合のみリソースを作成する。

## 背景
AWSの検証用にterraformでリソース作成をしているのですが、検証パターンによっては、作成したくないリソースがいくつかあったので、varファイルの内容を書き換えるだけでリソース作成を操作したかった。
今回は、プライベートに配置したEC2にSSM接続する際に必要なvpc endpointを例に記載していきます。

## コード
network.tf
“`
resource “aws_vpc_endpoint” “this” {
for_each = var.creat_vpc_endpoint ? local.vpc_endpoint : {}
vpc_id = aws_vpc.this.id
service_name = each.value.service_name
vpc_endpoint_type = each.value.vpc_endpo