- 1. AWS IoT Coreを使用してDynamoDBに保存する
- 2. AWSクラウドプラクティショナー受験記
- 3. 【初心者】【備忘】EC2にposgresql12.3をインストール
- 4. AWS CDKのaws-lambda-nodejsで”Error: spawnSync docker ENOENT”が出るとき
- 5. EC2インスタンスへ接続するsshクライアントとして VSCode Remote SSH を利用した時にサーバーがビジーになる現象の考察
- 6. cloud-initでswapを設定する
- 7. cloud-initでSSHのポート変更と公開鍵の設定をする(AWS編)
- 8. 【AWS SAA対策】最初に見ておくとよいExam Readiness
- 9. DatabricksとAWS CodePipelineによるサーバーレス継続的デリバリー
- 10. AWS CLIでパラメータストアからパラメータを削除するコマンド
- 11. [Go言語] Golang + AWS Lambdaを実行するとfork/exec /var/task/main: exec format error: PathError
- 12. コロナでペットを飼う人が増えたけど飼育放棄する人も増えたので何か解決できればと思いサービスをリリースしました
- 13. IAMのポリシー書き方 json編
- 14. ECSのtask definitionで複数フィールドでクエリしたいとき
- 15. 続・GradleでCodeArtifact自動化
- 16. AWS PrivateLink 経由で ALB 配下 の Lambda 関数を起動する
- 17. Lambdaで取得した画像をKinesis Firehose経由でS3にアップロードする
- 18. AWS CLIを使って、Amazon S3へ自動バックアップ
- 19. SecurityHubのAPIでセキュリティ情報を取得してみる
- 20. フロントエンド開発の色々
AWS IoT Coreを使用してDynamoDBに保存する
# はじめに
> 前回の記事でraspberryPiとAWS IoT Coreを使った記事の続きでAWS IoT Coreで受け取ったデータをDynamoDBに保存してみようと思います。– 前回の記事
[AWS IoT Coreを使ってみた](https://qiita.com/arakirai1128/items/8d2b790d10d3b1b1ee32)
# 検証環境
– RaspberryPi3B+
– 温湿度センサー(DHT22)
– AWS IoT Core
– AWS DynamoDB# DynamoDB作成
1) AWSマネージメントコンソールにログインしてDynamoDBサービスを開き「**テーブル**」→ 「**テーブルの作成**」ボタンをクリックします
[AWSマネージメントコンソール](https://aws.amazon.com/jp/free/?trkCampaign=acq_paid_search_brand&trk=ps_a134p000006gTa8AAE&sc_campaign=acquisition_JP&sc_ch
AWSクラウドプラクティショナー受験記
AWS認定のクラウドプラクティショナー(
CLF)に合格しましたので、勉強方法などの受験記を残します。## AWS CLF概要
AWSによる認定資格で、役職別の基礎コースにあたる資格。* 試験時間:90分
* 受験料:100USドル
* 実施日:通年
* 出題形式:選択式(複数選択の問題あり)
* 出題数:65問
* 受験方法:テストセンター or リモート※いずれも2021/10/4現在の情報です
▼公式サイトリンク
[AWS認定](https://aws.amazon.com/jp/certification/)
[AWS Certified Cloud Practitioner](https://aws.amazon.com/jp/certification/certified-cloud-practitioner/)## 受験者スペック
* エンジニア歴10数年
* 簡単なスクリプトを書ける
* システム設計がおおまかにできる
* AWSの知識・実務経験
* S3をなんとなく知っている(CDNだと思っていた)
* 手順書に沿ってELBやS3バケットの
【初心者】【備忘】EC2にposgresql12.3をインストール
## EC2にpostgresql12.3インストール
#### repoインストール
EC2のディストリビューション?、バージョンを確認する“`console:
# cat /etc/system-release
Amazon Linux release 2 (Karoo)
“`Amazon Linux は**RHEL7ベース**らしいのでここからのrepoファイルをインストールする
>https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/
pgdg-redhat-repo-latest.noarch.rpmrepoファイルのダウンロード。
EC2のrootユーザで作業“`console:
# wget –no-check-certificate https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
“`repoファイルのイ
AWS CDKのaws-lambda-nodejsで”Error: spawnSync docker ENOENT”が出るとき
# 問題
Lambda関数をTypeScriptで書くために`aws-lambda-nodejs`を使おうとしたら、下記のエラーが出た。“`sh
Error: spawnSync docker ENOENT
at Object.spawnSync (node:internal/child_process:1083:20)
at Object.spawnSync (node:child_process:812:24)
at dockerExec
…
“`# 解決策
実行環境がmacOSの場合は、ビルドモジュールである`esbuild`を手動でインストールするのが良いらしい。“`
$ npm install –save-dev esbuild@0
“`
or“`
$ yarn add –dev esbuild@0
“`# 参照
https://docs.aws.amazon.com/cdk/api/latest/docs/aws-lambda-nodejs-readme.html#local-bundling
EC2インスタンスへ接続するsshクライアントとして VSCode Remote SSH を利用した時にサーバーがビジーになる現象の考察
# はじめに
VSCode はエディタであると同時に、非常に拡張性の高いツールでもある。 その中には、VSCode 上でサーバーへ SSH 接続を行い、サーバー上のコンテンツを編集することも可能な拡張機能 (Remote SSH) も存在する。
https://code.visualstudio.com/docs/remote/ssh
https://blog.serverworks.co.jp/tech/2020/02/20/vscode-remote-ssh/
記事を見ると単に「便利」とだけ記述されているが、実際に使ってみるとサーバー運用者としてみるとよろしくない仕様・挙動を示したため、それらの調査結果を書き記す。
# TL; DR
– 接続先サーバーが貧弱な場合 (AWS だとメモリが2GBもない場合は特に) は利用を推奨しない
– 接続先サーバーに複数の `node` プロセスを立ててリソースを消費する
– 接続元が切断してもサーバー上に `node` プロセスが残ったままになる (正常な状態であれば接続が切れて 5-10分後ぐらいに `node`
cloud-initでswapを設定する
t3.nanoみたいなメモリが0.5GBぐらいしかないインスタンスで遊んだりすると、ちょっとサービス起動したり、下手するとパッケージの大量アップデートなどがあるだけでメモリ不足になることがあります。
EC2に限らず昨今のクラウドサービスの仮想マシンは基本的にswapが設定されていないのですが、それだと色々困ったので、今回はcloud-initでswapの設定をやってみようと思います。
※ここではAWSを前提に進めていきますが、だいたいどの環境でも一緒でしょう。
## インスタンスストアがない場合
既存のボリュームにswapファイルを作りましょう。
気の利いた設定機能はないので`runcmd`でゴリゴリ書きます。流れとしてはこのような感じになります。
1. `dd`コマンドでswap用のファイルを作る
2. `mkswap`でスワップ領域を作る
3. `swapon`でスワップ領域を有効化する
4. 再起動時に自動マウントされるように`/etc/fstab`に設定を書いておく“`
#cloud-config
runcmd:
– [ sh, -c, “dd if=/
cloud-initでSSHのポート変更と公開鍵の設定をする(AWS編)
※cloud-initの機能はクラウドサービスやOSによって使える機能が微妙に異なっていたりするので、ここではAWSのAmazon Linux 2を前提としますが、他の環境でもだいたい応用できるかと思います。
EC2でインスタンスを立てる際に「SSHのポート変更と公開鍵の追加設定もcloud-initでできたらなー」「Ansible使うほどじゃないんだよなー」と色々調べてたらどうにかなったというお話です。
## 背景
– Terraformなどで自動化してEC2インスタンスを立てる
– インスタンスを立てる際に、SSHのポート変更と鍵の追加も自動でやりたい
– インスタンス作成時にキーペアを設定できるが(ひとつしか設定できないので)、複数(メンバー全員分)の公開鍵を追加したい
– Ansibleは使わない[^1]## やり方
“`
#cloud-config
ssh_authorized_keys:
– ssh-rsa AAAAB3Nza…
– ssh-ed25519 AAAAC3Nza…runcmd:
– sed -i -e ‘s!#Port 2
【AWS SAA対策】最初に見ておくとよいExam Readiness
概要
–
SAA 試験準備に関するEラーニングの紹介記事になります。
無料で勉強することが出来ます。Exam Readiness: AWS Certified Solutions Architect – Associate(日本語実写版)
https://www.aws.training/Details/Curriculum?id=83470Exam Readinessについて
–とても優秀なAWS公式の試験対策リソースです。
Exam Readinessについてあまり情報が出回っていなかったので、是非参考にしてください。
試験範囲や勘所の把握だけでなく、試験準備前の総復習にも活躍しますよ!2時間くらいで終わります。
##コースの目標
コースより抜粋
>このコースの学習内容は、以下のとおりです。>試験手順に関する注意事項を確認する
>試験の構成と問題のタイプを理解する
>問題が AWS のアーキテクチャの設計の概念とどのように関連しているかを識別する
>試験問題で出題される概念を理解する
>AWS Certified Solutions Architec
DatabricksとAWS CodePipelineによるサーバーレス継続的デリバリー
[Serverless Continuous Delivery with Databricks and AWS CodePipeline \- The Databricks Blog](https://databricks.com/blog/2017/07/13/serverless-continuous-delivery-with-databricks-and-aws-codepipeline.html)の翻訳です。
:::note info
2017年時点の記事です。
:::一般的に、二つの特性が多くの企業を成功に導いています。第一に、彼らは新技術をクイックに適応しています。第二に、結果として、技術的なリーダーシップを獲得しマーケットシェアを拡大しています。迅速に洞察をアクションにつなげることができる企業は、自身の競争において大きな優位性を維持しています。迅速かつ繰り返し可能な方法で、分析を活用するための鍵は、複雑なデータアプリケーションに対して開発からプロダクションへの移行を容易にするための、堅牢な継続的インテグレーション(CI)、継続的デリバリー(CD)システムとなります
AWS CLIでパラメータストアからパラメータを削除するコマンド
AWS CLIの操作が得意では無いので、備忘として残しておきます。
なお、すべてのコマンドが知りたい場合は公式資料を見るのが一番確実です。https://docs.aws.amazon.com/cli/latest/reference/ssm/delete-parameter.html
## AWS CLIコマンドの基本
AWS CLIコマンドの基本形は以下です。
[options]には大体サービス名の略称が入ります。“`
aws [options][ …] [parameters]
“`パラメータストアで言うとSystems Managerが対象のサービスなので、optionsはssmになります。
公式ドキュメントでもoptionsは確認できるので、以下の画像の部分を参考にしてみてください。![options.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2055433/5c6a60fe-f63f-cf0
[Go言語] Golang + AWS Lambdaを実行するとfork/exec /var/task/main: exec format error: PathError
## 概要
Serverless FrameworkやSAMやbuildしたものをそのまま上げてみるなどして、AWS LambdaにGoをデプロイするとどのケースでも以下のエラーがCloudWatchに出力されていた。筆者はM1 Macを使っていることで詰まった。“`
fork/exec /var/task/main: exec format error: PathError
null
“`## 解決策
### 一般的な解決法
go buildがなんかしらおかしいはずです。以下のようにgo buildはしましたか?
生成したバイナリのディレクトリ位置も確認してみたください。“`
$ GOOS=linux go build .
“`### M1 Macユーザー
go build時にLambdaで指定しているアーキテクチャに合わせていますか?
デフォルトはx86_64のため設定を変更をしていなければ以下のようにamd64でbuildするようにする“`
$ GOARCH=amd64 GOOS=linux go build .
“`
コロナでペットを飼う人が増えたけど飼育放棄する人も増えたので何か解決できればと思いサービスをリリースしました
**ペットの情報がもっと広く公開されている環境**と**飼い主とペットをサポートすることでより共存しやすい環境**を目標にサービスをリリースしました。
[bibyブログ](https://biby-blog.studio.site/)というサービスです。![FireShot Capture 013 – bibyブログ – biby-blog.studio.site.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243199/9ba95f69-7aaf-125d-6a8c-4dcc4e847ebb.png)
本サービスのリンクはこちらです。
https://diary.biby.live/# bibyブログでできること
bibyブログはペットの何気ない日常や思い出を投稿できるブログサービスです。登録は誰でも可能で、無料で利用することができます。ブログには画像も自由にアップロードできるので、大切なペットとの写真をブログで公開することができます。
PayPal.Meのアカウントをお持ちの方は、ア
IAMのポリシー書き方 json編
先日、初めてポリシーを設定したのですがjsonでの書き方をまとめている記事があまりなかったのでメモ。
ビジュアルエディタは使用しなかったのでその内容は入っておりません。#公式ドキュメント
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies.html#ポリシーとは
AWSにおける特定の操作を許可するか、禁止するかの設定です。
普通IAM単位で設定します。
全許可の場合コンソールからサーバーを削除とかもできてしまいますので、セキュリティ上非常に重要な設定になります。#jsonで書く際の最小構成
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “hoge”,
“Effect”: “Allow”,
“Action”: “*”,
“Resource”: “*”
}
]
}
“`コンソールから「ポリシー作成」を選択す
ECSのtask definitionで複数フィールドでクエリしたいとき
jqのドキュメントと照らし合わせながら見つけました
## 方法
以下のようにやれば、`taskDefinitionArn`と`containerDefinitions`が両方取れます。
もっといい方法がある気もしますが、、“`
$ aws ecs describe-task-definition –task-definition task \
–query ‘taskDefinition | {
taskDefinitionArn: taskDefinitionArn,
containerDefinitions: containerDefinitions
}’{
“taskDefinitionArn”: “arn:aws:ecs:ap-northeast-1:xxxxx:task-definition/task:12”,
“containerDefinitions”: [
{
— 略 —
“`配列ぽくとりたいとき
“`
aws ecs describe-task-definition –task-definition
続・GradleでCodeArtifact自動化
結論だけ読みたい人は[こっち](#利用例)
## はじめに
一応、[前回](https://qiita.com/TAC_yacht/items/eb4ca035491dc9a2b77f)それなりにコピペで済むようにはしたものの、冗長であると言わざるを得ない。
そこでプラグインにした。## プラグインの設定
“`groovy:build.gradle
plugins {
id “io.github.tac-yacht.codeartifact-repository” version “0.1”
}
“`
ほかのプラグインも使ってるときは真ん中の行だけ追加
※“`settings.gradle“`で“`pluginManagement.repositories“`を設定してる時は“`gradlePluginPortal()“`の追加を忘れずにポータルで各種プラグインごとに例示されてるのと同じではある
## レポジトリの設定
3種類から選べる。### style A
“`aws codeartifact get-repository-endpoint`
AWS PrivateLink 経由で ALB 配下 の Lambda 関数を起動する
## はじめに
2021/9/28 のアップデートで NLB のターゲットグループに ALB を指定できるようになりました :tada:https://aws.amazon.com/jp/about-aws/whats-new/2021/09/application-load-balancer-aws-privatelink-static-ip-addresses-network-load-balancer/
これにより AWS が提供する機能だけを使用して、ALB 配下にある Lambda 関数を PrivateLink 経由で呼び出すこともできるはずです。ALB ターゲットタイプの使い方や注意点等は他の記事に譲るとして、本記事では以下の構成を試してみます。
![image.png](https://qiita-i
Lambdaで取得した画像をKinesis Firehose経由でS3にアップロードする
Kinesisの動作確認のため、Lambdaから画像を流した時の個人メモ
[(参考)Firehose — Boto 3 Docs 1.9.42 documentation – Amazon AWS](https://boto3.amazonaws.com/v1/documentation/api/1.9.42/reference/services/firehose.html#Firehose.Client.put_record)
[(参考)BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html)—
# Kinesis Firehose
– 「Create delivery stream」を押下![000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242897/30c1c40f-110a-5440-7b90-c86b7a83d8dc.jpeg)
–
AWS CLIを使って、Amazon S3へ自動バックアップ
##はじめに
数TBのサーバデータをクラウドへバックアップする必要性が出てきて、なるべくバッチとかタスクとか使って自動でやりたいと思ったのが事の始まりです。AWSのCLIを使うとめちゃくちゃ簡単に実現できたので、今回ご紹介します。
##AWS CLIのインストール
まず、下記からAWS CLIをダウンロードして、インストールします。
[AWS CLI](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-windows.html)
すべてそのままNEXTで進んでいけばOKです!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1980545/aa3a5a88-96cc-b979-0e89-1cb54db25eec.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1980545/8b78150f-30
SecurityHubのAPIでセキュリティ情報を取得してみる
SecurityHubのAPIを使って、AWSの画面に出ている情報を収集しようとしてみた。
# やりたいこと
AWS Security Hubのセキュリティ基準から確認できる、以下の情報を取得したい。
(1) 各ベンチマークの各項目のステータス(成功とか失敗とか)
以下の「ステータス」とか「タイトル」とか。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401295/89dc8d54-fe97-baec-f892-4437c59ba21c.png)
(2) 各ベンチマークの各項目の、リソースごとのステータス
各項目の詳細画面では、以下のように項目に関係のあるリソースとリソースごとのステータスが表示されるので、それを取得したい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401295/2843e04a-a58a-8aa1-ee99-fd42d043ad62.png)# まずは何も考
フロントエンド開発の色々
フロントエンド開発について興味があるので,どういったやり方があるのか勉強がてらまとめてみました.
## Traditional Way (伝統的によくあるやり方)
ブラウザからのリクエストに対して、サーバはバックエンドのAPIを実行し、必要な情報をあつめて、都度HTMLを生成して応答します。![traditionalWay.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580420/a64a5b2c-0c2e-6ef1-79ec-af390dc0fbb8.png)
## Single Page Application (SPA)
SinglePageApplicationとは,単一のページで構成されるアプリケーションです.
初回のみHTML/CSS/JSのセットをホスティングサーバから取得したら,あとはブラウザでHTMLをレンダリングします.
ブラウザが直接バックエンドとやりとりして動的にページを更新します.
ReactやVueはSPAのフレームワークです.![spa.png](https: