- 1. SAAに2回落ちたが、SAPは1回で合格した話
- 2. GW中にやったことリスト
- 3. StackSetsをCloudFormationで構築する
- 4. AWS SAPに合格したので効率的な勉強方法(だと思う)を纏めてみました
- 5. Lambda 関数 URL
- 6. AWS日記39 (AWS CodePipeline)
- 7. AWSのRDSでメンテナンスの案内が来た時におまえがすること
- 8. AWS Certified Developer – Associate(DVA-C01)に合格するまで
- 9. Amazon SageMaker Processing でデータ並列処理をする!
- 10. 別アカウントへAMIの共有をしてみた
- 11. Lambda@Edge のオリジンリクエストで、bodyの内容を書き換えてレスポンスを返す方法 [sync-request]
- 12. Raspberry Pi Zeroを使ってAmazon Kinesis Video Streamsにカメラ映像送信
- 13. Route53でCAAレコードは設定してますか??
- 14. S3マルチパートアップロード ~Amazon S3パフォーマンス最適化してますか?~
- 15. AWS CLIのShorthand SyntaxでFirehoseを作成するコマンドのメモ
- 16. S3 の Event notifications でエラー
- 17. CDKを使ってお名前.comで購入したドメインをALBでECSにホストベースルーティングする
- 18. 【AWS】Lambda Function URLsを使用したLineBot運用に切り替えた所感
- 19. AWS ECSの概念図をMermaidで書いてみた
- 20. 【AWS】オートメーションでEC2を自動停止・起動する手順(画像付き)
SAAに2回落ちたが、SAPは1回で合格した話
# 概要
SAAに2回落ちたものの、SAPは1回で合格しました。
何が違ったのか、備忘のためにまとめます。# 結論
勉強期間の長さに関係なく、**いかに能動的に行動できるかがポイント**です。# スタッツ
□SAA(AWS Certified Solutions Architect – Associate)
・1回目
-勉強期間:**2か月**(1日当たり平均1時間弱)
-受験日 :2019/1 (651点・**不合格**)
・2回目
-勉強期間:**1か月**(1日当たり平均1時間弱)
-受験日 :2019/3 (681点・**不合格**)
・3回目
-勉強期間:**1か月**(1日当たり平均1時間弱)
-受験日 :2020/4 (787点・**合格**)□SAP(AWS Certified Solutions Architect – Professional)
・1回目
-勉強期間:**1か月**(1日当たり平均1時間弱)
-受験日 :2022/3 (781点・**合格**)# SAAの勉強法で変えたこと
1回目と2回目の
GW中にやったことリスト
今年のGWでやったことを以下に記します。
① ホワイトハッカー関連
・virtualboxで仮想マシン2台(Kali Linux + Windows7)を立て、Kali Linuxからwindows7へ攻撃(ping攻撃、netcatによるバインドシェル・リバースシェル攻撃、管理者権限の奪取、パスワードクラッキング、バックドアの設置)を行った。
・Wiresharkを用いてパケットキャプチャを行った。
・CTF(セキュリティコンテスト)のバイナリファイル解析・QRコード解析を行った。
・Pythonのsocketライブラリを用いて、TCPコネクションを実装した
StackSetsをCloudFormationで構築する
# はじめに
今回は、StackSetsをCloudFormationから作成してみました。
前回の最後で課題とした「各スタックインスタンスへのパラメータの一覧化」は適ったかなと思っています。https://qiita.com/a_b_/items/a2d131e30ef74d701367
# 概要
– スタックセットをCloudFormationで作成
– スタックインスタンスへ渡すパラメータを明記する形
– コードをみればすべてのスタックインスタンスへのパラメータがわかる# 手順
## 親/子アカウント上にIAMロール作成
以前の記事で説明したように、親と子アカウントに必要なIAMロールを作成します。
https://qiita.com/a_b_/items/1858055ba447c4966b58#%E6%89%8B%E9%A0%86
## パラメータ無しの場合
パラメータなしの場合は以下のようになります。
“`yaml
AWSTemplateFormatVersion: 2010-09-09Parameters:
Adm
AWS SAPに合格したので効率的な勉強方法(だと思う)を纏めてみました
# はじめに
先日、AWS認定資格の最難関と言われるAWS SAP(AWS Certified Solutions Architect – Professional)に一発合格したので、個人的に効率的だと思う勉強方法を纏めてみます。
これからSAPの勉強をしようと思っている方に向けて、この記事が少しでも参考になれば幸いです。# 勉強方法
本記事は前提として、SAAを取得している方向けとなります。取得していない方は、まずは必ずSAAから取得するようにしましょう。### ①AWS SAPの模擬試験を受験する
最初にAWS SAPの模擬試験問題を受験しましょう。
資格試験の鉄則は、初めに模擬試験や過去問を解いて**試験のレベル感を知ること**です。問題をいきなり解くことは中々ハードルが高いですが、こちらの模擬試験は問題数が20問程度と少なめなので、そこまで負担なく取り組めるかと思います。
以下の記事を参考にして、登録・受験を行いましょう。https://dev.classmethod.jp/articles/new-aws-official-practice-questions/
Lambda 関数 URL
# 概要
従来は、HTTP(s)経由で、API Gateway –→ Lambda とアクセスしていたが、関数 URL がサポートされた事で、API Gateway なしででアクセスできるようになった。
パブリックに公開するAPIや、簡易な認証実装でも差し支えの無いAPIの場合は、AWSLambdaで実装する場合には、関数 URL の利用を検討するとよい。
# 認証タイプ
「認証タイプ」には**AWS_IAM**と**NONE**があります。
– **AWS_IAM** : 認証された IAM ユーザーとロールのみがアクセス可能。
– **NONE** : パブリックにアクセス可能。# CORS
CORS を使用して、任意のドメインから関数 URL へのアクセスを許可することも可能。
# 参考URL
https://aws.amazon.com/jp/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/
#
AWS日記39 (AWS CodePipeline)
# はじめに
今回は [AWS CodePipeline](https://aws.amazon.com/jp/codepipeline/) を試します。
[CodeCommit](https://aws.amazon.com/jp/codecommit/)のリポジトリが変更された際に、[CodeDeploy](https://aws.amazon.com/jp/codedeploy/)を利用してEC2にデプロイします。
[チュートリアル: シンプルなパイプラインを作成する (CodeCommit リポジトリ)](https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/tutorials-simple-codecommit.html)を参考にします。# CodeCommit リポジトリを作成
– [ステップ 1](https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/tutorials-simple-codecommit.html#
AWSのRDSでメンテナンスの案内が来た時におまえがすること
ここ最近、AWSのRDSでハードウェアメンテナンスに伴う案内が来たやろうと思う。ここにきたんやったらそうやろう。
そしたらお前がせなあかんことは環境によってわかれるんや。# シングルAZ
開発環境とかやな。対応は再起動や。この場合は、お前がせなあかんのは以下の4つや。1. 再起動完了に10分くらいかかるのを関係者に説明する
1. その間RDSはつかえやんので関係者に同意を取る
1. AWSでの自動再起動か、手作業で再起動するか決める
1. やるだいたい10分くらいかかるんで、その間はRDSがつかえへん。それを何とかせえっちゅうスキルとは全く関係ない話をせなあかんちゅう寸法や。
AWSが通知されたメンテナンス時期(ウィンドウと言うやつや)まで待つか、先にRDSのコンソールからメンテナンス適用するかも関係者で決めやなあかんやろな。まぁ、シングルAZは開発環境やろうからどうでもええやろ。# マルチAZ
本番環境やろな。これもだいたいおんなじや。シングルAZと違ってフェイルオーバが発生する。したがってお前は前項と似たようなことをせなあかん。
1. フェイルオーバに60秒かかる(
AWS Certified Developer – Associate(DVA-C01)に合格するまで
先日DVAを取得しました。
取得するまでの流れを書きます。## 事前の知識
・インフラエンジニア歴7年くらい
・AWS経験は1年くらい
・CLP、SAA、SOA取得済## 勉強内容
**・総勉強時間:50hくらい(1ヶ月)**
平日は2hくらい、土曜は5hくらい。
直前はさらにがっつりやりました。いつも思いますが、仕事後はやっぱりきついですね。
頭の回転が鈍いのが明らかにわかるので絶対効率的じゃないです。
早起きできる人は早起きしてやると圧倒的に効率あがると思います。試験は勉強開始時点で合格者の情報拾って1ヶ月後で予約しました。
この先予約は退路を断つために絶対やった方がいいです。**・勉強内容①:問題集**
DVAはポケットスタディが有名ですが、黒本がでてたのでこれを読みました。
Amazon SageMaker Processing でデータ並列処理をする!
## はじめに
機械学習をする際に、学習データに前処理をしたいことってありますよね。機械学習では大量のデータを使うことも多いと思いますが、データが多いと前処理するのにも時間がかかって大変です。この記事では、Amazon SageMaker を使って、大量のデータを複数のインスタンスに分散させて処理をすることでデータ処理時間を短縮する方法をご紹介します。## Amazon SageMaker Processing とは
Amazon SageMaker Processing は、任意のコンテナと任意のスクリプトを使ってデータ処理ジョブを実行するための Amazon SageMaker の機能です。SageMaker のたいていの機能は API で呼び出して使用できるのですが、SageMaker Processing も API から使用することができます。[こちらのサンプルノートブック](https://github.com/ohbuchim/sample-codes-for-aiml/blob/main/amazon-sagemaker-processing/processing
別アカウントへAMIの共有をしてみた
## はじめに
みなさんは、開発用アカウントで作ったAMIを本番用アカウントでも利用したいと思ったことはありませんか?
今回はそういったケースに使える[「AMIの共有」](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/sharingamis-explicit.html)をしていきたいと思います。
この**AMIの共有**を利用すれば、アカウントを跨いでAMIを共有することが出来ます!—
## 手順
① 移行元アカウント(Account-A)で AMI を作成
② ①で作成した AMI を移行先アカウント(Account-B)に共有
③ 移行先アカウント(Account-B)で共有されたAMIからEC2起動
④ ③で起動したEC2からAMIの取得—
## やってみよう
**① 移行元アカウント(Account-A)で AMI を作成**
該当インスタンスを選択→アクション→イメージとテンプレート→イメージを作成
![image.png](https://qiita-image-store.
Lambda@Edge のオリジンリクエストで、bodyの内容を書き換えてレスポンスを返す方法 [sync-request]
# はじめに
Lambda@Edge(以後、L@E)で、bodyの一部を書き換えてレスポンスを返す方法についてまとめました。
L@Eでbodyを書き換えるには、ビューアーリクエストもしくはオリジンリクエストで可能です。2つの違いは以下になります。
>ビューワーリクエスト
>- CloudFront がビューワーからリクエストを受け取ると、リクエストされたオブジェクトが CloudFront キャッシュにあるかどうかを確認する前に関数が実行されます。>オリジンリクエスト
>- CloudFront がリクエストをオリジンに転送したときにのみ、関数が実行されます。リクエストされたオブジェクトが CloudFront キャッシュ内にある場合、関数は実行されません。
L@Eでbodyを書き換える際の制限は他にもあり、下記のドキュメントに記載されています。https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/edge-functions-restrictions.html#lambda-at
Raspberry Pi Zeroを使ってAmazon Kinesis Video Streamsにカメラ映像送信
# 1. 概要
Raspberry Pi Zero WHにBuster(Debian 10)をインストールしてAmazon Kinesis Video Streams(KVS)にカメラ映像を送信する。
Buster(Debian 10)は2022年前半時点で、旧版のOSとなっている。AWSのアカウント作成や設定などは省略する。# 2. 前置き
## 2.1. 経緯
知人から依頼され、2021年頃にRaspberry Pi 3Bを使ってKVSにUVCカメラの映像をアップロードする手順を確認した。その時点では問題なかったが、最近になって改めてその手順を行ったところ、OSのバージョン違いやコマンドの記載漏れによって動かない、分かりづらいなどが判明したので改めて確認することとなった。## 2.2. Raspberry Pi OSについて
2021年の後半に出たBullseye((Debian 11)だとカメラや画像を扱うときにライブラリが無いなどの状況になっている。何故なのかは知らないが、多くの人が困っているようだ。
2020~2021年前半に使ったOSはBuster(Debian 1
Route53でCAAレコードは設定してますか??
## はじめに
Route53のCAAレコードって何??という感じだったので調査した話です。
## CAAレコードとは?
>ドメイン名の登録者が、登録されたドメイン名に対応する証明書の発行を許可する認証局(Certification >Authority:CA)を指定するリソースレコードです。CAAは、Certification Authority Authorizationを意味します。ドメイン名登録者は、CAAリソースレコードを設定することで
・証明書の誤発行を防止
・不正な証明書発行要求の検知
が期待できます。引用:[CAAリソースレコード【JPRS用語辞典】](https://jprs.jp/glossary/index.php?ID=0218)
普段AWSのACMでしか証明書を作成したことがなく、認証局(CA)は意識してませんでしたが、
要するに、ドメインのCAAレコードでACM以外の認証局を設定している場合は、証明書の作成がエラーになるということです。
ちなみに、AWSのRoute53では、2017年からサポートが開始されたレコードです。https://aw
S3マルチパートアップロード ~Amazon S3パフォーマンス最適化してますか?~
# 突然ですが
皆さん。
S3へサイズの大きいオブジェクトをアップロードする時に、こんな**イラっ**としたことありませんか?> 長時間のアップロード中にネットワークエラーで処理失敗。また最初からかよ・・・
そのようなときには「マルチパートアップロード」を利用することで、中断したアップロードをリトライすることができます。
今回は、S3のパフォーマンスを最適化する機能「マルチパートアップロード」についてまとめてみました。
# マルチパートアップロードとは
## 簡単にいうと
**サイズの大きいオブジェクトを分割して効率よくアップロード**するS3機能のことです。
S3の[ユーザーガイド](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/mpuoverview.html)によるとオブジェクトサイズが100MB以上の場合に利用を推奨しています。また、利用メリットは下記になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazona
AWS CLIのShorthand SyntaxでFirehoseを作成するコマンドのメモ
シンプルなメモ。
(Firehoseに限らず)AWS CLIでShorthand Syntaxを使いたい時に細かい書き方でエラーが出ることがよくあり、結構いつも億劫になるので。
“`
aws firehose create-delivery-stream –delivery-stream-name cli-generated-stream \
–delivery-stream-type DirectPut \
–http-endpoint-destination-configuration ‘EndpointConfiguration={Url=https://….},S3Configuration={BucketARN=arn:aws:s3:::,RoleARN= }’
“`注意点
– シングルクォートがないとUnknown optionsのエラー
– {}の中はJSONではなく、Url=…のようにイコールで結ぶ環境
MacOS バージョン 10.15.7
AWS CLI バージョン 2.0.38
S3 の Event notifications でエラー
S3 にオブジェクトが作成された時に、メールを受信したいのですが、エラーとなってしまいます。
“Unable to validate the following destination configurations”
と出力され、その上には、なんだか、権限が足りない、という記述があります。
これを解決するには、SNS トピックのアクセスポリシーを変更する必要があるようでした。SNS トピックのアクセスポリシーを以下のように変更したところ、エラーがなくなりました。
“`
{
“Version”: “2008-10-17”,
“Id”: “__default_policy_ID”,
“Statement”: [
{
“Sid”: “__default_statement_ID”,
“Effect”: “Allow”,
“Principal”: {
“Service”: “s3.amazonaws.com”
},
“Action”: [
“SNS:GetTopicAtt
CDKを使ってお名前.comで購入したドメインをALBでECSにホストベースルーティングする
# はじめに
CDKの学習を始めるにあたり、[CFnでつくった同じ内容](https://qiita.com/theFirstPenguin/items/f6165120465238814a8b)を今回はCDKで作り直しました。# 全体図
![スクリーンショット 2022-05-07 8.35.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/572098/c9479a70-0382-a1df-c585-79b3216547cf.png)# 前提
- お名前.comでドメインを購入済み
- Route53でexample.comのホストゾーンを作成し、そのNSレコードをお名前.comで設定https://blog.i-tale.jp/2020/04/13_02/
# 実装
## ディレクトリ構成“`
.
├── bin
│ └── app.ts
├── cdk.json
├── jest.config.js
├── lib
│ ├── app-stack.ts
│ ├─
【AWS】Lambda Function URLsを使用したLineBot運用に切り替えた所感
## はじめに
今までLambdaにエンドポイントを追加する際はAPI Gateway等を使用することが必要でしたが、
2022年4月6日よりLambda内でエンドポイントを追加できる「Lambda Function URLs」が公開されたため切り替えて試してみました。DBデータを参照するLineBotにLambdaを使用して運用しているため、実際の使用感についても後述しています!
## 対象者
この記事は下記のような人を対象にしています。– AWSに興味がある方
– API Gateway + Lambdaの構成で開発している方
– Lambdaにてエンドポイントを追加したい方## 所感
1. 設定に関して設定した手ごたえが無いくらい簡単に設定ができました。
手順調査の方が時間が掛かり切り替えに手を動かしたのは5分程です!2. 実際に運用しているLineBotでの使用感
一定時間Lambdaへのアクセスが無い場合、API Gateway + Lambdaで運用していた頃よりもほんの少しタイムラグがある印象ですが、それほど気にならないくらいのレ
AWS ECSの概念図をMermaidで書いてみた
ECSを勉強してみたので、主要概念をMermaidで書いてみた。
“`mermaid
classDiagram
Cluster “1” *–> “*” Service
Service –> “1” TaskDef
TaskDef –> “*” ContainerImage
TaskDef ..> “*” Task : インスタンス化
Task –> “*” Container
ContainerImage ..> “*” Container : インスタンス化
Service –> “0…1” LoadBalancer
Service –> “*” Taskclass Service
Service: +タスク数
class TaskDef
TaskDef: +ポートマッピング
“`### kubernetesとの関係
別のものなので、完全に対応付けできるわけではないですが、概ね似ている概念同士の関係
|ECS|Kubernetes|備考|
|-|-|-|
【AWS】オートメーションでEC2を自動停止・起動する手順(画像付き)
## はじめに
EC2インスタンスを検証環境と本番環境で分けている場合、検証環境を丸一日起動させたくないときに自動で停止起動を組み込みたい。## 使用環境
– VPC
EC2インスタンスを配置するのに必要
– EC2
自動停止・起動する対象
– Systems Manager(SSM)
今回の主役
– Amazon EventBridge
SSMターゲットを紐付けるために必要## やってみた
### ドキュメントを作成する
「AWS Systems Manager」を開き、左から「共有リソース」>「ドキュメント」を開きます。
「Create document」から「Automation」をクリックします。
![スクリーンショット 2022-05-04 23.54.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478546/55f4663e-a2f1-3efb-63fe-7a67250a8fe4.png)名前を入力して、エディタを開きます。
今回はご自身がわかるように設定してください。