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

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

SQSの概要 SAA範囲内

# SQS

## 暗号化

サーバー側の暗号化を設定することができる

デフォルトでは有効になっている

### キーのタイプが選択することができる

SQS自体が作成、管理、使用する暗号化キーと

KMSと連携して暗号化を自分で管理することも可能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2526914/0fc15814-c513-64f5-9901-c092ecd84c80.png)

## SQSアクセスポリシー

ベーシックタイプとアドバンストがある

ベーシックタイプはシンプルな設定です。

キュー所有者のみにアクセスを許可したり、

指定したAWSアカウントを設定するだけであれば、ベーシックを使います。

アドバンストについては、IAMポリシーのようにJSONオブジェクトを使用して、高度なアクセスポリシーを定義することが可能です。

アクセスポリシーを設定する際は、

キュー自体に送信できるユーザー

キューを受診できるユーザー

それぞれに定義します。

## デ

元記事を表示

AWSにてドメインを取得した後、Terraformを使用してAWS Certificate Managerを証明書を発行した

# 前書き
表題の構築を行ったので、備忘録も兼ねて記載します。

# AWS Certificate Managerの概要
– ウェブサイトやアプリケーションのセキュリティを強化する為に、**SSL/TLS証明書**の発行、管理、展開を自動化するサービス
– ウェブ通信の暗号化が簡単に実現、データの機密性を確保、なりすましを防止が可能になる
– ACMで発行された証明書は自動で更新される為、証明書の有効期限を気にする必要がない

## 主な機能
### 証明書の発行と管理
– 無料での証明書発行: `ELB`、`CloudFront`、`API Gateway`等の`AWS`リソースで利用可能
– 自動更新: 証明書の有効期限切れの心配が不要

### ドメイン検証
– DNS検証: 自動化が可能で、手動操作を減らし、証明書の再発行や更新時の再検証が不要
– Email検証: 手動で確認する必要があり、`DNS`検証よりも手間がかかる

