- 1. S3のURL叩いた時に出るAccessDeniedはカスタムできりゅ
- 2. RDSの接続トラブルの原因を切り分ける手順
- 3. 【学習メモ】API GatewayのCross-origin resource sharing (CORS)とは
- 4. 【学習メモ】SQS拡張クライアントライブラリとは
- 5. AWSのECS使用メモ
- 6. 【学習メモ】AWS ElastiCache for Redisの認証方法
- 7. AWS Glueのカラムレベルの統計情報を試してみた
- 8. Step Functionsの超詳細解説
- 9. 一番簡単なAutoScaling
- 10. EC2で新規のインスタンスを立てたら外部への通信がうまくいかなかった時の話
- 11. LoRaWANを試す – ゲートウェイ設置編
- 12. Amazon GuardDutyとCloudTrail Insightsの違い
- 13. AWSコンソールのサインイン履歴をCloudTrailで確認する
- 14. Network Firewall を利用して特定のドメインのアクセスを許可または拒否する
- 15. AWS主要セキュリティサービス14選をレイヤー&ジャンルごとに徹底解説
- 16. AWS OrganizationsとIAMの違い
- 17. ZappaでFlaskをLambdaにデプロイ
- 18. CloudFront Lambda@Edge で新しい NodeJS ランタイムを利用する場合に Cannot find module ‘aws-sdk’ というエラーが発生する
- 19. AWS CDKの超詳細解説
- 20. ECSブルーグリーンデプロイメントをゼロから構築する。(その4:ELBの作成とレコード作成)
S3のURL叩いた時に出るAccessDeniedはカスタムできりゅ
## はじめに
らしいです。## 手順
1. htmlやxmlを頑張って作る
1. エラードキュメントとして指定する
![gs-開発チーム_-_トライト-マーケティング本部_-_Slack.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278897/079d0350-1937-fad2-1adc-d1e5024a8591.png)良い感じに動作確認してエラードキュメントが表示されればOK!
## おわりに
検証してなくて申し訳ないですが、たぶんこれで実現できそうですね。
CloudFrontが前段にある場合はどうなるのかなーと思うので、いつか業務で設定した際は追記。。したいけど忘れてそうwどんまいどんまい!## ご参考
– AWS神より
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/CustomErrorDocSupport.html以上です!:fist:
RDSの接続トラブルの原因を切り分ける手順
# はじめに
RDSにうまく接続できない時に考えられる原因と切り分け方について、AWSの方が[動画](https://www.youtube.com/watch?v=_Ox2lul0cI8)を出していたので内容をメモ。
MySQLを例にする。MySQLのポートは3306と仮定する。## (現象1) MySQLコマンドの結果が帰ってこないとき
別ターミナルで以下のコマンドを打つ。
“`sh
netstat -an | grep 3306
“`### 結果パターン1
“`sh
(略) SYN_SENT
“`
上記のような出力の場合、リクエストを送ったがレスポンスが帰ってきていないことがわかる。その場合は、以下に問題がないか見直す。
1. セキュリティグループの設定
2. 接続元のFWの設定## (現象2) Access Denied
→IDとパスワードが正しいことを確認する。## (現象3) Unkown MySQL Server Host
→DNSの名前解決ができていない状態。この場合は、以下を確認する。
1. ホスト名が正しいか
2. 利用しているDNSが名前
【学習メモ】API GatewayのCross-origin resource sharing (CORS)とは
# Cross-origin resource sharing (CORS)とは
MDNから抜粋ですが> Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources. CORS also relies on a mechanism by which browsers make a “preflight” request to the server hosting the cross-origin resource, in order to check that the server will permit the actual request. In that preflight, the browser sends h
【学習メモ】SQS拡張クライアントライブラリとは
# SQS拡張クライアントライブラリとは
・通常のSQSキューのデータサーズ制限は**256KB**だが、運用上それを超えたい場合の対応法である・大量のAmazon SQSメッセージを管理するには、Amazon S3とJava 用SQS拡張クライアントライブラリを使用することで、**2GB**までのサイズのメッセージを保存および処理ができるようになる
→AWS Java SDKが必要(プログラミングを作る必要がある)・イメージとして、メッセージの保管場所を本来の狭いパイプ(SQSキュー)から広い貯水槽(S3)に変える
→常にS3に保存するか、サイズが256KBを超える場合のみ保存するかを指定できる# 参考サイト
https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-s3-messages.htmlhttps://zenn.dev/hi_ka_ru/articles/a516af8bfc4457
AWSのECS使用メモ
## はじめに
Docker上で動作するLaravelを、AWS上で動作させるよう試した。
しかしながら動作せず。
docker-compose.ymlをいかにECSに対応させるか考慮しなければならなかったがその視点が抜け落ちていた。
ChatGPTで確認しながら行ったが、AWSの知識不足で対応できない。
ただECSまでのセットはしたので、そのあたりは忘れぬよう備忘記録として残す。
(確認しながら行ったのを整理して記載しているだけ)## 全体の流れ
### AWS ECSでのLaravelアプリケーションのデプロイ手順
LaravelアプリケーションをAWS上で動かすための手順を説明します。まず、AWS上でDockerコンテナをホストする方法として、AWS Elastic Container Service (ECS) が一般的です。以下は、LaravelアプリケーションをAWS ECSで動かすための大まかな手順です。0. **IAMロール作成**
– ECSが使用するためのIAMロールを作成しておく必要があります。1. **Elastic Container
【学習メモ】AWS ElastiCache for Redisの認証方法
# IAM を使用した認証
・ElastiCache for Redis バージョン 7.0 以上のみ限定
・AWS IAM アイデンティティを使用して ElastiCache for Redis への接続を認証
・個々の ElastiCache レプリケーショングループと ElastiCache ユーザーごとに、きめ細かいアクセス制御を設定し、「最小特権の権限の原則」に従う
・有効期間の長い ElastiCache ユーザーパスワードの代わりに、有効期間が短い**IAM 認証トークン**を Redis AUTH または HELLO コマンドで提供
→IAM 認証トークンは**15 分間**有効
→IAM 認証された接続は、**12 時間**後に自動的に切断# Redis AUTH コマンド
・Redis はクライアントにコマンドの実行を許可する前に、「Redis 認証トークン」か「パスワード」を求めることで、データのセキュリティを保護
・(個人の理解として)AWSのElastiCache for RedisはRedis AUTHの機能を踏襲して、レプリケーショングループまた
AWS Glueのカラムレベルの統計情報を試してみた
# 背景・目的
[AWS Glue Data Catalog now supports generating column-level statistics](https://aws.amazon.com/about-aws/whats-new/2023/11/aws-glue-data-catalog-generating-column-level-statistics/)にあるように、Glueカタログでカラムレベルの統計情報がサポートされたようです。
これにより、AthenaやRedshift Spectrum等のCBOと統合されるようになりましたので、試してみたいと思います。# まとめ
– Redshift SpectrumやAthenaなどの分析サービスで利用ができます。
– 下記のファイルフォーマットが対象です。
– Parquet
– ORC
– JSON
– ION
– CSV
– XML
– 対象の統計項目は下記になります。
– 最小値
– 最大値
– Null 値の合計
– 個別の値の
Step Functionsの超詳細解説
# はじめに
この記事はDevOps on AWS大全の一部です。
DevOps on AWS大全の一覧は[こちら](https://qiita.com/tech4anyone/items/b06f88035d27c6ef13b2)。この記事ではStep Functionsに関連する内容を超詳細にまとめています。
具体的には以下流れで説明します。
– AWS Step Functionsとは
– AWS Step Functionsの仕組み
– AWS Step Functionsのセキュリティ
– AWS Step Functions for AdvanceAWSの区分でいう「Level 200:トピックの入門知識を持っていることを前提に、ベストプラクティス、サービス機能を解説するレベル」の内容です。
# この記事を読んでほしい人
– Step Functionsがどういうサービスか説明できるようになりたい人
– Step Functionsを採用するときのベストプラクティスを説明できるようになりたい人
– AWS Certified DevOps Engineer P
一番簡単なAutoScaling
# はじめに
AutoScalingをCloudFormationで試してみたかったのですが、簡単なサンプルがなかったので自分で作ってみました。
# 参考
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html
# 構成図
単純になるよう、シングルAZで作ります。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/ec6da7c8-3056-2fd3-129a-77b8f974aa01.png)
# CloudFormationテンプレート
以下がテンプレートになります。
“`yaml
AWSTemplateFormatVersion: ‘2010-09-09’Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
– Label:
EC2で新規のインスタンスを立てたら外部への通信がうまくいかなかった時の話
先日遭遇したのでメモとして
原因の可能性はたくさんあるので、トラブルシューティング用としてご活用ください
# 症状
新規で立てたEC2インスタンス(ubuntu20.04/22.04)で外部へのアクセスが出来ない
今回試したコマンドは以下の2つ
“`
$ sudo apt update
$ wget https://holyday.co.jp
“`ちなみにpingは通る
## 解決方法
1. まずはAWS公式で出ているトラブルシューティングを行う
https://repost.aws/ja/knowledge-center/ec2-connect-internet-gateway
ネットワークの設定ミスがとにかく多い
2. OSのバージョンを確認
wgetの方は関係ないけど、パッケージ管理の場合はリポジトリのURLが死んでいる場合もある
ちなみに今回はAWS公式のimageを使っていたのでこの懸念はあまりなかったけど、エラー文を元に検索するとだいたいこのケースがヒットする
3. IMDSv2の設定を確認
今回はこのケースだった
LoRaWANを試す – ゲートウェイ設置編
# はじめに
以前から気になっていたLoRaWAN環境が手の届くようになってきたので試してみようと思う。LoRaはWiFiやBluetoothのような特定小電力無線局の仲間で、環境によっては10km以上も電波が届くことがあるとのこと。
Semtech社のページにあるLoRaの位置付け
![](https://www.semtech.com/uploads/images/LoRa_Why_Range.png)
# 準備
LoRaWANの利用には、端末の他に、ゲートウェイ、ネットワークサーバーの三者が登場する。まず、ゲートウェイ、ネットワークサーバーの準備から始める。今回はネットワークサーバーとしてAWS IoTを利用する。ゲートウェイは低いレイヤーでの中継を行う。
![](https://www.mdpi.com/telecom/telecom-03-00018/article_deploy/html/images/telecom-03-00018-g001.png)
## ゲートウェイ
今回使用するゲートウェイはこちら。日本仕様はACアダプターが付属しないので、別途購
Amazon GuardDutyとCloudTrail Insightsの違い
# Amazon GuardDutyとCloudTrail Insightsの違い
Amazon Web Services(AWS)は、高度なセキュリティ機能を提供し、クラウド上の資産を保護します。その中でも、Amazon GuardDutyとCloudTrail Insightsは、セキュリティと運用監視の強化に重要な役割を果たしますが、それぞれのサービスは異なる特徴と機能を持っています。この記事では、これら二つのサービスの基本的な違いとそれぞれの利点を、初心者にも分かりやすく解説します。
## Amazon GuardDutyの概要
### セキュリティ監視と脅威検出
#### 機能と特徴
Amazon GuardDutyは、AWS環境内の異常な活動や潜在的な脅威を識別するフルマネージドな脅威検出サービスです。このサービスは、ネットワークトラフィック、AWS CloudTrailのイベントログ、DNSログなどを分析し、機械学習と異常検出アルゴリズムを使用して不審な行動を検出します。
#### セキュリティの強化
GuardDutyは、不正アクセス、データ漏洩、その他の
AWSコンソールのサインイン履歴をCloudTrailで確認する
# はじめに
AWSコンソールへのサインイン履歴が,CloudTrailのログ(S3保管)にどのように記録されるのか調べました(2023/11現在)。公式情報は[こちら](https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-event-reference-aws-console-sign-in-events.html)にありますが,どのフィールドに着目すればよいかわかりにくかったり,公式では存在しないシナリオがあったのでまとめてみました。# CloudTrailの設定
CloudTrailで証跡を作成し,S3バケットにログ保管されるようにあらかじめ設定しておきます(この記事では手順省略)。管理イベントは「書込み」にチェックがあればサインイン履歴を取得できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457890/5db882d0-6d47-0e02-ff97-a2d14
Network Firewall を利用して特定のドメインのアクセスを許可または拒否する
# ステートフルドメインリスト
Network Firewall を利用して特定のドメインのアクセスを許可または拒否するには、ステートフルドメインリストまたは Suricata 対応の IPS ルールで対応可能かと思いますが、今回は ステートフルドメインリストを利用してみたいと思います。
なお、ステートフルドメイン名の検査は以下を見て行われるようである。
– **HTTP**
– HTTP ホストヘッダー
– **HTTPS**
– TLS ハンドシェイクの Server Name Indication (SNI) におけるserver_name# 環境
環境は下記の方の CloudFormationテンプレートを利用させてもらいました。
https://zenn.dev/osprey/articles/networkfirewall-is-not-for-domainbase-restriction
なお、ログも確認してみたかったので、AWSコンソールから、CloudWatch log group にログを配信しておくように設定を追加しました。
https
AWS主要セキュリティサービス14選をレイヤー&ジャンルごとに徹底解説
# AWS主要セキュリティサービス14選をレイヤー&ジャンルごとに徹底解説
AWSのセキュリティサービスは、クラウドセキュリティの構築と維持において重要な役割を果たします。本記事では、AWS内で提供される主要なセキュリティサービス13選を、ファイヤーウォール、暗号化、診断分析、権限管理、コンプライアンスレポートの5つのカテゴリーに分けて徹底的に解説します。
## レイヤーごとのファイヤーウォール
### ①インスタンス
#### 対象ファイヤーウォール:セキュリティグループ(ステートフル)
セキュリティグループは、特定のインスタンスに適用される仮想ファイヤーウォールです。これはステートフルであり、許可されたトラフィックの流れを記憶しています。インスタンスごとに、特定のポートやプロトコルに対するアクセス制御を設定できます。
### ②サブネット
#### 対象ファイヤーウォール:ネットワークACL(ステートレス)
サブネット内のトラフィックを制御するために、ネットワークACLが用いられます。これはステートレスであり、セッションの状態を追跡・保存しません。入出力のトラフィッ
AWS OrganizationsとIAMの違い
# AWS OrganizationsとIAMの違い
AWS (Amazon Web Services) は、クラウドコンピューティングプラットフォームとして広く利用されており、その中には様々な管理ツールが存在します。特に、AWS OrganizationsとIAM (Identity and Access Management) はAWS環境で重要な役割を果たしますが、これらは異なる目的と機能を持っています。本記事では、AWS OrganizationsとIAMの違いについて、初心者でも理解しやすいように解説します。
## AWS Organizations
### 複数AWSアカウントの集中管理
AWS Organizationsは、複数のAWSアカウントを集中的に管理するためのサービスです。
#### 特徴
– **アカウント管理**: 複数のAWSアカウントを一元的に管理し、新しいアカウントの作成や既存アカウントの統合を容易にします。
– **ポリシーベースの制御**: 組織全体にわたるアクセスポリシーやリソースの使用制限を設定できます。
– **コスト最適化**:
ZappaでFlaskをLambdaにデプロイ
## はじめに
ご覧いただきありがとうございます!
zappaを使ってLambdaにデプロイする方法を自分の備忘録も兼ねて書いてみました。
初心者なので、間違いがあればご指摘いただけると幸いです。## zappaとは?
zappaとは、AWS Lambda上でFlaskやDjangoなどのWebアプリケーションを簡単にデプロイできるフレームワークです。
zappaを使うとLambda関数やAPI Gatewayの設定など、複雑なAWSリソースのセットアップを自動的に行なってくれるため、手動で設定する手間を省いてくれます。## 1. Flaskをインストール
pythonの仮想環境を用意してFlaskをインストールします。“`
$ pipenv install Flask
“`
## 2.ファイルの作成
“Hello world!”を表示するファイルを用意します。“`hello.py
from flask import Flaskapp = Flask(__name__)
@app.route(‘/’)
def hello():
CloudFront Lambda@Edge で新しい NodeJS ランタイムを利用する場合に Cannot find module ‘aws-sdk’ というエラーが発生する
# 問題
れまで NodeJS 14 ランタイムで利用していた Lambda@Edge のコードでは以下のように aws-sdk を利用するコードを書いていた。
“`js
const aws = require(“aws-sdk”);
“`しかし、NodeJS 18 にランタイムを更新してデプロイすると、このコードがエラーになってしまったのでその原因と対処方法を調査した。
# 原因
NodeJS 18 ランタイムからは `require(‘aws-sck’)` によって利用される AWS SDK v2 ではなく、新たに AWS SDK v3 がデフォルトで同梱されるようになり、v2 を意味する `require(‘aws-sck’)` がデフォルトでは利用できなくなったため。
https://aws.amazon.com/jp/blogs/compute/node-js-18-x-runtime-now-available-in-aws-lambda/
v3 を利用する場合は、ドキュメントに従って適切なモジュールを利用することになる。
https://docs.a
AWS CDKの超詳細解説
# はじめに
この記事はDevOps on AWS大全の一部です。
DevOps on AWS大全の一覧は[こちら](https://zenn.dev/tech4anyone/articles/c05ee9777c6de0)。この記事ではAWS CDKに関連する内容を超詳細にまとめています。
具体的には以下流れで説明します。
– AWS CDKとは
– AWS CDKの仕組み
– AWS CDK for AdvanceAWSの区分でいう「Level 200:トピックの入門知識を持っていることを前提に、ベストプラクティス、サービス機能を解説するレベル」の内容です。
# この記事を読んでほしい人
– AWS CDKがどういうサービスか説明できるようになりたい人
– AWS CDKを採用するときのベストプラクティスを説明できるようになりたい人
– AWS Certified DevOps Engineer Professionalを目指している人# AWS CDKとは
AWS CDKとは高水準言語でインフラストラクチャを記述できるサービスです。
CloudFormation
ECSブルーグリーンデプロイメントをゼロから構築する。(その4:ELBの作成とレコード作成)
# はじめに
前回までは、ブルーグリーンデプロイメントの設定を行う前の事前準備を行ってきました。いよいよ今回からブルーグリーンデプロイメントの設定を行っていきます。
– 【前】[ECSブルーグリーンデプロイメントをゼロから構築する。(その3:事前準備、コンテナイメージ作成)](https://qiita.com/sakai00kou/items/fc51cead539f2917bfb6)
# ブルーグリーンデプロイメントの設定
今回より本格的にブルーグリーンデプロイメントの設定を行っていきますが、ブルーグリーンデプロイメントは、複数の設定が絡み合うため、設定が複雑です。そのため、どこか一つ設定を間違えると、エラーとなったり、再度作り直さないといけなくなったりするため、設定する順序が重要となります。
※そのため、私はいつもどこかで詰まっていました・・・# ELBの設定
以下再掲となりますが、`ELB`の設定にはユーザからのアクセスを待ち受けたり、負荷分散のルール等を設定するための「**ロードバランサー**」の設定と、負荷分散先となるインスタンスやタスクの指定やターゲットへ