- 1. リザーブドサービス一覧の備忘録
- 2. Route53の複数値回答ルーティングの通信の流れ
- 3. 備忘_SpringBootでS3のファイル操作(awssdk version2.2136)
- 4. 【AWS】セキュリティグループのルール設定の自動化をしてみた
- 5. Railsで作られたWebサービスをElasticBeanstalkからECS on Fargateに移行した話し(全体概要)
- 6. Docker学習 1日目
- 7. PHP で QuickSight の組み込み用 URL を API で呼び出して生成する
- 8. 【AWS】CloudWatchLogs→Lambda→SQS連携方法
- 9. サーバーのタイムゾーン設定が原因でSSMがエラーになっていた
- 10. AWS WAF 動画ファイルアップロード処理で誤検出されてしまう問題への対応
- 11. AWS DBS備忘録
- 12. 高校生がAWSの試験を受けに行ったら失格になりかけた話
- 13. AWS Identity Center へのプロビジョニングで SystemForCrossDomainIdentityManagementServiceIncompatibleFiltering が発生した場合の解決策について
- 14. 【Amazon SES】サプレッションリストからメールアドレスを削除する方法
- 15. AWSLambdaを使用してRDSからCSVを取得してメール送信
- 16. Amazon InspectorでEC2インスタンスの脆弱性診断してみました。
- 17. 【Databricks】PrivateLink 接続について調べてみた
- 18. 【備忘】Amazon S3の概要_前編
- 19. 【AWS CDK / SQS+Lambda】SQSからのLambda呼び出しについて検証してみた
- 20. CloudWatchのfilterでOR
リザーブドサービス一覧の備忘録
### リザーブド系
ーリザーブド
インスタンス
キャッシュノード
キャパシティ
ノード#### 対象サービス
インスタンス →EC2,RDS,OpenSearch Service(旧:ElasticSearch Service 2021年9月8日に変更)
キャッシュノード →ElastiCache
キャッシュキャパシティ →DynamoDB,CloudFront
キャッシュノード →Redshift以上となります。
ここは違う等々ございましたら教えていただけますと幸いです。—
ありがとうございます参考文献[円安対策にも有効!「Savings Plans」AWSの「リザーブドインスタンス(RI)」とは?比較や概要、Amazon EC2での料金事例も紹介](https://cloudnavi.nhn-techorus.com/archives/1738#:~:text=%E3%83%AA%E3%82%B6%E3
Route53の複数値回答ルーティングの通信の流れ
AWS Route53の複数値回答ルーティングの通信の流れを理解するのに時間がかかったので備忘録。
## Route53 複数値回答ルーティングの通信の流れ
#### 前提
Route53の複数値回答ルーティングを使って`example.com`に対して以下3つのIPアドレスを登録しておく。
10.0.0.1
10.0.0.2
10.0.0.3#### 処理の流れ
1. ブラウザでexample.comにアクセス
2. Route53が登録されている3つのIPそれぞれに対してヘルスチェック
3. ヘルスチェックでOKだったIPをブラウザに返す(3つともOKだったら3つとも返す)
4. ブラウザ側で受け取った3つのIPアドレスのうちどれにアクセスするか決めてサーバーにアクセス(ここの選択基準はブラウザによってことなる)
備忘_SpringBootでS3のファイル操作(awssdk version2.2136)
# pom.xml
“`
software.amazon.awssdk
s3
2.21.36
LombokとかDB接続周りとか
“`# Service
### 接続設定
環境変数にAWSのアクセスキーとシークレットキーを設定すれば実行時に読み込む。
また、AWS上で動かす場合は実行するロールのものを参照するような記述があった気がする(AWS公式見て)
“`
@Service
public class HogeImpl implements Hoge {@Value(“${aws.region}”)
private Region region;@Value(“${aws.s3.bucket}”)
private String bucket;// 署名付きURL発行を行うために必要
private S3P
【AWS】セキュリティグループのルール設定の自動化をしてみた
ごきげんいかがですか、
この度、AWSの大規模プロジェクトでセキュリティグループの設定をさせていただく機会があったので、
その時工夫した点などを共有したいと思います😉## 1.はじめに
現在のプロジェクトで、複数のセキュリティグループのルール設定を先輩から任せていただきました。
サーバによっては100近くもインバウンドルールがあり、それを複数のセキュリティグループで設定するというのは、とても骨の折れる作業でした、、
#### 1.1 当初の業務内容
タスクを振っていただいた当初は以下のように手動で設定していました。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3583957/73b7ede3-f2ad-d301-e9be-4c956d89b36b.png)
サーバによっては100以上もインバウンドルールがあったのでとても大変でした、、、
#### 1.2 結果と課題
結果として、ルール設定に多大な時間がかかり、設定時に二人一組で確認したにも関わらず、単体テストで
Railsで作られたWebサービスをElasticBeanstalkからECS on Fargateに移行した話し(全体概要)
# はじめに
医療系クラウドサービスを提供しているレイヤードという会社で働いています。弊社で提供しているWeb問診システムSymviewはRuby on Railsに構築しており、2017年からElasticBeanstalk(以下EB)を利用してオーケストレーション及びDeploymentを管理しておりました。
EBの機能的にはそれなりに満足していたし、長年使っていて運用ノウハウも溜まっていたのですが、主に下記に記載の理由からECSに乗り換えることにしました。:::note warn
本記事では完成形の移行にフォーカスして書いております。
アーキテクチャの選定や実装の試行錯誤、設定等の細かい話しは省いていますのでご了承ください。
:::## 課題
– EBがサポートする **プラットフォームの更新が遅く、最新バージョンのRubyをなかなか利用出来ない**
– オートスケールやデプロイ時のEC2のプロビジョニングでライブラリのインストールが毎回実施されるため、ライブラリの配布サイトの状態(サイトダウン等)によってはダウンロード失敗等でプロビジョニングエラーが発生する
Docker学習 1日目
Dockerの学習を始めました。
まだ全体の流れがイメージできていない、メモのような内容です。
間違っているところがあるかもしれませんし、
読みづらい記事になっているかと思います。。。
理解が深まり次第、その都度、更新・訂正します!
(間違いのご指摘や、アドバイスいただければとても嬉しいです!)# 《目的》
1. Dockerの理解
1. docker-composeの理解
1. コンテナオーケストレーションツール(AWS ECS)の理解## 1-1 Dockerの構成要素
以下は、Docker hubからcentosのイメージをダウンロードして、さらにcurlの機能を搭載してカスタムしたDockerimageをDocker hubにプッシュする際の図。![スクリーンショット 2024-01-23 19.34.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570384/816f0ab9-99ab-9c5b-3168-6becf74c9a28.png)
* Docker Clie
PHP で QuickSight の組み込み用 URL を API で呼び出して生成する
# はじめに
QuickSight で埋め込み用 URL を生成し、好きな最初にダッシュボードや編集画面を埋め込むことができます。よくある構成として、API Gateway と Lambda で URL を生成して埋め込む方法がありますが、今回は PHP を使った Web 画面に QuickSight を埋め込む方法を紹介します。
なお、この記事の PHP の Web サーバーの構成はあくまで手元での動作確認として利用するため、PHP 付属のものを利用しています。本番環境では、パフォーマンスや機能、セキュリティの面で Apache や Nginx 等と連携してください。
# 前提条件
PHP から QuickSight の埋め込みを利用するため、AWS SDK for PHP を利用する必要があります。自分の環境だと以下のようにインストールしましたが、AWS Document を参考に準備が必要です。
composer のインストール
“`
php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setu
【AWS】CloudWatchLogs→Lambda→SQS連携方法
## はじめに
本記事は Lambda を使ったことが無い自分の備忘として、
Lambda 構築までの流れをメモした記事となります。## 構成
「CloudwatchLogs」→「Lambda」→「SQS」のシンプルな構成とします。
■処理フロー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1764568/e8d2b446-752d-f000-6fe7-d478245d3f19.png)## 実装してみた
### Amazon SQS 作成
今回の構成で SQS は Lambda からのメッセージをキューに保持するだけなので、
以下 CLI コマンドで簡易的に作成。“`bash
aws sqs create-queue –queue-name
# 例:aws sqs create-queue –queue-name testqueue
“`### AWS Lambda 作成
今回は AWSCLI を利用して Lambda の作成を行う。
サーバーのタイムゾーン設定が原因でSSMがエラーになっていた
## 概要
諸事情によってRockey Linuxを利用してリモートに開発環境を作成し開発を行っています。この開発用サーバーからセルフホストのGitLabサーバーへ通信する際にAWS SSMを立ち上げています。
“`jsx
aws ssm start-session –target i-xxxxxxxxxxxxx –document-name AWS-StartPortForwardingSession –parameters portNumber=”xxx”,localPortNumber=”xxxxx”
“`このようなコマンドを実行すると403エラーが発生していました。
“`jsx
An error occurred (403) when calling the StartSession operation: Server authentication failed:Forbidden.
“`この解決にLinu
AWS WAF 動画ファイルアップロード処理で誤検出されてしまう問題への対応
## 概要
mp4ファイルをアップロードしたときに、2段階でWAFのルールセットによりブロックされた。
対応策についてまとめる。
## 1つ目`SizeRestrictions_BODY`
これはWAFのコアルールセットが8KBを超えるボディを持つリクエストをはじくということ。
動画ファイルは5Mくらいあったため、`SizeRestrictions_BODY`に引っかかっていた。
デフォルトアクションがBlockのため一時的に`SizeRestrictions_BODY`のみCountにオーバーライドして動作を検証した。
## 2つ目`CrossSiteScripting_BODY`
アップロードしようとしたmp4のファイルが引っかかってしまった。
https://tech.isid.co.jp/entry/8_things_i_wanted_to_know_about_aws_waf
こちらの記事を参考にすると、ファイルアップロード処理では`CrossSiteScripting_BODY` 以外にも `SQLi_BODY`、`WindowsShellCommand
AWS DBS備忘録
## RDS
#### リードレプリカ
〇リードレプリカを持つDBインスタンスを停止したい場合→リードレプリカを削除したのち、DBインスタンスを停止させます。**リードレプリカを持ったままDBインスタンスは停止できません。**
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_StopInstance.html
#### ポイントインタイムリカバリ(PITR)
〇ポイントインタイムリカバリを有効にしたい場合・自動バックアップを設定する必要があり
→バックアップ保持期間を0以外に設定する。→その上で以下の設定が必要。
【MySQL】…バイナリログ記録(バイナリロギング)を有効にする。## Aurora MySQL DB
#### ■ 最大接続数(max_connections)
〇最大接続数(max_connections)を増やしたい場合DBクラスターへの接続が多い場合、接続エラーが起きる場合があります。
インスタンスクラスによって最大接続数のデフォルト値が決ま
高校生がAWSの試験を受けに行ったら失格になりかけた話
# 言いたいこと
:::note info
未成年のみんな!
AWSの認定試験に行くときは未成年の申込みだけでなく同意書もテストセンターに持っていこうな!
:::# なんで起こったの?
https://aws.amazon.com/jp/certification/faqs/
このサイトを確認して未成年の手続きを済ませたんですよね…
同意書もメールで送信してあとはテストを受けるだけ!
そう思っていた時期が私にもありました。サイトにも返信のメールにも身分証を持って来いという文言しかなく
安心していた僕は同意書を持っていかなかったのです。
今思うと一応で持っていくだけで済んだのに。# それからどしたの
テストセンターに開始20分前に到着したあと手続きを開始しました。
順調に進む中「もしかして未成年ですか?」と受付の方からの一言。
自分はサイトをしっかり確認して予習していたので– 親の身分証明書
– 子供の身分証明書この2つを意気揚々と出しました。大丈夫これで通ると思った束の間
「同意書はお持ちでしょうか?」メールで同意書を送信済みでかつサイトにも載ってい
AWS Identity Center へのプロビジョニングで SystemForCrossDomainIdentityManagementServiceIncompatibleFiltering が発生した場合の解決策について
## 環境
– IdP として Azure AD を利用している
– AWS Identity Center(旧 AWS SSO)で Azure AD を外部プロビジョニング元として設定している## 起きた事象
– Azure AD で異なるドメインの外部ユーザを削除してしまった
– AWS Identity Center でも該当の外部ユーザが無効化された
– Azure AD 側で削除した外部ユーザを再招待し、外部ユーザを新規作成した
– AWS Identity Center へのプロビジョニング時に該当のユーザの新規作成に失敗し、SystemForCrossDomainIdentityManagementServiceIncompatibleFiltering というプロビジョニングエラーが発生した。
– その結果、外部ユーザは AWS SSO だけ使えない、という状況が発生した## 解決策
– AWS Identity Center 側で該当の外部ユーザを削除し、再プロビジョニングを行って該当のユーザを復活させた
– 外部プロビジョニングを設定し
【Amazon SES】サプレッションリストからメールアドレスを削除する方法
### イントロダクション
Amazon SES(Simple Email Service)を利用する際、特定のメールアドレスがサプレッションリストに追加されることがあります。この記事では、SESのサプレッションリストからメールアドレスを削除する簡単な手順を解説します。### サプレッションリストとは?
Amazon SESのサプレッションリストは、バウンスや苦情が報告されたメールアドレスが自動的に追加されるリストです。これにより、SESは不要なメール送信を防ぎます。### アドレスをリストから削除する理由
サプレッションリストに追加されたアドレスへのメール送信はSESによってブロックされますが、誤って追加された場合や受信者が再度メールの受信を希望する場合、リストから削除することが必要です。### 削除のステップ
1. **AWS マネジメントコンソールにログイン**:
まず、SESを管理しているAWSアカウントでマネジメントコンソールにログインします。2. **サプレッションリストの確認**:
SESダッシュボード内でサプレッションリストにアクセスし、削
AWSLambdaを使用してRDSからCSVを取得してメール送信
# 1.はじめに
はじめまして!株式会社TechoesインフラチームのYです!
今年の4月で2年目を迎える初心者のクラウドエンジニアです。
今回からTechoesの採用強化、学習内容のアウトプットを目的としてQiitaで技術ブログを書いていこうと思います。
第1回目として最近学習したAWSLambdaを使ってRDSからCSVを取得してメール送信する手順を投稿します。# 2.前提
– 言語:Python 3.10
– ライブラリ:pymysql
※layerとしてS3に保管
– RDS:Aurora MySQL
– RDSの認証情報はSecretManagerから取得
– メール送信にはSESを使用
# 3. CFNテンプレート
Lambda関数を作成・管理するテンプレートです。レイヤーはあらかじめS3に保管しておいたものを使用します。
“`yaml:lambda.yaml
Resources:
LambdaRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Amazon InspectorでEC2インスタンスの脆弱性診断してみました。
## はじめに
ソフトウェアの脆弱性診断等はよく耳にする言葉ですが、Amazon Inspectorをご存じでしょうか?
Amazon Inspectorは、AWSのマネージドサービスで、簡単にAmazon EC2インスタンスやECRコンテナイメージ、Lambda関数などに含まれるソフトウェアの脆弱性や意図しないネットワークの露出がないかをスキャンしてくれるサービスです。簡単な設定で、すぐにAmazon Inspector自動でスキャンを実行し、検知された脆弱性の情報を、管理してくれる為、とても簡単に定期的に診断が実行できます。
診断のタイプとしては、以下の3つの診断を実施してくれます。
### Package脆弱性
一般的な脆弱性と暴露 (CVE) AWS にさらされている環境内のソフトウェアパッケージを特定する。
LinuxのCVE 検出は、ベンダーのセキュリティアドバイザリによってリリースから 24 時間以内にAmazon Inspectorに追加
Windows用のCVE検出は、Microsoft がリリースしてから 48 時間以内に Amazon Inspectorに
【Databricks】PrivateLink 接続について調べてみた
# 背景・目的
DatabricksでAWS PrivateLinkを構成する[記事](https://qiita.com/taka_yayoi/items/aeb5002308d8e8f5fd49)を見つけたので、調べてみました。# まとめ
AWS PrivateLinkを使用したDatabricksへの接続は、下記の特徴があります。|特徴 | 説明|
|:–|:–|
|概要 |フロントエンドPrivateLinkとバンクエンドPrivateLinkがある。
・フロントエンドPrivateLinkは、ユーザとDatabricksコントロールプレーン間の接続
・バックエンドPrivateLinkは、Databricksアカウント内のコントロールプレーンとユーザアカウントのコンピュートプレーン間の接続|
|目的| トラフィックをパブリックNWに公開しないですむ|
|前提| ・E2バージョンのプラットフォームであること
・Enterprise の料金プランであること|
|制約| ・一度作成したNW構成や、VPCエンドポイントの登録は更新ができない|
【備忘】Amazon S3の概要_前編
# はじめに
##### ~AWS学習アウトプット第2弾~
AWS未経験者の私が学習したことをアウトプットし、将来的にはSAA合格を目指します。
今後も各サービスの学びを備忘として残していこうと思います!今回は、 **Amazon S3** の基本的な内容をまとめます。
内容が多いため、前編後編に分けて整理していきますので、よろしければ次回もご覧ください!# 目次
・Amazon S3とは
・Amazon S3の特徴
拡張性(extensibility)
耐久性(Durability)・可用性(Availability)
・データ保存方法
・S3の機能
バージョニング
MFA Delete
ライフサイクルポリシー
オブジェクトロック
クロスリージョンレプリケーション
マルチパートアップロード
S3 Transfer Acceleration
S3のデータ整合性モデル
Webサイトホスティング
署名付きURL
・おわりに
・参考# Amazon S3とは
**Amazon Simple Storage Service (Amazon S3) は、拡
【AWS CDK / SQS+Lambda】SQSからのLambda呼び出しについて検証してみた
# はじめに
SQSトリガーのLambda実行について、色々と検証してみたくなったので試してみた。## 対象とする読者
* SQSの基本は知ってるけど、細かい動作まで知りたい人
* SQSトリガーのLambda実行環境をcdkで構築したい人# 結論)わかったこと
* SQSのキューがFIFOの場合、紐づくデッドレターキュー(DLQ)も強制FIFO
* LambdaのOnSuccess/OnFailureに紐づけるキューはFIFO不可
* LambdaのDLQもFIFO不可
* 最大受信回数到達時、Lambdaエラー→可視性タイムアウト→DLQへ送信の順番
* SQSからのLambda実行は非同期呼び出しではない
→ LambdaのOnSuccess/OnFailure送信先やDLQは効かない# 検証環境構築
以下の環境を構築する。
CloudWatchのfilterでOR
単純に `filter` を分けて書いてもいいけど `OR` (`AND`)使えるみたいです。
連続して出るはずのログを抽出するときに使いました。“`
| filter @message like /aaa/ or @message like /bbb/
“`