### AWSサービスとの統合
– `Elastic Load Balancing (ELB)`: HTTPS通信の実現
– `Amazon Clou

元記事を表示

AWS S3 学習メモ

# 目次
1. [オブジェクトロック](#オブジェクトロック)
1. [署名付きURL](#署名付きURL)

# 1. オブジェクトロック

詳細

## 概要
S3オブジェクトロックは有効にすることで、S3オブジェクトが一定期間または無制限に上書きまたは削除されることを防ぐことができる機能。
バケット全体ではなくオブジェクトに対してのロックなので注意!!

バケットの設定でオブジェクトロックをオンにすると、バケット内の全てのオブジェクトに対してオブジェクトロックが有効になる。

## オブジェクトロックを使用する条件
・バージョニングが有効になっていること
 ⇒オブジェクトロックは特定のバージョンのオブジェクトに対して上書きまたは削除されることを防ぐ
 ⇒オブジェクトの新しいバージョンを作成することが阻害されたり、オブジェクトの上に追加される削除マーカー(これがあると実際には削除されていないが、S3はこのオブジェクトが削除されたようにふるまう)が削除されることはありません

## 保持期間
オブジェクトロックが有効化されると

元記事を表示

CloudFormationでのAWSネットワーク構築入門:VPC、サブネット、インターネットゲートウェイ、NATゲートウェイ、ルートテーブルの設定

## はじめに
AWS環境でのネットワーク設定は、各リソースを適切に構築・設定する必要があるため手動で行うとミスや負荷が発生しやすくなります。

:::note warn
**そこで、ネットワーク構築の作業を自動化する手段として、AWSのCloudFormationを利用することで効率的かつ信頼性の高い構成管理が可能です。**
:::

この記事では、VPC、サブネット、インターネットゲートウェイ、NATゲートウェイ、ルートテーブルを含む基本的なネットワーク構成をCloudFormationテンプレートで実現する方法について解説します。

## 知識整理
まず、AWSネットワークの基本コンポーネントとその役割を整理しましょう。

### VPC(Virtual Private Cloud)
AWS上で仮想ネットワークを構築するための基本的なネットワーク環境。サブネットやインターネット接続の基盤を提供します。

### インターネットゲートウェイ
VPC内のパブリックサブネットのリソースがインターネットにアクセスできるようにするコンポーネント。

### NATゲートウェイ
プライベート

元記事を表示

AWS Glue 増分クローラーでハマったこと

## 最初に結論

### ハマったこと
AWS Glueの増分クローラーを使うときはデータソース(S3)にデータがない状態で初回実行してしまうと2回目以降のクロールでもスキーマ作成されずパーティション更新もされない。

### 回避するためには?

1. 初回実行前にデータを入れておく
2. 増分クローラーを使うのをやめる
3. テーブルやスキーマ作成部分をGlueに任せるのをやめる

## 背景

DBからS3バケットにデータを流し込んでAthena検索できる環境を構築するためにAWS GlueのCrawlerを使ってデータカタログテーブル作成・更新をしていました。

Crawlerを使えばパーティションキーをはじめとするテーブル情報の作成と更新を自動でやってくれるのでAthena検索をスムーズに行えるわけです。

ただ、Crawlerも万能ではないため性質を理解した上で使う必要があります。

## クローラーの仕組み

> クローラーを実行すると、クローラーは以下のアクションを使用してデータストアを調査します。
> ・生データの形式、スキーマ、および関連プロパティを確認するために

元記事を表示

CDKのL2 Constructで指定できないパラメータをL1 Constructで指定する

## 概要

CDK(L2 Construct)でAWSリソースを作っていると指定できないプロパティがあります。

CDKのバージョンを上げれば解消されることもありますが、いつでも最新のCDKが使える状況ではないかもしれません。また、最新化したとしても依然として指定できないケースもあります。

より低レイヤーなL1 Constructを使うことで解決する方法を紹介します。

## 前提

### バージョン情報

* CDK:2.89.0
* TypeScript

## CDKのレイヤーについて

CDKには大きく3つのレイヤーが存在しています。

|レイヤー名|説明|
|:-:|:-:|
|L1|Cfnのテンプレートを直接記述できる。L2よりも細かい指定ができる。|
|L2|普通に書いてたらこのレイヤーを使ってる。|
|L3|本記事とは無関係なので割愛。|

極端な例ですが、L2でS3バケットを作ろうと思った場合以下のように1行書けば作れます。

“`typescript
const bucket = new s3.Bucket(this, ‘MyFirstBucket’);

元記事を表示

VPCのサブネットはルートテーブルで考えよう

# 学習前
VPCのサブネットには、パブリックサブネットとプライベートサブネットの2種類あるのは知っていました。

その2つは、サブネットを作成する際に「パブリックサブネットにする?プライベートサブネットにする?」のどちらかをコンソール上で選択できて、それによってパブリック/プライベートの違いが決定する…と考えていました。

でも実際は全然違った…ということで学びを得たのでアウトプットします。

# 結論
パブリックサブネットとプライベートサブネットの違いは、**ルートテーブルの設定によって左右**される。
サブネットそのものを「パブリック」や「プライベート」と**定義づけることはできない!!!(というか、そんなことをしても意味がない!)**

# ハンズオンをやってみた
AWS公式が提供している初心者向けハンズオンである「Hands-on for Beginners」のネットワーク編#1 で、ネットワークについて1から学び直している時に、自分の認識が誤っていたことに気がつきました。

https://pages.awscloud.co

元記事を表示

【AWS App Runner】初心者必見!AWS App RunnerでサクッとコンテナWebアプリを公開しよう!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806193/20b1b19c-9333-9b83-f229-c3c83fa331c2.png)

## 一言でいうと

