- 1. CloudFormationでQuickSightにAthenaのデータセットを作成する
- 2. Databricks SCIMを用いたIAMクレディンシャルパススルーによるS3バケットへのアクセス
- 3. AWS公式資料で挑むSCS認定(36)-こんな時どうする(全分野その13)
- 4. 【Rust】AWS LambdaでWebSocketクライアントにメッセージ送信
- 5. 【Rust】AWS LambdaでDynamoDB検索
- 6. Kinesis Data Analytics for SQL Applicationを試してみた
- 7. AWS公式資料で挑むSCS認定(35)-こんな時どうする(全分野その12)
- 8. [個人的] AWS タグ戦略
- 9. 【AWS】SOA不合格体験記 – 2022年4月9日 –
- 10. 勉強メモ:AWSストレージサービス比較
- 11. RailsでHerokuに初期データが反映されなくてハマってました
- 12. AWS公式資料で挑むSCS認定(34)-こんな時どうする(全分野その11)
- 13. デプロイ後に画像がstoreできなくなった。[エラー : 413 Request Entity Too Large]
- 14. 新卒未経験が7月までにAWS Professional資格二冠する話
- 15. [AWS SAM] Lambda関数でOPTIONメソッドを作り「CORSの複数origin対応」を攻略する①(概要説明)
- 16. AWS Lambdaの関数URL(Function URLs)のユースケースを真面目に考える
- 17. aws_datasync_location_s3 で Ensure bucket access role has s3:ListBucket permission
- 18. ElasticBeansTalk + Spring boot でEverything(It’s you)してみた
- 19. Amazon FSx for NetApp ONTAPをAmazon EKSのPersistentVolumeのバックエンドストレージとして使ってみた(本編)
- 20. error configuring Terraform AWS Provider
CloudFormationでQuickSightにAthenaのデータセットを作成する
# はじめに
QuickSightがCloudFormationで操作できるので、AthenaのテーブルをQuickSightで使うには、という内容を試してみました。
# 参考
https://dev.classmethod.jp/articles/creating-tables-in-the-aws-glue-data-catalog-and-configuring-athena-with-cloudformation/
https://dev.classmethod.jp/articles/cloudformation-quicksight-dataset-s3/
# 構成図
語がたくさん出てきてわからなくなったので、図示してみました。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/40a9b363-4820-465e-4fe2-92a63af474fe.png)
# 構築
環境構築にあたって、2つの部分に分けました。– 共通部分
– 1回構築
Databricks SCIMを用いたIAMクレディンシャルパススルーによるS3バケットへのアクセス
[Access S3 buckets using IAM credential passthrough with Databricks SCIM \| Databricks on AWS](https://docs.databricks.com/security/credential-passthrough/iam-passthrough.html) [2021/12/3時点]の翻訳です。
:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
::::::note info
**プレビュー**
本機能は[パブリックプレビュー](https://docs.databricks.com/release-notes/release-types.html)です。
:::IAMクレディンシャルパススルーを用いることで、Databricksへのログインで使用しているアイデンティティを用いて、DatabricksクラスターからS3バケットへの認証を自動で行うことができます。IAMクレディンシャルパススルーをお使いのクラ
AWS公式資料で挑むSCS認定(36)-こんな時どうする(全分野その13)
##### [前回] [AWS公式資料で挑むSCS認定(35)-こんな時どうする(全分野その12)](https://qiita.com/mingchun_zhao/items/e6de42ff0bb4b25cdd48)
## はじめに
今回も引き続き、「こんな時どうする」集の作成です。
## 分野1: インシデント対応
– ユーザー認証情報を悪用した不正アクセスが報告された、至急セキュリティインシデント調査を行い、侵害による影響確認と対策を実施したい
– AWS CloudTrail Lakeを使用し、CloudTrailで記録されたAWSサービスのアクティビティをクエリし、インシデント調査を行う
– ※ AWS CloudTrail Lakeの機能
– ユーザーアクティビティと影響を受けるリソースをクエリおよび分析し、悪意のあるユーザーの特定やアクセス許可のベースライン化など対処
– SQLで使い慣れた複数属性のクエリエクスペリエンスを提供し、複数の同時クエリをスケジュールおよび処理できる
– CloudTra
【Rust】AWS LambdaでWebSocketクライアントにメッセージ送信
AWS LambdaをRustで実装する際のサンプルコードが少なすぎるのでメモ
# 内容
LambdaからAPI Gateway経由でWebSocketクライアントにメッセージを送信する。
送信先クライアントのコネクションIDは入力イベントやDBで動的に取得することが多いだろうが、ここでは簡易化のため固定とする。# コード
“`toml:Cargo.toml
[package]
name = “sample”
version = “0.1.0”
edition = “2021”[dependencies]
aws-config = “0.9.0”
aws-sdk-apigatewaymanagement = “0.9.0”
aws-types = “0.9.0”
http = “0.2.6”
lambda_runtime = “0.5.1”
serde_json = “1.0.79”
tokio = “1.17.0”
“`“`rust:main.rs
use aws_config::meta::region::RegionProviderChain;
use
【Rust】AWS LambdaでDynamoDB検索
AWS LambdaをRustで実装する際のサンプルコードが少なすぎるのでメモ
# 内容
DynamoDBの検索(スキャン)
例として、とある学校の生徒管理テーブルから指定した部活に所属する生徒の氏名一覧で取得することを考える。– テーブル名:students_table
– 項目1:name(氏名)
– 項目2:club(部活)# コード
“`toml:Cargo.toml
[package]
name = “sample”
version = “0.1.0”
edition = “2021”[dependencies]
aws-config = “0.9.0”
aws-types = “0.9.0”
aws-sdk-dynamodb = “0.9.0”
lambda_runtime = “0.5.1”
serde_json = “1.0.79”
tokio = “1.17.0”
“`“`rust:main.rs
use aws_config::meta::region::RegionProviderChain;
use aws_sdk_
Kinesis Data Analytics for SQL Applicationを試してみた
# 背景・目的
– Kinesis Data StreamsやKinesis Data Firehoseは利用したことはありましたが、Kinesis Data Analyticsは触ったことがなかったので、試してみました。# サマリ
– SQLで、リアルタイム分析ができます。
– ストリーム処理では、入出力のリソースと、アプリケーション内入出力ストリームを使用します。SQLではDDLがこれに該当するようでした。
– 次は、Flinkを使って試す予定です。# 概要
## Amazon Kinesis Data Analytics for SQL Applicationsとは?
– SQLを使用してストリーミングデータを処理、分析できます。
– 時系列分析の実行、リアルタイムでのダッシュボードへのフィード、リアルタイムでのメトリクス作成を行うSQLコードをストリーミングソースに対してすぐに作成、実行できます。## Amazon Kinesis Data Analytics(以降、KDAという) が適している用途
– ほぼリアルタイムでデータを連続して読み取り、処理、保存するSQ
AWS公式資料で挑むSCS認定(35)-こんな時どうする(全分野その12)
##### [前回] [AWS公式資料で挑むSCS認定(34)-こんな時どうする(全分野その11)](https://qiita.com/mingchun_zhao/items/5e82d77ce37aaf3f47f8)
## はじめに
今回も引き続き、「こんな時どうする」集の作成です。
## 分野1: インシデント対応
– EC2 Linuxマネージドノードに不正侵入が報告された、既存のPowerShellスクリプトの調査ツールを使用し確認したい
– AWS Systems Managerの`Run Command`機能を使用し、LinuxマネージドノードでPowerShellスクリプトを実行
– `aws:runPowerShellScript`プラグインまたは`AWS-RunPowerShellScript`コマンドドキュメントのいずれかと、PowerShell Coreを使用し、Linuxマネージドノードで PowerShellスクリプトを実行できる
– 事前準備
– Linuxマネージドノードに接続し、OSに合わせPow
[個人的] AWS タグ戦略
## 概要
個人的なAWS タグ付け方針をまとめる## 結論
### 必須なもの
|タグ名|概要|例|
|—–|—-|—|
|project|プロジェクト名|HogeHogeService|
|resource|リソース名|stg_hoge_hoge_service_cdk|
|creator|リソースを作成した方法|cdk|### 不特定多数の人が触る環境の場合
|タグ名|概要|例|
|—–|—-|—|
|owner|管理者名|hogehoge_team|### 個人用アカウント(or開発アカウント)の場合
|タグ名|概要|例|
|—–|—-|—|
|usetype|使用種別|temp|## 各タグの説明
### project
目的: プロジェクト全体のコストを把握するため
IaCをする場合, この名前=リポジトリ名にしておくと, 迷わなくて済む.
もし, プロジェクト名≠リポジトリ名の場合は, `repository` タグがあると無難.### resource
目的: リソース単位でコストを把握するため
これがないと
【AWS】SOA不合格体験記 – 2022年4月9日 –
# AWS SOAについて
SOA(AWS Certified SysOps Administrator – Associate)は
AWSの資格だと中レベルの資格になります。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2512673/b92e754d-59fa-cea7-4e9f-099d5f64d2f2.png)2022年4月9日に受験し、不合格(687点)でした。
合格には720点が必要なので33点足りない……# 勉強方法
下記の有料会員になり、SOA#後半を2周ほど実施しつつ、解説を読みました。
[AWS WEB問題集で学習しよう](https://aws.koiwaclub.com/)# 参考
Udemyの問題集は今回実施しませんでした。
唯一日本語であったSOA-C02の問題集はレビューはボロボロ、
そこに製作者が各レビューに噛みついている様子で酷かったので購入せず。# 総評
3週間ほど「AWS WEB問題集で学習しよう」を1日1時間~2時間ペースで勉強しました
勉強メモ:AWSストレージサービス比較
AWS資格試験の勉強用のメモです。
ストレージ(S3, S4 Glacier, EBS, EFS)に関する機能性・特徴を整理中です。## 耐久性・可用性
| サービス | 耐久性 | 可用性 | AZ |
| —- | —- | —- | —- |
| S3 標準 | 99.999999999% | 99.99% | 3以上 |
| S3 Intelligent-Tiering | 99.999999999% | 99.9% | 3以上 |
| S3 標準 – 低頻度アクセス (S3 標準 – IA) | 99.999999999% | 99.9% | 3以上 |
| S3 1 ゾーン – 低頻度アクセス (S3 1 ゾーン – IA) | 99.999999999% | 99.5% | 1 |
| S3 Glacier Instant Retrieval | 99.999999999% | 99.9% | 3以上 |
| S3 Glacier Flexible Retrieval | 99.999999999% | 99.99
RailsでHerokuに初期データが反映されなくてハマってました
# はじめに
seeds.rbを本番環境に反映させようとしたがうまくいかずに困ってました。
無事にherokuに反映することができたので、メモ用に投稿します。
## 自分の環境
* Rails 6.0.3
* Ruby 2.6.3
* AWS Cloud9
## 前提
seeds.rb作成済み
## 初期データの投入方法
### ローカルの設定を完了させる
“`
$ rails db:migrate:reset
$ rails db:seed
“`
### gitにプッシュする
“`
$ git add -A
$ git commit -m “メッセージ”
$ git push
$ git push heroku
“`
### Herokuのデータベースをリセットする
“`
$ heroku pg:reset DATABASE
“`
### herokuでマイグレーションを実行する
“`
$ heroku run rails db:migrate
“`
### seedデータを投入
“`
$ heroku run rails db:seed
“`
これで初期データの
AWS公式資料で挑むSCS認定(34)-こんな時どうする(全分野その11)
##### [前回] [AWS公式資料で挑むSCS認定(33)-こんな時どうする(全分野その10)](https://qiita.com/mingchun_zhao/items/039f0d884fb59312976c)
## はじめに
今回も引き続き、「こんな時どうする」集の作成です。
## 分野1: インシデント対応
– EC2インスタンスに不正侵入が報告された、実行中のすべてのプロセスを確認したい
– AWS Systems Manager(旧SSM)のFleet Manager機能を使用し、コンソールベースでインスタンスのプロセスを確認
– ※ Fleet Managerは、IT管理者によるリモートサーバー管理作業の合理化とスケールを支援
– インスタンス上のプロセスに対し、表示/管理/リソース消費量評価/開始/停止、など操作可能
– ファイルシステムの探索、ログ管理、パフォーマンスカウンター、ユーザー管理など一般的な管理者タスクを実行
– サーバーにリモート接続することなく、AWSとオンプレミスの両方から
デプロイ後に画像がstoreできなくなった。[エラー : 413 Request Entity Too Large]
## 概要
[413 Request Entity Too Large]エラーが出たので、備忘録として記録。## 構成
|構成|利用機能|
|–|–|
物理サーバー|AWS
仮想サーバー|EC2
webサーバー|Nginx## 不具合内容
Laravelをデプロイ後に画像がstoreできなくなった。
ローカル環境では、問題なかったのでサーバー設定の問題だと判断しました。詳しく確認すると、1M以上の画像がアップロードできない模様。
## エラー原因
– Nginxのリクエストボティサイズの設定項目は「client_max_body_size」であり、デフォルト値は「1m(1MB)」で1M以上のアップロードできない。
– phpのデフォルト設定で2m(2MB)以上のアップロードできない。
## 解決法
– Nginxとphpの設定を変更
**nginx編集**
etc/nginx/nginx.confを編集する。
10mbまでの画像を扱えるよう
「client_max_body_size」を「10m」で設定“`diff_php:etc/nginx/ngi
新卒未経験が7月までにAWS Professional資格二冠する話
# はじめに
二冠と言いましても、2022/3月に既にAWS-SAP取得済みであるため、7月までにAWS-DOPを取得することでAWS Professional資格の二冠を達成することになります。この二冠をする過程をみなさんに見ていただけばと思い、企画として記事を連載していきます。
本日、2022/4/9より、学習を始めます。
## 保有資格
応用情報技術者
AWS-SAA
AWS-SAP## 取得を志す理由
開発に関しても関心を持っているためです。AWS-SAPを取得後に、AWSの開発に挑戦しましたが、自分自身の開発ペース・開発の質の両面に対して不満を抱いたからです。設計に関してはSAP取得を通してベストプラクティスを学びました。しかし、開発に関してはベストプラクティスを知らずに闇雲に突っ走っているだけでした。これでは、いいプロダクトは開発できませんし、効率もよくないと考えDOPの学習を通して開発面も学んでいければいいなと思ってます。
もう一つの理由は、今後の業務に役立つと考えたからです。AWS-SAPトップダウンの視点だとしたら、AWS-DOPはボトムアップの視点である
[AWS SAM] Lambda関数でOPTIONメソッドを作り「CORSの複数origin対応」を攻略する①(概要説明)
# この記事で解説することを3stepで
– **① CORS許可設定で「Access-Control-Allow-Origin」を「*」にせず、複数originを許可するOPTIONSメソッドをLambda関数で定義する。**
– **② その際にAWSコンソールを弄ってしまったらせっかくSAMで構築している意味が激減する(?)と思っているので絶対に弄らない。**
– いちいちPreflight用のOPTIONメソッドをコンソールからいじるのは面倒だし、SAMと後々競合とかしそうで怖い
– (確認はコンソールを見るのが手っ取り早いので見ます)
– **③ その他CORSに関する説明も交える**# 記事の構成
– [AWS SAM] Lambda関数でOPTIONメソッドを作り「CORSの複数origin対応」を攻略する①(概要説明)
– 本記事
– [[AWS SAM] Lambda関数でOPTIONメソッドを作り「CORSの複数origin対応」を攻略する②(シンプルな代案の説明)](https://qiita.com/sawa-akabee/ite
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って?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/68155040-90dd-a0de-a1bd-f377e7d5c895.png)
> 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フレーズ返すだけですが・・
# アプリケーション作成
![image.png](htt
Amazon FSx for NetApp ONTAPをAmazon EKSのPersistentVolumeのバックエンドストレージとして使ってみた(本編)
# はじめに
– [前々回の記事](https://qiita.com/seijitanabe/items/f16af0425d2f2f00af24)でAmazon EKSで使えるPersistentVolumeについて調べて、[前回の記事](https://qiita.com/seijitanabe/items/00e2051b8ee638aea518)で検証するための環境を準備した。
– 今回は、PersistentVolumeのバックエンドストレージとしてAmazon FSx for NetApp ONTAP(以下、FSx for ONTAP)を使ってみる。
– 今できている環境はこんな感じ。
![archetecture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/c2800e01-9026-cabe-860d-56734ee847e5.png)# やってみた
## 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-