- 1. 静的ウェブサイトをCloudFront経由のアクセスしか許可しないようにする
- 2. 静的ウェブサイトホスティングにCloudFrontを経由してアクセスしてみる
- 3. 静的ウェブサイトホスティングでホスティングしてみる
- 4. AWSでWebアプリを構築してみる
- 5. M2 チップの Mac で Linux を試したーい
- 6. AthenaのPartition Projectionを使用したテーブルの作成方法
- 7. AWS Lambdaに画像を送信する
- 8. Ruby × Amazon Bedrock × Claude 3 Sonnet
- 9. TerraformでDynamoDBに一気にデータを突っ込みたい時のやつ
- 10. 【DBS-C01】DBS合格体験記
- 11. Lambda 関数 URL で OAC で CloudFront 経由の実行のみを許可する
- 12. AWSアカウントとRoute53の最適化
- 13. AWS SQS/Lambda/SNSにS3を連携し、メール通知を行ってみる[03]
- 14. AWS Lambda/SNSにSQSを連携し、メール通知を行ってみる[02]
- 15. AnsibleでAWS S3にファイルを登録してみる
- 16. AWS EventBridge での失敗と教訓
- 17. 【AWS】AWSクラウドプラクティショナーに2ヶ月で合格した方法
- 18. AWS Amplifyで接続しているレポジトリを変更する方法
- 19. 追加検証: VMware Cloud on AWS M7i インスタンス & FSxN (VPC Peering) ウォークスルー
- 20. MFA必須化を機に、AWSアカウントを閉鎖(解約)した
静的ウェブサイトをCloudFront経由のアクセスしか許可しないようにする
# 概要
本記事は [AWSでWebアプリを構築してみる](https://qiita.com/ti_and6id/items/9670ee60965a4d10bec7) シリーズの3回目の記事です。
前回の記事は[こちら](https://qiita.com/ti_and6id/items/c257f9d011f84b97ac3e)。# 本記事で作成する構成
本記事では静的ウェブサイトをCloudFront経由のアクセスしか許可しないようにしてみます。
![AWS.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3630916/7a173c6e-0ddb-d0a2-b410-283908b3b5ca.png)
ここでは図のようにCloudFrontを経由した間接的なアクセスのみ可能な状態で、S3でホスティングした静的ウェブサイトに直接アクセスすることができなくなります。# 静的ウェブサイトをCloudFront経由のアクセスしか許可しないようにする
## 1. S3の設定を変
静的ウェブサイトホスティングにCloudFrontを経由してアクセスしてみる
# 概要
本記事は [AWSでWebアプリを構築してみる](https://qiita.com/ti_and6id/items/9670ee60965a4d10bec7) シリーズの2回目の記事です。
前回の記事は[こちら](https://qiita.com/ti_and6id/items/fe652f89d8919052c91c)。# 本記事で作成する構成
本記事では静的ウェブサイトホスティングにCloudFrontを経由してアクセスできるようにしてみます。
![AWS.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3630916/cacc9846-2940-48ae-07af-58bd74e1d204.png)
ここでは図のようにS3でホスティングした静的ウェブサイトに直接アクセスすることと、CloudFrontを経由して間接的にアクセスすることの、2通りのアクセスが可能な状態になります。# 静的ウェブサイトホスティングにCloudFrontを経由してアクセスしてみる
静的ウェブサイトホスティングでホスティングしてみる
# 概要
本記事は [AWSでWebアプリを構築してみる](https://qiita.com/ti_and6id/items/9670ee60965a4d10bec7) シリーズの1回目の記事です。
# 本記事で作成する構成
本記事では静的ウェブサイトホスティングでアプリケーションコンテンツをホスティングします。
![AWS.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3630916/5da46841-89a3-52cb-97d3-dd9c7cd71cf4.png)# 静的ウェブサイトホスティングでホスティングしてみる
## 1. S3でバケットを作成する
1. マネジメントコンソールからS3を開き、「バケットを作成」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3630916/b0b5361d-2b5b-c33c-a37e-8f4ad502e09e.
AWSでWebアプリを構築してみる
# 概要
AWSでWebアプリを構築したときに小さなステップから少しずつアプリになっていくまでの過程を記録に残していきたいと思います。# 構成
今回作成したWebアプリは以下のような構成で組んでみました。![AWS.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3630916/93bf62cb-2f60-851b-1c0f-768309f08bb0.png)
Amplifyを使うとより簡単に構築できそうですが、今回は学習を兼ねてあえてAmplifyを使わずに構築してみます。
# 記事シリーズ
以下の記事で小さなステップから徐々にアプリになっていくまでの過程を記録していきます。
1. [静的ウェブサイトホスティングでホスティングしてみる](https://qiita.com/ti_and6id/items/fe652f89d8919052c91c)
1. [静的ウェブサイトホスティングにCloudFrontを経由してアクセスしてみる](https://qiita.com/ti
M2 チップの Mac で Linux を試したーい
## はじめに
Mac で Linux 環境を構築した際の備忘録になります。
様々な環境構築方法があると思いますが、今回は以下2パターンについて触れます。
– UTM を使う
– AWSのEC2でLinuxサーバを立ち上げるもう一つ普及している環境構築方法として Virtual Box を利用するパターンがあると思いますが、Apple シリコン搭載の Mac コンピュータはインストールに一工夫必要そうだったので、今回は UTM を利用しました。
Virtual Box をどうしても使いたい方は、以下の記事がわかりやすかったので参考にしてみてください。
[Virtual BoxをMacBook Air(M1, 2020)にインストールしようとしたら、CPUアーキテクチャの違いで詰まったので学び直した](https://qiita.com/k21071/items/55f81bdfc22a02b425d3)#### 対象読者
– MacでLinux環境を構築したい方
#### 動作環境
– macOS:14.4
– チップ:Apple M2
– メモリ:8 GB
AthenaのPartition Projectionを使用したテーブルの作成方法
## はじめに
Athenaではスキャンしたデータによって料金が課金されます。
AthenaでWAFログなどを分析する際、全ログに対してテーブルを作成すると、分析に必要ない範囲まで読み込んでしまうことによって、無駄な料金がかかり、検索時間も長くなってしまいます。この悩みは Projection Partition を使用して、解消することができます。
本記事は、 Projection Partition を使用してWAFログをパーティション分割し、コスト削減および検索時間を短縮する方法について紹介します。## Partition Projection とは?
パーティション分割を自動化できるのが `Partition Projection` です。
通常、パーティション分割されたテーブルを作成するには、手動でパーティション分割用のクエリを実行する必要があります。
ですが、 Projection Partition を使用してテーブルを作成した場合、クエリに記載されたパーティション構造に沿ってデータをパーティション分割します。
新しいデータがS3に格納された場合、パーティ
AWS Lambdaに画像を送信する
# この記事は?
AWS Lambdaエンドポイントに画像を送って処理をする方法のメモ。結論、base64でエンコードしてjsonとして画像を送れば良い。# 本文
## リクエストの方法
Lambdaではバイナリとして画像を受信できないようである。バイナリとして画像を送信すると次のようなエラーが出る。“`bash
Unable to unmarshal input: ‘utf-8’ codec can’t decode byte 0x89 in position 0: invalid start byte
“`エラー内容からすると、Lambdaはリクエストをutf-8として解釈するようだ。なので、画像を送信するときはbase64でエンコードして、jsonとして送ってやる必要があると推察される。サイズの大きい画像を送る場合、curlにエンコードした画像をそのまま渡すと、引数が長すぎてエラーが出るため、一度jsonファイルに変換してやる必要がある。
“`画像ファイルをbase64でエンコードしてjsonに変換.bash
echo “{\”body\”: \”$(base
Ruby × Amazon Bedrock × Claude 3 Sonnet
# はじめに
Bedrockを利用した機能の検証を行う必要があったため、備忘録として残しておこうと思い書いています。
とある個人間中古車プラットフォームでユーザーの投稿内容が規約に違反していないかをチェックしたいという要件をビジネス部門から受けました。
そのため、生成AIを利用し、チェックを行う、あわよくばマスキングしてもらおうと思い検証しました。
Bedrockを利用する理由は以下のとおりです。
– すでにAWSを利用しているため、すぐに使えること
– 使った分だけの費用であること (会社でOpenAIなどの個別の契約がなく、新規で固定費をかけたくなかった)
– Claude3の評判が良いチェックしたい情報は以下です。
– 電話番号やメールアドレスなどの直接コンタクトが取れるような情報
– コンプライアンス上望ましくない言葉# まずは、BedrockをRubyから呼び出す
モデルの呼び出しまでについては以下を参考にしました。
https://www.xmisao.com/2024/04/27/invoke-claude3-opus-from-ruby-aws-sdk.html
TerraformでDynamoDBに一気にデータを突っ込みたい時のやつ
### 結論から
TerraformでMapをListにして突っ込む方法があまり検索に引っかからないのもあり、残しておくことにした。“`terraform:main.tf
resource “aws_dynamodb_table” “example” {
name = “ExampleTable”
billing_mode = “PAY_PER_REQUEST”
hash_key = “PartitionKey”
range_key = “SortKey”attribute {
name = “PartitionKey”
type = “S”
}attribute {
name = “SortKey”
type = “S”
}tags = {
Name = “ExampleTable”
}
}locals {
list = [
{ PartitionKey = { S = “hoge” }, SortKey = { S = “1” }, Con
【DBS-C01】DBS合格体験記
## はじめに
先日、AWS Certified Database – Specialtyを受検し、合格しました。
本試験は、2024/04/29を最終受検日として廃止されているので、今後の受検の参考にはならないと思いますが、記録として残しておきます。https://aws.amazon.com/jp/blogs/news/aws-certification-retirements-and-launches/
## 受検時の状態
– 入社3年
– 業務でAWSを触る環境
– AWS CLF, SAA, SOA, DVA, SCS取得済み## 勉強期間
2か月## 勉強時間
合計30時間ほど内訳
就業後0.5~1時間 電車移動時2時間## 使ったもの
:::note
AWS Certified Database – Specialty Official Practice Question Set (DBS-C01 – Japanese)
:::
:::note
[AWS 認定データベース — 専門知識 AWS Certified Database – Speci
Lambda 関数 URL で OAC で CloudFront 経由の実行のみを許可する
# 概要
https://aws.amazon.com/jp/about-aws/whats-new/2024/04/amazon-cloudfront-oac-lambda-function-url-origins/
# 抑えておくべき用語
## Lambda 関数 URL
API Gateway 無しに Lambda のメニューから機能を ON にするだけ HTTPS 公開ができる。
https://qiita.com/leomaro7/items/f2142431e10cd7cc470d
## OAC
指定された CloudFront ディストリビューションからのアクセスのみにする。
https://qiita.com/leomaro7/items/b9deda523f0c94a494ca
# やってみる
## Lambda 1
Lambda 関数は単純に Hello World を返すもののため省略します。
関数 URL には「**AWS_IAM**」を指定。
![スクリーンショット 2024-05-01 15.46.43.png](https://qi
AWSアカウントとRoute53の最適化
# はじめに
年末から多忙を極め、書きたい記事も中々書けなかった [@\_\_\_nix___](https://twitter.com/___nix___) です。# 背景
様々な企業さまのお手伝いをする中で、AWS環境とRoute53の最適化がされていないと「何で?」と思うことが多々ありました。
また、IaC による開発でも「開発しているAWS環境で閉じられない」というのはインフラとしても手数が掛かるので出来るだけ運用をスマートにしたいと考えるわけです。例えば開発環境で Amplify を使っているケースで、「カスタムドメイン設定したいのでレコード追加してください」という依頼。IaC なんだからインフラ頼らなくても良くね?と。
AWS使ってるのであれば出来るだけ設定は環境毎に閉じて欲しいという思いからこの記事の執筆を決めました。
# 概要
AWSアカウントとRoute53の関係を最適化する為には DNSの権限委譲 を理解する必要があります。
この権限委譲の説明と手順を交えながら進んでいこうと思います。# DNSの権限委譲
## DNS権限委譲とは?
DNSの権
AWS SQS/Lambda/SNSにS3を連携し、メール通知を行ってみる[03]
こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。今回はAWS SQS,Lambda,SNS環境にS3を追加して、S3に何らかのデータがアップロードされた際にメールが通知される環境を構築していきたいと思います。
今までの記事は以下となります。
https://qiita.com/ohtsuka-shota/items/e2b62e5ab61a90807264
https://qiita.com/ohtsuka-shota/items/4daaf14c03705ee0ad05
# 最終的な構築イメージ
以下環境を作っていきます。今回はS3を実装していきます。
![aws-django01-ページ6.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/426843a2-5d28-7283-96dc-22fb1cbe3e34.png)# 構築
## S3の作成
バケットの作成を押下します。
![image.png](https://qiita-i
AWS Lambda/SNSにSQSを連携し、メール通知を行ってみる[02]
こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。
最近、とある事情でAWS関連のインプットをよくしています。今回はAWS LambdaとSNSで構築したメール通知環境にSQSを追加していきたいと思います。
前回の記事は以下となります。
https://qiita.com/ohtsuka-shota/items/e2b62e5ab61a90807264
# 最終的な構築イメージ
以下環境を作っていきます。今回はSQSを実装していきます。
![aws-django01-ページ6.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/426843a2-5d28-7283-96dc-22fb1cbe3e34.png)# 構築
## SQSの作成
SQSの管理画面にアクセスします。キューを作成を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/
AnsibleでAWS S3にファイルを登録してみる
# AnsibleでAWS S3にファイルを登録してみる
★ この記事は3年前に執筆し、投稿し忘れていたものを投稿したものです
## 背景
お仕事でローカルファイルをAWS S3にアップロードする要件がありました。
AWS CLIでは何度もやってますが、今回はAnsibleから行うのが要件の一つにありましたので試してみることにします。## 参考
・[Amazon AWS Collection](https://galaxy.ansible.com/amazon/aws?extIdCarryOver=true&sc_cid=701f2000001OH7YAAW)
・[amazon.aws.aws_s3 – manage objects in S3.](https://docs.ansible.com/ansible/latest/collections/amazon/aws/aws_s3_module.html)## どうやればできる?
調べてみると、Ansibleには「amazon.aws」モジュールが存在していました。
こちらのモジュールを使えばAWSの各サービスに
AWS EventBridge での失敗と教訓
やらかしを教訓として残します
# 機能概要
– 契約しているクライアントさんに対して、メールを送信するAPIを作成
– そのAPIのエンドポイントをAPI送信先として登録
– EventBridge で毎月1日の8時に、登録したAPI送信先に対してリクエストを送信# 起こったこと
該当のAPI送信先に10分間隔でリクエストが発生しており、クライアントさんに対してメールを送信し続ける事例が発生
## 無駄だった対応
デフォルトから設定変更をしていなかったため
再試行ポリシーの再試行回数が185に設定されていたのを0に変更![スクリーンショット 2024-05-01 120159.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76272/a6dc92ce-a0dc-a102-53cf-9a854779bd72.png)
どうやら設定変更前に発生したイベントに対して、新しい設定は反映されないようですね…
## 適切だった対応
該当の EventBridge を無効化して、登録していたA
【AWS】AWSクラウドプラクティショナーに2ヶ月で合格した方法
# 初めに
2月半ばから2ヶ月ほどAWSクラウドプラクティショナーの勉強をして無事合格することができました。今回は備忘録としてどのように勉強したのかを書きます。## 自己紹介
* エンジニア歴2年目
* 普段はフロントエンドメインの業務。たまにSQLやLinuxを触る
* AWSは勉強目的で自分のアカウントを持っている
* 昨年のアドベントカレンダーでAWSについて書く
* ただし実践経験は無く、AWSはほぼ未経験者昨年私が作成したAWSのアドベントカレンダーはこちら↓
https://qiita.com/advent-calendar/2023/aws-beginner-output## 今回受験しようと決めた理由
AWSでの開発が増えてきていること、勉強することで今後携われる業務の幅が広がると思ったから## 結果
先に結果を書くと800前半の点数を取ることができました。問題の感触としては4割はudemy等で見た(似たような)問題・5割は自分の知識で解ける問題・1割は少し考えさせられる問題だったと思います。# 勉強方法
私は以下の順番で勉強を進めていきました。
AWS Amplifyで接続しているレポジトリを変更する方法
# はじめに
タイトル通りのことをやろうと思ってもなかなか実現したいことにたどり着かなかったので備忘録として書き留めておきます。
# レポジトリの接続を切り替える
コンソールからは現時点(2024/05/01)では変更できません。AWS CLIを使えば一発で変更できます。
## CodeCommitの場合
変更に必要なのは、Amplfyの `appId` と `レポジトリURL` の2つです。
appIDを取得するには次のコマンドを実行します。“`sh
aws amplify list-apps
“`あとは変更先のレポジトリURLを指定すれば変更完了します。appIdとレポジトリURLをhttpsで指定すればOK。
“`sh
aws amplify update-app –app-id [取得したappId] –repository https://git-codecommit.xxx.amazonaws.com/xxxx
“`## Githubの場合
下記のサイトを参考にされるとよいでしょう。
https://zenn.dev/itoudium
追加検証: VMware Cloud on AWS M7i インスタンス & FSxN (VPC Peering) ウォークスルー
# 1. はじめに
とうとうVMware Cloud on AWS M7iインスタンスが提供開始されたということで、デプロイしてみました。
仮想マシンの作成、HCXのデプロイ、FSxNの別SDDCへの付け替えなども追加で試してみました。https://aws.amazon.com/jp/about-aws/whats-new/2024/02/amazon-ec2-m7i-metal-24xl-instance-vmware-cloud-aws/
VMware Cloud on AWS M7i インスタンスをデプロイしたので、コンソールから見えてきた様子などを備忘録として残します。
![Arch_M7i_FSxN_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/12478c6a-3726-4615-19c2-988156a8b37d.png)
:::note warn
2024年4月1日現在、VMware Cloud on AWS M7iインスタンスを利用できるのは、米国東部
MFA必須化を機に、AWSアカウントを閉鎖(解約)した
# はじめに
2024年より、ルートユーザーからAWSアカウントへログインする場合、MFAの設定が必須となりました。
そもそも、利用しないAWSアカウントが存在したため、これを機に閉鎖(解約)を実施しました。
https://aws.amazon.com/jp/blogs/security/security-by-design-aws-to-enhance-mfa-requirements-in-2024/# 解約方法
– 「アカウント」をクリック![スクリーンショット 2024-05-01 9.05.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263017/e3835be3-5c93-c07f-0b1f-8246f405453b.png)
– 「アカウントを閉鎖」をクリック
![スクリーンショット 2024-05-01 9.09.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263017/