::: note info
AWS App Runnerは、インフラやコンテナの知識無くても**WebアプリケーションやAPIを簡単にデプロイし、スケーリングも自動化できるAWSのサービス**です。
:::

インフラ管理の知識がなくても、App Runnerを使えば、コンテナ化されたアプリケーションをスムーズに稼働させられます。これで、開発に集中でき、手間のかかるインフラ設定は不要になります!

## もう少し詳しく

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806193/3f69ee21-e196-adab-3e76-7b4e5240acf7.png)

ここから、App Runnerの基本的な構

元記事を表示

【Amazon Pinpoint】顧客ともっと近づける!Amazon Pinpointで始めるメッセージ配信入門

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806193/fe1f9cf0-6455-84ae-c35a-ce580d2ef8e4.png)

## 一言でいうと

::: note info
Amazon Pinpointは、**顧客にぴったりのタイミングでメッセージを届けるためのAWSのサービス**です。メールやSMS、プッシュ通知などを使って、一人ひとりに合わせた内容を送ることができます。これで、より「伝わる」コミュニケーションが実現します!
:::


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806193/54bf6846-f527-06d6-d6af-a02e3ca63794.png)
## もう少し詳しく

Amazon Pinpointを使えば、顧客とのコミュニケーションを最適化し、ブランドとのつながりを深めることができます。初心者にもわかりやすいよう

元記事を表示

Cannot use google login.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307469/fe5cab85-5b0e-12fb-a4a9-3e48c7a771e1.png)

元記事を表示

意外と(?)いろいろできるAmazon Bedrock Prompt ManagementがGAしましたよ!

Amazon BedrockのPrompt ManagementがGAしました🎉🎉🎉

https://aws.amazon.com/jp/blogs/machine-learning/amazon-bedrock-prompt-management-is-now-available-in-ga/

プレビュー時との違いなどはこちらに情報がありました!(ありがとうございます!)

https://dev.classmethod.jp/articles/amazon-bedrock-prompt-management-ga/

## Prompt Managementとは?

プロンプトをテンプレート化して登録しておく機能です。(超ざっくり!)

### テンプレート化?

以下のプロンプトを例にします。

“`text:プロンプト
の内容を英語に翻訳してください。

こんにちは
“`

このプロンプトの一部分を変数(Variables)にして、再利用しやすい形にします。
変数は`{{` `}}`で囲って表現します。

