- 1. AWS Lambdaの関数URL(Function URLs)のユースケースを真面目に考える
- 2. aws_datasync_location_s3 で Ensure bucket access role has s3:ListBucket permission
- 3. ElasticBeansTalk + Spring boot でEverything(It’s you)してみた
- 4. Amazon FSx for NetApp ONTAPをAmazon EKSのPersistentVolumeのバックエンドストレージとして使ってみた(本編)
- 5. error configuring Terraform AWS Provider
- 6. Amazon AppFlowでIncremental Transferを使う
- 7. AWS Fargate Spot を使う前のメモ
- 8. AWS EC2がインターネット接続できない時の超凡ミス
- 9. AWSのIAM【個人的なお勉強アウトプット】
- 10. RDSが遅いと感じたら
- 11. AWS公式資料で挑むSCS認定(33)-こんな時どうする(全分野その10)
- 12. 【日次レポート機能実装編】開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その7~
- 13. オンプレのプライベート IP 足りない問題を PrivateLink で解決する(後編)
- 14. phpMyAdminのSQLインジェクション/インポート/エクスポートで403Forbidden
- 15. オンプレのプライベート IP 足りない問題を PrivateLink で解決する(前編)
- 16. vbaでWinSCP経由でs3.amazonaws.comにアクセスしアップロード等するには
- 17. AWS公式資料で挑むSCS認定(32)-こんな時どうする(全分野その9)
- 18. [ポートフォリオの技術選定について] Laravel Docker AWS GitHubActions
- 19. CloudTrailのConsoleLoginイベントが見えないので調べた
- 20. CloudFrontでリダイレクトするメモ
AWS Lambdaの関数URL(Function URLs)のユースケースを真面目に考える
AWS Lambdaに新機能 **Function URLs** が追加されました。
https://aws.amazon.com/jp/about-aws/whats-new/2022/04/aws-lambda-function-urls-built-in-https-endpoints/
https://aws.amazon.com/jp/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/
簡単にいうとAPI Gatewayなしに、HTTPSでのリクエストを受け付けられるようになるものです。
**API Gatewayなしで簡単になったよ!わーい!!** ではなく、今までできなかった何ができるようになったのかを真面目に考えてみました。
# Function URLsの認証
Function URLの認証は`IAM認証あり`と`認証なし`(パブリックアクセス)の二通りがあります。
IAM認証が使える環境であれば
aws_datasync_location_s3 で Ensure bucket access role has s3:ListBucket permission
## 事象発生条件
– terraform
– AWS DataSync利用
– クロスリージョンのs3が対象
– DataSyncはコピー先にいる## 事象
– terraformでクロスリージョン間のs3で、aws_datasync_location_s3を利用した時に以下のエラーが発生しました。“`
could not perform s3:ListObjectsV2 on bucket xxxxxx.
Access denied. Ensure bucket access role has s3:ListBucket permission.
“`## 原因
単純にバケットに権限がないのですが、コピー先の場合は、`bucket_access_role_arn`に権限がないだけなのですが、コピー元の場合は、その限りではありません。
“`terraform
resource “aws_datasync_location_s3” “xxx” {
s3_bucket
ElasticBeansTalk + Spring boot でEverything(It’s you)してみた
# Elastic Beanstalkって?

> AWS Elastic Beanstalk は、Java、.NET、PHP、Node.js、Python、Ruby、Go および Docker を使用して開発されたウェブアプリケーションやサービスを、Apache、Nginx、Passenger、IIS など使い慣れたサーバーでデプロイおよびスケーリングするための、使いやすいサービスです。
というのは漠然とわかっていたのですが、触ったことがなかったので、とりあえずElastic Beanstalk x Spring bootで何かやってみたかったから、ちょっと触ってみた程度です。
例によってEverything(It’s you)です。get叩いて1フレーズ返すだけですが・・
# アプリケーション作成

# はじめに
– [前々回の記事](https://qiita.com/seijitanabe/items/f16af0425d2f2f00af24)でAmazon EKSで使えるPersistentVolumeについて調べて、[前回の記事](https://qiita.com/seijitanabe/items/00e2051b8ee638aea518)で検証するための環境を準備した。
– 今回は、PersistentVolumeのバックエンドストレージとしてAmazon FSx for NetApp ONTAP(以下、FSx for ONTAP)を使ってみる。
– 今できている環境はこんな感じ。
# やってみた
## Astra Tridentのインストール
### まずはインストール方法の確認
– FSx for O
error configuring Terraform AWS Provider
# 結論
自分のケースではおそらくネット環境が不安定だったため
再度実行したらエラーは消えました。
エラーメッセージでググるとAWS CLIの認証設定周りでも出るため
やはりローカルからAWSに接続できない際に出るエラーのようです。# エラー
以下エラー本文です。“`
Error: error configuring Terraform AWS Provider: error validating provider credentials: error calling sts:GetCallerIdentity: operation error STS: GetCallerIdentity, exceeded maximum number of attempts, 19, https response error StatusCode: 0, RequestID: , request send failed, Post “https://sts.ap-northeast-1.amazonaws.com/”: dial tcp: lookup sts.ap-northeast-
Amazon AppFlowでIncremental Transferを使う
# Amazon AppFlowについて
Amazon AppFlowはSalesforceやSAPなどのSaaSアプリケーションとAmazon S3やAmazon Redshiftなどのサービス間をコーディングなしでデータ転送できるサービスです。
AWSでSaaSからデータをS3に取り込む方法としてはファーストチョイスとなるサービスになります。# データ連携のトリガについて
Amazon AppFlowではSaaSアプリケーションとデータ連携を行うトリガについて3種類のモードが用意されています。
– オンデマンド
– ユーザが手動でデータ連携を実行する方法
– イベント
– SaaSアプリケーションでのイベントをトリガとしてデータ連携を実行する方法
– イベントが利用できるかどうかはSaaSアプリケーションの機能に依存。Salesforceであれば、[Change Data Capture](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/chang
AWS Fargate Spot を使う前のメモ
## AWS Fargate Spotとは
– Fargate価格から**最大70%割引**
– EC2スポットインスタンスとコンセプト自体は同じ
– AWSクラウドの空きキャパシティを活用してタスクを実行できる
– AWSがキャパシティを必要とした時、Fargate Spotで稼働するタスクは**2分前の通知**とともに中断される
– 常時稼働すべきタスクとFargate Spotで稼働するタスクを併用して構成することができるFargate Spotを利用する場合、ECSクラスターを作成する際に**キャパシティープロバイダー**を指定する必要があります。
## キャパシティープロバイダーとは
– キャパシティープロバイダー戦略で使用されて、タスクが実行されるインフラストラクチャを決定する
– 各クラスターには1つ以上のキャパシティープロバイダーがあるFargateの場合、`FARGATE`と`FARGATE_SPOT`という2つのキャパシティープロバイダーがあります。これらは予約されているため、作成する必要がありません。
## キャパシティープロバイダー戦略とは
–
AWS EC2がインターネット接続できない時の超凡ミス
## まずは以下のリンクを確認してください!
普通はこれで解決するはず!
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-connect-internet-gateway/
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Internet_Gateway.html
https://www.early2home.com/blog/it/aws/post-2397.html
https://qiita.com/blackpeach7/items/d481b96b2946a247f06b
https://open-groove.net/amazon-ec2/when-deny-outbound-access-from-ec2/### そんな中、私がやった凡ミスはこちら、、、
##### 【DNS解決が「無効」になっている!!!】
VPCの詳細画面を開いで確認してみてください
ちなみにデフォルトでは「有効」になるはずなので、こんなミスをする輩
AWSのIAM【個人的なお勉強アウトプット】
## 参考図書
https://www.amazon.co.jp/%E5%9B%B3%E8%A7%A3%E5%8D%B3%E6%88%A6%E5%8A%9B-Amazon-Web-Services%E3%81%AE%E3%81%97%E3%81%8F%E3%81%BF%E3%81%A8%E6%8A%80%E8%A1%93%E3%81%8C%E3%81%93%E3%82%8C1%E5%86%8A%E3%81%A7%E3%81%97%E3%81%A3%E3%81%8B%E3%82%8A%E3%82%8F%E3%81%8B%E3%82%8B%E6%95%99%E7%A7%91%E6%9B%B8-%E5%B0%8F%E7%AC%A0%E5%8E%9F/dp/4297108895/ref=asc_df_4297108895/?tag=jpgo-22&linkCode=df0&hvadid=342458612368&hvpos=&hvnetw=g&hvrand=4074056018199486930&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint
RDSが遅いと感じたら
わりと常識かも知れないが、RDSを使っていてconnectやクエリが徐々に重くなって来た場合は、
サーバスペックを上げるよりもストレージ容量を増やすほうが効果的(汎用SSDを使っている場合、ストレージ容量がそのままIOPS性能に響くため)
推奨は100GiB以上
ただしデフォルト20GiBの時よりも800円/月くらい高くなるので個人でやってる場合は注意が必要
AWS公式資料で挑むSCS認定(33)-こんな時どうする(全分野その10)
##### [前回] [AWS公式資料で挑むSCS認定(32)-こんな時どうする(全分野その9)](https://qiita.com/mingchun_zhao/items/22adf680b663c1ebde7b)
## はじめに
今回も引き続き、「こんな時どうする」集の作成です。
## 分野1: インシデント対応
– Amazon S3バケットへの不正アクセスが報告された、S3バケットに保存された大量データに意図しない機微情報が含まれていないか確認したい
– Amazon Macieを使用し、S3バケットに機微情報が含まれていたら検出
– ※ Amazon Macieはデータセキュリティとデータプライバシーのフルマネージドサービスで、機械学習とパターンマッチングを使用しAWS上の機密データを検出して保護する
– ※ Amazon Macieが解決する課題
– アカウント内のS3バケットの利用状況の可視化、格納されている大量オブジェクトの可視化
– 設定に基づき、指定されたバケット内の機微情報の評価・検出を効率的に実行
【日次レポート機能実装編】開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その7~
# はじめに
22年度文系学部卒のたいきです。この記事では、システムの開発経験もないのに、見よう見まねで「プロジェクトごっこ」をしていきます。
・保有資格 : 応用情報技術者・AWS-SAP
・プログラミング言語:軽くPython
本記事を最初から読んでいただける方は「[開発未経験がクラウドを企業に導入するプロジェクトごっこをしてみた~その1~](https://qiita.com/Ishii_Taiki/items/e3035c12b31385f8156b)」から読んでいただけると嬉しいです。
# 本記事について
今回は、DynamoDBに格納されたきのこの山とたけのこの里の記録を、日ごとにクエリしCSVファイルに格納していきます。全体のアーキテクチャの「Batch Processing」の部分を実装していきます。
# 前回のコードのちょ
オンプレのプライベート IP 足りない問題を PrivateLink で解決する(後編)
オンプレのプライベート IP 足りない問題についてと、PrivateLink の基本的な特徴については、[こちらの前編](https://qiita.com/hiroki_okuhata_int/items/1887a715f42438e6846b) を参照してください。
# なぜプライベート IP 足りない問題への対策になるのか?
– オンプレ環境からは、AWS 上の新システムと通信する際に、ルーティング上、直接通信するのが各図の真ん中にある、ブリッジ VPC のみになるためです。
– オンプレ環境からは、PrivateLink の向こうにある、新システム用の VPC に割り当てたプライベート IP レンジについては不可視になります。
– PrivateLink は主に NLB を使用するため、基本的に各 AZ ごとの ENI に 1IP ずつしか使いません。
– さらに、PrivateLink では、インターフェースエンドポイントのポートごとに NAPT 通信先になるシステムを設定できるため、1 本の PrivateLink で多数の連携先システムに対応できます。
– このた
phpMyAdminのSQLインジェクション/インポート/エクスポートで403Forbidden
### 事象・問題の発生 (´ε`;)
PhpMyAdminのSQLインジェクション/インポート/エクスポートしようとして、403Forbiddenに。
SQLインジェクション、インポート、エクスポートができない状態### 原因
AWSで環境を構築していたため、WAF(Web Application Firewall)によるブロックが原因でした。### 対応・解決
AWSのWAFでURIに特定の文字列が含まれるリクエストを許可する設定を追加
追加方法については、下記サイトを参考にしました。– AWS WAFで特定IPのリクエストからアクセス許可しよう https://www.sunnycloud.jp/column/20210601-01/
– AWS WAFでURIに特定の文字列が含まれるリクエストをブロックする https://www.wafcharm.com/blog/block-specific-string-in-uri-jp/
– AWS WAFの運用方法 https://www.cloudsolution.tokai-com.co.jp/white-pape
オンプレのプライベート IP 足りない問題を PrivateLink で解決する(前編)
# オンプレのプライベート IP 足りない問題とは?
– AWS 上に新しいシステムを構築するとします。
– この時、あなたは AWS 上に構築する新システムの設計者だとします。
– ただし、新しいシステムは、オンプレにあるいくつかのシステムと DirectConnect などを介して通信する必要があるとします。
– この時、通常ですと、ルーティング上、オンプレにあるシステムと通信可能なプライベート IP レンジを AWS 側の新規システム側に払い出して割り当てる必要があります。
– このため、あなたはオンプレ側のネットワーク担当者、またはそれに相当する方と、AWS 上の新システムに払い出すプライベート IP レンジについて協議している状況だとしましょう。この状況で、あなたは衝撃の事実を告げられます。
“`
オンプレのネットワーク担当者:
「AWS 側の新システムに払い出すプライベート IP レンジって、/26 を1個で足りる?」あなた:「えっ!?」
( ええっと、/26 のサブネットマスクって、IP たったの64個分、ってこと?!
大きいシステ
vbaでWinSCP経由でs3.amazonaws.comにアクセスしアップロード等するには
諸々割愛
1、vba のshellでバッチファイルを実行する。
2、そのバッチファイルは
s3.amazonaws.comのシークレットキーをパイプで前に置いておき
winscp.comを起動してWinSCPでのコマンドが入ったテキストファイルを読みに行く動作。3、WinSCPでのコマンド群はtxtファイルで用意しておく。
アクセスキーとs3.amazonaws.comを開くコマンドなどを入れておく。で操作が可能でした。
WinSCPは全ユーザ用としてProgram Files (x86)\WinSCPに
インストール済みとしてソースを見ながら再度説明していきます
“`vba:control_winscp.vb
sub control_winscp()
Shell (“C:\Program Files (x86)\WinSCP\execute_upload.bat”)
end sub
“`
これで execute_uoload.bat というバッチを実行。多分場所はどこでも大丈夫なはず“`bat:execute_upload.bat
@REM
@e
AWS公式資料で挑むSCS認定(32)-こんな時どうする(全分野その9)
##### [前回] [AWS公式資料で挑むSCS認定(31)-こんな時どうする(全分野その8)](https://qiita.com/mingchun_zhao/items/37b0166d6b16aded665c)
## はじめに
今回も引き続き、「こんな時どうする」集の作成です。
## 分野1: インシデント対応
– ウェブサイトの特定ページに大量リクエスト発生、アクセス制限したい
– AWS WAFのレートベースのルールを使用し、ウェブサイト特定ページへのアクセスを制限
– レートベースのルールに文字列一致条件を追加し、ログインページへのリクエストを制限する例
– リクエストを「URI」を用いてフィルターリング
– 一致の種類は「で始まる」
– 一致する値は「/login」(リクエストURI部分のログインページを識別するもの)
– レート制限を5分あたりxxx回リクエストと指定
– レートベースのルールをウェブACLに追加し、残りのサイトに影響することなく、IPアドレスごとに
[ポートフォリオの技術選定について] Laravel Docker AWS GitHubActions
## はじめに
今回ポートフォリオとして、自宅の食品や日用品を管理できるような在庫管理アプリを作りました。
以下の技術を使って作成しました。
この記事では各技術の選定理由についてまとめていこうと思います。## 使用技術
フロントエンド:HTML5、CSS、Tailwindcss2.2.15、Livewire
バックエンド:PHP7.4.15、Laravel8.34.0、Jetstream1.0
インフラ:Docker20.10.2、nginx1.18、MySQL8.0.23/phpMyAdmin、AWS EC2 ALB S3 RDS
デプロイ:GitHubActions(CI/CD) Deployer## 技術選定理由
### フロントエンド
フロントエンドは主にTailwindcss(テイルウィンドシーエスエス)を使って実装しました。
TailwindcssはCSSのフレームワークです。以下のような理由から技術選定。
・`ユーティリティファースト`
→CSSは使わずに`TailwindCSSが提供しているクラスのみを使用して実装`する考え方で、`クラスを追加するだけで定義
CloudTrailのConsoleLoginイベントが見えないので調べた
学習メモ。
# CloudTrail とは
[AWS CloudTrail とは、](https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)
– AWS上でおこなわれるAPIアクションがすべて記録される。
– 監査に利用できる。
– アカウント作成時にデフォルトで有効になり、イベント履歴は90日間有効。
– 90日以上記録を保持する場合は「証跡の作成」が必要。
– 必要に応じてCloudTrail Insightsを有効化して、異常なアクティビティを特定することも可能。# AWS CloudTrail のイベント履歴を見てみる
[AWS CloudTrail の開始方法のチュートリアル](https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-tutorial.html)の「ステップ 1: イベント履歴で AWS アカウントのアクティビティを確認する」を参
CloudFrontでリダイレクトするメモ
## CloudFront Functionsを使う
CloudFront Functionsを使うと、ビューワー(クライアント)に送信する前にHTTPレスポンスを変更することができる。
CloudFront Functionsの利用例にも下記の記述がある。> URL リダイレクトまたは書き換え: リクエスト内の情報に基づいてビューワーを他のページにリダイレクトしたり、すべてのリクエストをあるパスから別のパスに書き換えたりできます。
> https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/cloudfront-functions.html## CloudFront Functionを作成する
CloudFrontのマネジメントコンソールから関数を作成し、下記のような関数コードを書いて発行する。
“`handler.js
function handler(event) {
var response = {
statusCode: 302,