- 1. AWSのRoute53でStripe Checkoutにカスタムドメインを設定する
- 2. AWSのメッセージングサービス SQS、SNS、EventBridge の主な機能比較
- 3. 【AWS】WEBサーバー構築
- 4. CloudWatchLogsで取得したログを加工してEFSに格納するLambda作ってみた
- 5. AWS Step Functions入門
- 6. AWS-RDSで本番環境のSnapshotを開発環境に展開する方法
- 7. VPC Network Access Analyzer でネットワークセキュリティを確認してみる
- 8. LambdaのSecurityGroupが削除できなくて困った話
- 9. AWS LambdaでPython基礎~Amazon S3とAmazon Translateを利用する
- 10. AWS公式資料で挑むSCS認定(43)-こんな時どうする(全分野その20)
- 11. EC2のproxy設定をSSM(RunCommand)と同期
- 12. AWS Cloud9でPython基礎~Amazon S3とAmazon Translateを利用する
- 13. KMSを使ってS3バケットを暗号化してみた!
- 14. phpMyAdmin を ECS on Fargateで構築
- 15. Laravelでcomposer updateでメモリオーバー
- 16. AWS ALB スティッキーセッション メモ
- 17. API Gateway – Lambda構成でのアクセス制御方法 メモ
- 18. AWS公式資料で挑むSCS認定(42)-こんな時どうする(全分野その19)
- 19. AWS Cloud9でPython基礎~Amazon S3を利用する
- 20. ECSで発生したエラー文をひたすら掲載する
AWSのRoute53でStripe Checkoutにカスタムドメインを設定する
Stripeが提供するリダイレクト型の決済APIがStripe Checkoutです。
通常リダイレクト先の決済ページは、`https://checkout.stripe.com`を含むURLです。
もし表示されるURLを、独自のストア・サービスのドメインに変更したい場合は、Stripe Dashboardから設定を行う必要があります。
この記事では、Stripe DashboardとAWSのDNS管理サービスRoute53を利用して、カスタムドメインを設定する方法を紹介します。
## 作業前の注意点
– カスタムドメインは**月10USD**の有料オプションです。
– Route53管理画面にアクセスし、DNSの設定が行える状態であることをご確認ください。
– **Step3**の接続チェックに**3時間半以上**かかります。
ワークショップなどで紹介する場合には、Step2までを早い段階で済ませる構成にしましょう。## Step1: Stripe Dashboardから、設定したいドメイン名を登録する
カスタムドメインの設定は、[Stripe Dashboard
AWSのメッセージングサービス SQS、SNS、EventBridge の主な機能比較
# はじめに
本記事は、AWSの***メッセージングサービス***である [SQS](https://aws.amazon.com/jp/sqs/)、[SNS](https://aws.amazon.com/jp/sns/)、[EventBridge](https://aws.amazon.com/jp/eventbridge) の主な機能を簡単に比較してまとめたものになります。(2022/04/16現在)
サービスを選定する時の気づきになれば幸いです。各サービスの機能の詳細は、AWS Black Belt Online Seminarの資料を一読してから、詳細はAWSのドキュメントを読むようにすると頭に入りやすいです。
***SQS***
[AWS Black Belt Online Seminar SQS](https://d1.awsstatic.com/webinars/jp/pdf/services/20190717_AWS-BlackBelt_AmazonSQS.pdf)
[Amazon Simple Queue Service のドキュメント](https://d
【AWS】WEBサーバー構築
# [備忘録](#-2.備忘録)
***前提***
* ApacheやPHPが最初からインストールされてない
* その他の設定は踏み台サーバーのイメージを引き継いでいる***Apacheインストール***
“`
yum install httpd
“`***PHPインストール***
“`
yum -y install –enablerepo=remi,remi-php73 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-pear php-pecl-apc-devel php-mysqlnd zlib-devel
“`***Apache設定***
“`
cd /etc/httpd/conf.d//welcom.conf削除
rm welcome.conf//autoindexも削除
rm autoindex.conf
“`一階層戻ってconfに入る
“`
cd ..
cd conf
“`まずはバックアップ
CloudWatchLogsで取得したログを加工してEFSに格納するLambda作ってみた
# はじめに
日次でCloudWatchLogsからログを取得し、加工してEFSに格納する独自スクリプトを動かしてた。
だが以下の点でイケてないスクリプトでたちまち処理が失敗していた。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187693/0257c3e3-e6d1-c1f0-f021-c173d2ddf097.png)
図1:既存構成:::note alert
こんな感じ
・サービス利用増により、ログ量が莫大し処理が追いつかずにMaintenanceWindowsの**上限値5時間**をオーバしてしまう
・古き良き(?)シェル芸でログを加工しておりコードは煩雑化・処理は非効率で処理が行われてる
:::## 実装方式
上記を解決するにはスクリプトを改修したり、そもそものサーバスペックを上げたりするといった流れになるがログ量は増える一方であったり、この処理のためにスペック上げるのは~~贅沢・贅肉すぎるし~~もったいないという形で以下で実装してみた
![image
AWS Step Functions入門
## はじめに
皆さんStep Functions使ってますか?
今回はStep Functionsがいかに簡単で可能性があるのか、を伝えるために入門記事を書いてみようと思います。
Step Functionsは基礎部分を理解すればある程度使いこなすことができるので、皆さんぜひ使ってみてください。## 作るステートマシンの全体像
今回はサンプルとして複数のバケットを空にするようなステートマシンを作成します。
画面からバケットを空にするのはボタンを押すだけなので簡単ですが、自動化しようと思うとコードを書かないといけないので面倒です。
GUIを使ってステートマシンを作って、定期起動すれば自動化できるので、ノーコードで実現できるので便利ですよね?ね???## 下準備
まず、名前は何でもいいのでバケットを2つ作成してください。
また、それぞれのバケットに適当なファイルを保存してください。今回は以下2つのバケットを作成して、それぞれのバケットにファイルを3つ作成しました。
* step-functions-sample-1
* step-functions-sample-2
AWS-RDSで本番環境のSnapshotを開発環境に展開する方法
開発環境のRDSを本番環境のデータで置き換える必要があったので、その方法のメモです。
そこまで複雑な手順ではないですが、忘れてしまいそうなので手順をまとめておこうと思います。# 本番環境でSnapshotを作成
AWSのマネジメントコンソールから対象DBのSnapshotの作成を行います。
![2022-04-17_17h17_49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626057/07a51e39-bfb3-a40f-60b2-f642f6096b0a.png)# Snapshotの共有
作成されたSnapshotを選択し、スナップショップの共有(Share snapshot)を選択します。
![2022-04-17_17h26_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626057/55a349b1-0b0e-889d-5b66-89a2d64a585d.png)> この時に、以下のよ
VPC Network Access Analyzer でネットワークセキュリティを確認してみる
AWS VPC にネットワークセキュリティを確認する [Network Access Analyzer](https://aws.amazon.com/jp/blogs/news/new-amazon-vpc-network-access-analyzer/) 機能があることに気がついたので、ちょっと試してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/09c796d0-dbbd-80a4-53bb-475143d5c192.png)
情報はこのあたりから。* [[新機能] ネットワークがアクセス要件を満たしているか確認するのに便利な VPC Network Access Analyzer がリリースされました! #reinvent](https://dev.classmethod.jp/articles/new-amazon-vpc-network-access-analyzer/)
* [ネットワークが目的どおりに設定されているか確認できる!Amazon
LambdaのSecurityGroupが削除できなくて困った話
# はじめに
AWSの運用として、「このLambda使わなくなったから削除してー」と言われ、
リソースの削除後に、使われなくなったSecurityGroup(以下SG)も削除する。
というのはよくある運用かと思います。その際に、SGが削除できない、正確にはLambdaのENIが自動で削除されなくて困った
という話になります。# なにが起きたか
① VPC内のLambdaを削除② Lambdaの実行ロールを削除
③ LambdaのSGを削除するために、
念の為、削除対象のSGがネットワーク・インターフェースにアタッチされていないか確認。
→あれ、まだ使われてるな…(削除したLambdaのENIが削除されていない)
時間かかってるだけかな、、明日になって確認してみるか。。
→翌日、まだアタッチされている。SGの削除を試みるも、もちろんネットワーク・インターフェースにアタッチされているため削除できない旨のエラーがでる。# 原因
EC2などと同様に、Lambdaも削除後、使用していたENIも自動的に削除されるはずだが、
その際に、Lambdaの実行ロールを使用しているため、E
AWS LambdaでPython基礎~Amazon S3とAmazon Translateを利用する
2022/4/6(水)に行われたAWSセミナー「Pythonの基礎から学ぶ!サーバーレス開発はじめの一歩」で構築したサーバレスアーキテクチャ環境の復習。
# 構成図
AWS Lambdaを起動し、S3バケットにアップロードした英語のテキストを、翻訳して返す簡易アプリケーションをPyhonで開発する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/b97c0559-a875-582e-111c-fd8f551440a1.png)[「AWS Cloud9でPython基礎~Amazon S3とAmazon Translateを利用する」](https://qiita.com/emiki/items/b95fad815d9f8e360dd0)で作成したPythonコード`index.py`を、AWS Lambdaに移植する。
# 1.Lambda関数の作成
AWSマネジメントコンソールでLambda画面を開き、「関数の作成」から以下設定し、その他項目はデフォルトで「関数
AWS公式資料で挑むSCS認定(43)-こんな時どうする(全分野その20)
##### [前回] [AWS公式資料で挑むSCS認定(42)-こんな時どうする(全分野その19)](https://qiita.com/mingchun_zhao/items/62dc6370b02da8b3c657)
## はじめに
今回も引き続き、「こんな時どうする」集の作成です。
## 分野1: インシデント対応
– Amazon GuardDutyにより、「Stealth:IAMUser/CloudTrailLoggingDisabled」メッセージが通知された
– CloudTrailの追跡が無効化されたことを示すCloudTrail管理イベントで、認証情報が侵害された可能性あり
– 不正侵入者がユーザーのAWSリソースへアクセスしている間、活動の痕跡を消すためロギングを無効化した可能性
– このメッセージは、証跡情報の削除または更新が成功することによってトリガーされる場合がある
– GuardDutyに関連付けられている証跡のログを保存するS3バケットが削除された場合もトリガーされる
– 侵害されたA
EC2のproxy設定をSSM(RunCommand)と同期
複数台のEC2を持っていて、http_proxyやno_proxy設定(に限らず)をSSM パラメータストアで管理している値を同期したい。
例として、パラメータストアに、“http_proxy“,“https_proxy“,“no_proxy“を登録して、パラメータストアの内容を変更した後、EC2の/etc/environmentも同期したいシーンとして、以下のようなRunCommandを発行します。ドキュメント名:“AWS-RunShellScript “
コマンドパラメータ:以下
“`bash
#!/bin/bash
## get parameter from parameter-store
http_proxy=$(aws ssm –region ap-northeast-1 get-parameter –name http_proxy –query “Parameter.Value” –output text)
https_proxy=$(aws ssm –region ap-northeast-1 get-parameter –name h
AWS Cloud9でPython基礎~Amazon S3とAmazon Translateを利用する
2022/4/6(水)に行われたAWSセミナー「Pythonの基礎から学ぶ!サーバーレス開発はじめの一歩」で構築したサーバレスアーキテクチャ環境の復習。
# 構成図
Amazon S3バケットに格納された英語のテキストを AWS Cloud9で読み取り、Amazon Translate で翻訳して S3バケットにアップロードする簡易アプリケーションをPyhonで開発する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/02352c94-495b-14e4-a4b8-0bd8d175ac31.png)# 1. S3 バケットの準備
翻訳する前のファイルを入れる S3 バケットと、翻訳語のファイルを入れるS3 バケットを作成しておく。
– learn-python-YYYYMMDD-xxxxx-input
– learn-python-YYYYMMDD-xxxxx-output![image.png](https://qiita-image-store.s3.a
KMSを使ってS3バケットを暗号化してみた!
# はじめに
BeeX営業の田中です:smiley:
まだ4月ですが、東京はあっという間に初夏の陽気です:sunflower:
昨年12月のアドベントカレンダー以来の記事執筆です。
今回は、「KMSを使ってS3バケットを暗号化してみた!」というタイトルで実際にKMSを使って暗号化にトライしたので、その記録を残したいと思います。今回、KMSの学習及びハンズオンの参考にさせて頂いた教材は以下です↓
Udemy:https://www.udemy.com/
[AWS Key Management Service – KMS Fundamentals](https://www.udemy.com/course/aws-key-management-service-kms-fundamentals/)
全編英語の講座ですが、数少ないKMSに特化した映像教材ですので、おすすめです。# KMSを使ってS3バケットを暗号化する
## 暗号化とは?
ハンズオンに入る前に、「暗号化」とは何か整理したいと思います。
元のデータを別のデータに変換することを「暗号化」といいます。
変換には、鍵となる
phpMyAdmin を ECS on Fargateで構築
# はじめに
phpMyAdminをfargateで構築する流れをまとめます。
phpMyAdminで複数のRDSを管理したいため、RDSのエンドポイントを複数設定する方法も説明します。下記のように複数のRDSを1つのタスクで制御できます
![スクリーンショット 2022-04-17 15.42.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/988747/b07a38ba-9a44-81f3-3d03-7f65110678a2.png)下記のソースがそのまま使えますので、クローンしてください。
https://github.com/yuji-hirai/phpmyadmin-ecs
# 環境
– fargate
– PHP : 8.1.4
– phpMyAdmin : 5.1.3
– Nginx : 1.20# 完成構築図
![スクリーンショット 2022-04-17 12.48.38.png](https://qiita-image-store.s3.ap-northea
Laravelでcomposer updateでメモリオーバー
# [composer updateでメモリオーバー](#-1.composerupdateでメモリオーバー)
そもそも、AWSの無料枠で個人開発レベルのLaravelをデプロイしようとしたところで
中々メモリオーバーでタイムアウトにはならないはず。まずは他にメモリを食っている原因を探ってみましょう。
例えば無料のセキュリティ対策ソフト
***clamAV***なんかはメモリ使用量が多く、無料利用枠のインスタンスだとclamAVが起動した
状態でcomposer update等を行うと十中八九メモリオーバーでしょう。なので、その場合はclamAVの使用の有無の検討や対策が必要です。
ここがまず本質。
下記の記事などを参考にしてみてください。
面倒ではありますが、clamAVやApacheの再起動をいちいちする等の対策です。https://inaba-serverdesign.jp/blog/20170919/clamav_scan_virus_manage.html
http://www.playstudy.net/bl
AWS ALB スティッキーセッション メモ
## スティッキーセッションとは
* ロードバランサーがクライアント状態を管理するために使用する情報。
* ロードバランサーを用いて負荷分散を行う場合に、セッション管理を行うWebアプリなどで毎回同じサーバーにアクセスさせるために利用する。## AWS ALBのスティッキーセッション
* AWS ALB(Application Load Balancer)ではCookieを利用したスティッキーセッション機能を利用することができる。
* 次の2種類のスティッキーセッション機能を提供している。### 期間ベースCookie
* ロードバランサーが生成した Cookie (`AWSALB`) を使用し、ターゲットグループ内の同じターゲットにリクエストをルーティングする。
* **フロー**
1. ロードバランサーは、クライアントから最初のリクエストを受信した際、リクエストをターゲットにルーティングし、`AWSALB` という名前のCookie を生成し、ターゲットからのレスポンスにセットする。
* ターゲットに関する情報をエンコードしてCookie を暗
API Gateway – Lambda構成でのアクセス制御方法 メモ
* API Gateway – Lambda構成のサーバーレスアプリケーションにおけるアクセス制御方法についてメモする。
## IAMアクセス権限パターン
![api_gc_iam.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586535/a867d963-8b8f-3c27-766b-78ce76ca6b24.png)
1. IAM Credential sigv4 を作成し、sigv4を含めてAPIリクエスト
2. sigv4の権限を検証する。
3. 問題ない場合はLambdaをコールする。## Amazon Cognito UserPoolを利用する
![api_gc_cognito.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586535/8784ed12-c51e-f44c-e6dd-a79f450633ab.png)
1. ユーザーサインアップ(トークン取得)する。
2. トークンを
AWS公式資料で挑むSCS認定(42)-こんな時どうする(全分野その19)
##### [前回] [AWS公式資料で挑むSCS認定(41)-こんな時どうする(全分野その18)](https://qiita.com/mingchun_zhao/items/935141b158b168931d80)
## はじめに
今回も引き続き、「こんな時どうする」集の作成です。
## 分野1: インシデント対応
– アクセスキーの不正使用が報告された、アクセスキーを使用しアクセスされたAWSサービスを特定したい
– AWSアカウントの認証情報レポートから確認できる
– 認証情報レポートには、AWSアカウントのすべてのユーザーと各種認証情報(パスワード、アクセスキー、MFAデバイスなど)のステータスが含まれている
– AWS Management Console、AWS SDK、コマンドラインツール、またはIAM APIから取得できる
– ※ 認証情報レポートを使用し、監査やコンプライアンス作業を支援
– パスワードやアクセスキーのローテーションなど、認証情報ライフサイクルの要件の結果を監査可能
AWS Cloud9でPython基礎~Amazon S3を利用する
2022/4/6(水)に行われたAWSセミナー「Pythonの基礎から学ぶ!サーバーレス開発はじめの一歩」で学習した、AWS Cloud9 から Amazon S3 に Pythonでファイルを読み込み・アップロードする部分の復習。
# 構成図
AWS Cloud9から、 Amazon S3バケット上のテキストを読み込む操作と、テキストをアップロードする操作をPythonで実現する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/a6440a86-5807-63b9-acf4-10269055849e.png)# 1.S3バケットにあるファイルを読み込む
## 1-1.S3バケットの作成
マネジメントコンソールで S3 画面にいき、「バケットを作成」をクリックする。
バケット名は使用用途がわかる一意の名前を付ける。このバケット名はこの後のPythonコードで使用するため、コピーしてメモしておく。
バケット名以外はデフォルトのまま、「バケットを作成」をクリックする。
ECSで発生したエラー文をひたすら掲載する
タスク実行時:詳細画面
>ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve secrets from ssm: service call has been retried 5 time(s): RequestCanceled: request context canceled caused by: context deadli…
—