“`text:プ

元記事を表示

AWSの基本理解:AWS VPCをマネコン上から一括作成!その仕組みと設定を紐解き、より深く理解する

## はじめに
AWSで新しいアプリケーションを開発する際には、VPC(Virtual Private Cloud)をはじめとするネットワーク環境の構築が不可欠です。

:::note warn
**従来はVPCやサブネット、セキュリティグループなどを一つひとつ手動で設定する必要がありましたが、現在では「VPCなど」の機能を利用することで、AWSが自動的に最適なネットワーク環境を構築してくれるようになりました。**
:::

今回は、この便利な一括作成機能を活用し、実際にVPC環境を構築しながら、その設定について詳しく解説していきます。

本記事は、物忘れの多い自分への備忘録としてまとめていきます。

## 知識整理
### VPC(Virtual Private Cloud)とは?
AWS上に構築する、完全に分離されたプライベートネットワークです。

自社のデータセンター内にプライベートネットワークを構築するのと同じように、AWS上で独自のネットワーク環境を構築することができます。

https://qiita.com/kimuni-i/items/f9957efccb9ed4bf1

元記事を表示

AWS SNS – Chatbot 経由でメッセージが送信されない要因の3例

## はじめに

AWS の運用で

:::note info
何らかの AWS サービス → SNS → Chatbot → Slack チャンネル
:::

という具合に、通知をSlack チャンネルに流すユースケースは色々あると思いますが、
設定をしていざ上流でトリガーされてもSlackまで流れなくて、SNS – Chatbot 間で止まってしまっている3つのケースがこれまでにありました。

たまに忘れるので備忘録として残しておきます。

## SNS トピックが バージニア北部 (us-east-1) になかった

これは

:::note info
AWS Cost Anomaly Detection → SNSトピック → Chatbot → Slack チャンネル
:::

の流れで構築した際に、いつものように 東京リージョン (ap-northeast-1) で作成していました。

Chatbot が Cost Anomaly Detection と連携するためには、**SNS Topic を us-east-1 リージョンで作成する必要がある**(※)ようで、そのた

元記事を表示

【AWS】Codepipelineのイベントベースとポーリングベースの違い

## はじめに
実務で、AWSに触れる時イベントベースとポーリングベースのCodePipelineの違いがよくわからなかったので、まとめていきます。

## ポーリングベースとは
Codepipelineの設定。定期的にソースリポジトリをチェックして変更を検出してくれる。

## イベントベースとは
Codepipelineの設定。Amazon EventBridgeを使用して、ソースリポジトリの変更を即時に検出してくれる。

## どっちが推奨されているのか
AWSでは、イベントベースのCodepipelineの設定が推奨されている。ポーリングベースのCodepipelineは以下の理由でAWS公式も推奨をしていない。

>AWS CodePipelineチームは、2023年5月25日より、非アクティブなパイプラインでのポーリングを無効にします。非アクティブなパイプラインとは、過去30日間にパイプラインの実行が開始されていないパイプラインと定義されます。Amazon EventBridgeルール、AWS CodeStar接続、またはウェブフックのみを使用してパイプラインをトリガーする

元記事を表示

ECSで動いているバッチをスケジュールタスクで実行する 〜めちゃ便利〜

## 前提
下記の記事でバッチ処理はLambda契機のHTTP通信で実行するようにしていました。
ざっくりの流れ
EventBridge -> Lambda -> HTTPリクエストでECSのバッチ処理を起動

https://qiita.com/lyd-ryotaro/items/ede118eed0766c7aaf17

しかし、バッチ処理に時間がかかるようになり、CloudFrontのレスポンスタイムアウト30秒内にレスポンスを返せなくなってきて、Lambdaにてタイムアウトエラーが発生するようになってきました。

[![Image from Gyazo](https://i.gyazo.com/465e44e98a65527034cbee2b4c66a6a9.png)](https://gyazo.com/465e44e98a65527034cbee2b4c66a6a9)

ECS内では無事にバッチ処理は完遂していますが、実行元のLambdaにレスポンスだけ返せていないという状況です。
CloudFrontのレスポンスタイムアウトを変更するのはWebアプリケーション全体に影響が

元記事を表示

【AWS QuickSight】新機能「ネストされたフィルター」の検証

## はじめに
はじめまして。ジールの@ken_miyashitaです。
2024年8月AWS QuickSightに新機能「**ネストされたフィルター**」が追加されました。

https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/add-a-nested-filter-data-prep.html

本記事では、ネストされたフィルターの基本的な説明から設定方法、実際のビジネスシーンでの活用例などを紹介していきます。

## Amazon QuickSightとは
QuickSightについて簡単に説明したいと思います。下記がQuickSightの主な特徴です。

■特徴
①AWSの各種サービスや外部のSQLデータベース、Excelファイルなど、さまざまなデータソースに接続可能
②豊富なビジュアルの中から直感的な操作で可視化が可能
③SPICEと呼ばれる独自のインメモリエンジンで高速なデータ処理ができ、複雑なクエリも迅速に実行可能

## ネストされたフィルターとは
検証前に「ネストされたフィルター」について公式リファレンス

元記事を表示

【入門】AWS-CLIのコマンドとAWSサービスを理解する

はじめに

仕事で環境構築をする際に、マニュアルに沿ってコマンドを実行していたのですが、aws関連のコマンドについて理解せずに使っていたことに気が付きました。
今後も業務で使える再現性のある知識にしたいと思い、備忘のためにも記事として残させていただきます。

調べるなかで自分の**わからないこと**・**理解の浅いもの**が出るたびにその箇所へフォーカスしながら深ぼっていくスタイルで書いています。ご了承ください。

今回は、**AWS CLI**とAWSを利用する入口となる基本的なコマンドを調べました。

– “`aws-sso-util login“`
– “`awsume“`
– “`aws esc-exec“`
– “`aws ec2-login“`

前提:AWS CLI

AWSコマンドラインインターフェイス

>AWS のサービスを管理するための統合ツールです。ダウンロードおよび設定用の単一のツールのみを使用して、コマンドラインから AWS の複数のサービスを制御し、スクリプトを使用してこれらを自動化することができます。(引用元:http

元記事を表示

external-dnsでAWS Route53フェイルオーバーを実現する方法

Kubernetesで動作するアプリケーションのDNS管理には、external-dnsが広く使われています。external-dnsを使うと、様々なDNSプロバイダーのレコード設定を統一的な方法で管理できるため、運用の手間を大幅に削減できます。

https://kubernetes-sigs.github.io/external-dns/latest/

しかし、external-dnsがDNSプロバイダー固有の機能にどこまで対応しているのかは気になるところです。特に、AWS Route53のフェイルオーバー機能への対応については、公式ドキュメントでも触れられているものの、本当にうまく統合できるのか気になったので試してみることにしました。

https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html

本記事では、external-dnsを使ってAWS Route53のフェイルオーバーを設定する方法を、実際の検証を通じて詳しく解説します。

## TL;DR

– external-dnsは

元記事を表示

CloudFrontからのリクエストのみ受け付けるAPI Gatewayの作り方

# 背景

CloudFrontを通じてS3の静的ウェブサイトを配信し、公開する手法をよく見かけますが、しっかりとしたウェブサービスを作る場合、API Gatewayをオリジンとして指定し、APIをCloudFrontで配信することも少なくないでしょう。

しかし、設定やポリシーでアクセス制限ができるS3と違って今現在API GatewayへのアクセスをCloudFrontからのみに絞ることはできません。

本文はある程度それを実現できる回避策を紹介し、そしてそれに基づいたより強固の対策も併せて紹介いたします。

# 結論

CloudFrontのカスタムヘッダーとAPI Gatewayのポリシー設定を通じて、実践上CloudFrontからのリクエストのみ受け付けるAPI Gatewayを作れます。さらにセキュリティ性を高めたい場合、自動的にヘッダーを変更するプログラムもご活用ください!

コードはこちら:https://github.com/zhang-hang-valuesccg/example-cloudfront-apigateway-integration

# 全体設計

元記事を表示

Lambdaで処理できないバッチ処理をAWS Batchで便利に実行しよう

## 概要

この記事ではSQS + Lambda構成で処理できない長時間のバッチ処理のためにAWS Batchを利用する方法について解説します。AWS Batchの概要、設定方法や実際にジョブを登録して実行する方法について説明していきます。

このユースケースでのAWS Batchの利点は以下の通りです。

– ✅ サーバーレスでバッチ処理を行うことができる
– ✅ Lambdaの15分制限を超える長時間の処理を行うことができる
– ✅ ジョブのスケジューリングやリトライを自動で行ってくれる
– ✅ ジョブの並行実行数を制御することができる
– ✅ ジョブの失敗時の通知を設定することができる

またこの記事ではAWS CDKを利用しながらAWS Batchの設定方法を例示するので、お手元の環境でサンプルコードそのまま実行して試してみることができます。

## 目次

– [背景](#背景)
– [AWS Batchの概要](#aws-batchの概要)
– [AWS Batchの使い方](#aws-batchの使い方)
– [ジョブ定義](#ジョブ定義)
– [コンピューティ

元記事を表示

OTHERカテゴリの最新記事