- 1. NFCを用いて入室管理システムの作成備忘録Ver1.0
- 2. 自社サービス「病院なび」へ AWS Opensearch を導入したい
- 3. AWS practitionerに一週間で合格するには
- 4. aws cliの”default”を名前変更&変更後のprofileをデフォルトにする方法
- 5. Amazon CloudWatch Logs でログを読むための手法メモ
- 6. 検証用AWSアカウントでGuardDutyと闘う話 〜不用意にポート開けるな編〜
- 7. ポートフォリオ作成の過程で学んだ技術を振り返る ~Webサーバ構築編~
- 8. IAMロールについて
- 9. Amazon Auroraについてまとめてみました。
- 10. Aurora「グローバルDB」を使って災対発動を想定したDRリージョン切り替えやってみた
- 11. 【書籍】AWS IAMのマニアックな話(IAMとは?)
- 12. ECSサービスをALBで公開する際のポート設定
- 13. AWSリソースの自動起動停止について
- 14. Active Storage x ECS Fargateで画像投稿できない
- 15. EC2にFastAPIを構築し、挙動確認してAPIを叩いてみた
- 16. 【AWS/Python】EC2にFastAPIを入れてHelloWorldする
- 17. 【AWS】S3のハンズオンで学んだことをまとめる
- 18. Amazon Managed Blockchain で Simple NFT Marketplace を触ってみた
- 19. Raspberry Pi Zeroを使ってAmazon Kinesis Video StreamsにWeb RTCでカメラ映像送信
- 20. AWS AppSyncを触ってみた #1
NFCを用いて入室管理システムの作成備忘録Ver1.0
# システム作成の経緯
先日メリカリを閲覧していたところ、「Sony Corporation©︎ RC-S330」を格安で入手することができました。
そこで、NFCを用いて遊んでみようと思い入室管理システムの開発を行いました。
※今購入するのであれば、「Sony Corporation©︎ RC-S380S」が最新モデルなのでこちらを買うと良いと思います。# 開発環境
* OS : macOS Monterey12.2.1(Intel Mac)
* リーダ : Sony CorporationRC-S330
* 言語 : Python3.10.0
* DB : AWS RDS(MySQLを使用)# 搭載する機能の決定
入退室管理システムで必要な機能をまとめました。
1. 新規登録機能(ICカードの情報と名前等を登録する機能)
2. 削除機能(ユーザーの削除を行う機能)
3. 入退室記録(何時にどこに入退室したのか)まずはシンプルに基本機能である上記3点の機能を実装することとします。
# システム構成図 & システムフロー
1. 新規登録機能のシステムフロ
自社サービス「病院なび」へ AWS Opensearch を導入したい
はじめまして。「[病院なび](https://byoinnavi.jp/)」の開発チームメンバー甘利です。
国内最大級の病院検索サービス「病院なび」の改善にRailsエンジニアとして日々挑み続けております。現在 AWS Opensearch の導入を業務いて行なっています。少しずつ共有して行けたらと思っています。(※ この記事に具体的な手順等は含まれていません)# 概要
自社サービスの 「病院なび」 に AWS Opensearch を導入するにあたり ”使いやすい仕組み” を目指して色々考えていきたいと思っています。「病院なび」 は主に Ruby on Railsで開発されていますので、便利な Gem で楽な実装ができると考えていました。ところが、AWS Elasticsearch から AWS Opensearch に変更になってしまい、巷にあるGemがそのまま使えなくなってしまい、楽ができなくなってしまいました orz。
現状、Opensearch を Rails から利用する際の選択肢として”公式コミュニティが公開している Ruby 用クライアントの利用”が比較的楽で
AWS practitionerに一週間で合格するには
私はこれをやってPASSしました。
本番より難しめ。
本番が簡単に感じるはず。書籍名
AWS Certified Cloud Practitioner Practice Tests 2022: 390 AWS Practice Exam Questions with Answers, Links & detailed Explanations (English Edition)
aws cliの”default”を名前変更&変更後のprofileをデフォルトにする方法
複数アカウントで運用していると、
– いちいち`–profile`で指定するのは面倒くさい
– どれがデフォルトなのか分かりにくいと思い、`default`という名前を持たないようにしたいと思った。
gcloudでも全てに名前つけてactivateで切り替えているので# 名前を変更するコマンドはない
結論から言うとファイルをいじる。
`.aws/`にある`/credentials`と`config`を開いて`[default]`となっている部分を`YOUR_FAVORITE_NAME`と手打ちで変更。
それからWindowsでは
“`bat
set AWS_DEFAULT_PROFILE YOUR_FAVORITE_NAME
“`
Linux系なら
“`bash
$ export AWS_DEFAULT_PROFILE=YO
Amazon CloudWatch Logs でログを読むための手法メモ
Amazon CloudWatch Logs でログを読むために学んだ手法をいくつかメモします。
あまり高度な機能は利用せず、ECS や Lambda をほぼデフォルト設定で使って出力されたログを調査するような想定です。# 前提となる概念について
CloudWatch でログを読む際には「ログイベント」、「ログストリーム」、「ロググループ」の概念について意味を理解している必要があります。
下記のドキュメントを引用しつつ、ごく簡単に各概念を説明します。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/CloudWatchLogsConcepts.html
## ログイベント
> ログイベントは、モニタリングされているアプリケーションまたはリソースによって記録されたアクティビティのレコードです。

2021年師走、街はクリスマスのイルミネーションが点灯し、世間は年越しに向けてせわしなくなり始めたある日、1通のSlack DMが届いた。
例の如くインシデントレスポンスからだった。
英語のメッセージだったが、要約するとこう↓いうことである。
> お前のインスタンスがポートスキャンされて8089ポートにアクセスされたぞ。なんでこんなポート開けてるんだ?とりあえずインスタンス止めといたンだわ
あーやっちまったかな、と思いつつGuardDutyを確認すると、確かに某国から `8089` で**Port Probing**を検知したとのイベントが上がっていた。
# なぜ8089ポートを開けていたのか?
**結論**:ただの不注意
検証用にSplunkのインスタンスを立てて、あろうことか管理用ポート8089を `0.0.0.0/0` に開けてしまっていたのである。
し
ポートフォリオ作成の過程で学んだ技術を振り返る ~Webサーバ構築編~
# はじめに
Javaのポートフォリオ作成の過程でWebサーバを構築する必要があり、リバースプロキシからSSL証明書の設定,取得までの手順をまとめました。自身の備忘録として、linuxコマンドやオプションの意味も一部まとめております。# 前提
AWSにて、以下の環境が構築されている前提で話を進めます。ドメインを取得し、Route53にDNSレコードを設定済みです。
EC2にはnginxをインストールしているだけになります。この状態からtomcatをインストールし、リバースプロキシ、ssl証明書の取得,設定を行っていきます。

こちらのサイトを参考に、tomcatのインストールを行いました。https://tech.pjin.jp/blog/2019/10/02/ec2_corretto11_02/
## nginx
オープンソースな
IAMロールについて
# はじめに
SAAを取得してCLIの勉強の為に[connpassのJAWS-UG CLI専門支部](https://jawsug-cli.connpass.com/)に参加して、CLIもIAMも全く理解出来ていなかった為、復習とアウトプットの為に記事にする事にしました。
アウトプット慣れしていない事やそもそも学歴がないので変な文章・間違った知識がある場合はご指摘は歓迎します。# 私のスペック
SESでエンジニア歴1年ほど、それまでは6年ほど営業職
JsとC#で開発経験・インフラ経験は無し
SAAは取得済み# IAMロールとは
IAMとはAWSリソースへのアクセスを管理するための`認証認可を制御するサービス`です。その中でロールはAWSサービスやアプリケーションなどのエンティティからAWSリソースを操作する権限を付与することができる機能です。
ここでいう`認証は「誰に」`、`認可は「何を許可/禁止」`
と考えてもらえればわかりやすいです。
そして`ロールは「誰に」`の部分を制御し、`ポリシーは「何を許可/禁止」`する部分です。ポリシーをロールにアタッチをし
そのロール
Amazon Auroraについてまとめてみました。
# はじめに
こんにちは、山田です。
現在携わっている案件で、Amazon Auroraを使用する機会があったため、Amazon Aurraについて学習しました。
今回学習したことを忘れないように、記事にまとめていきます。# Amazon Auroraとは
Amazon Auroraとは、クラウド向けにAWSが構築したデータベースです。
RDSを作成する際に、データベースエンジンの1つとしてAuroraを選択できます。# Auroraの特徴
Auroraの特徴としては、主に以下の点が挙げられます。**・Aurora DBクラスターは、1つ以上のDBインスタンスと、データを管理するクラスターボリュームで構成される。
・インスタンスとストレージとボリュームが分離している。
・読み込み処理およびフェイルオーバーが可能なAuroraレプリカが作成可能。
・データボリュームは、3AZに2個ずつ、計6個のコピーが作成され、高い障害性を持つ。**とRPO要件を満たすことができない。グローバルDBの便利なところは、この「リージョン間のDB同期」をAWSがマネージドで勝手にやってくれることである。
https://aws.am
【書籍】AWS IAMのマニアックな話(IAMとは?)
会社の先輩から勧められて読んでみました。
マニアックとはかかれていますが、IAMの基本の話から思想・設計の話まで幅広くかかれています。
アウトプットとしてこの記事を書きます。IAM設計は答えがないという点で奥が深くて、難しいです。
そう意味で設計段階での思想がとても重要になります。IAMに特化した本は他にないので、これから設計とかやると人は持っておくと良い1冊です。
ちなみに著者の佐々木さんは、AWS認定の要点整理系の本も書いてるNRIネットコムの方です。
この記事では全体のざっくりとした紹介と、IAMの基本と気になったポイントを紹介します。## 全体の概要
**第1章 AWS と IAM**
IAMがどんなものであるか?という概念的な章。**第2章 IAM の機能★後述します**
ECSサービスをALBで公開する際のポート設定
# はじめに
ECSサービスをALBで公開するとき、いつもポートの設定がわからなくなるので理解をまとめました。# Fargateのとき
– アプリケーションのポート / TargetGroupのPort設定 / ServiceのロードバランサのContainerPort / Task定義のContainerPort は同じ値に設定する
– TargetGroupのTargetTypeは`ip`固定
– Task定義のNetworkModeは`awsvpc`固定
# EC2のとき
– アプリケーションのポート / Task定義のContainerPort は同じ値に設定する
– TargetGroupのPort設定 / ServiceのロードバランサのContainerPort / Task定義
AWSリソースの自動起動停止について
## 考えたこと
* 拡張性
* 自動起動停止したいサーバーは増えていくだろうし、状況に応じて設定を一時解除したりもしたい。そのため、起動停止の設定を簡単に追加削除できるのが望ましい。
* さまざまなリソースの起動停止(構築削除)を同じ仕組みで扱いたい。
* エラーについて
* 開発環境で利用するのが主な用途なので緊急性はあまりないが、サーバーが起動していないことに気づくのが遅れると、開発に影響が出る。そのため、エラー時は通知がほしい。
* 起動停止する処理は各々が独立している方が良い。
* for文で回すと、途中のエラーで後続のリソースが処理できない可能性がある。
* イベントルールを増やした方が良さそう。
* 管理
* どのサーバー等が起動停止の対象になっているのかすぐにわかるようにしたい。
* リソースはTerraformで管理したい。# 例
## Lambdaでやる場合
自動起動停止等、AWSリソースを操作するLambdaを作成する。
Amazon EventBridgeでルールを作
Active Storage x ECS Fargateで画像投稿できない
## 現象
フロントからAPIにURL保存・S3にも保存出来る・フロントでimg srcは表示できるが透明な画像が表示されてしまう(クリックで別タブで透明な画像が開く)
なのでaltも出ない
## 前提
フロント・バックエンドを分離してアプリを作成中
それぞれドメイン・サブドメイン割当済み## 結論
production.rbの`Rails.application.routes.default_url_options[:host]`の値をフロントではなくバックエンド側のURLを指定
“`production.rb
– host = ‘https://hoge.com’
+ host = ‘https://back.hoge.com’
Rails.application.rout
EC2にFastAPIを構築し、挙動確認してAPIを叩いてみた
# やったこと
– 前回の記事(「[EC2にFastAPIを入れてHelloWorldする](https://qiita.com/yuki_Ari_/items/669d5087bf44cbaaa561)」)の続きです。
環境構築についてはそちらを確認してください。
– main.pyを編集し、映画をおすすめするAPIを作成しました。
– それを元に、SwaggerUIで挙動を確認しました。
– また、EC2側でpythonを使って作ったAPIを叩いてみました。# 1. main.pyの編集
以下のコードをmain.pyとして書きEC2に置いておきました。“`python:main.py
from typing import Optional, List # Optional: 定義が必須ではない型をインポート
from fastapi import FastAPI
from pydantic import BaseModel # このBaseModelをクラスに継承させていく
import datetime# 好きな映画を紹介していくappというインスタンスを作成します
【AWS/Python】EC2にFastAPIを入れてHelloWorldする
# やること
– AWSのEC2に、FastAPI環境を構築し、HelloWorldします。
– 長くなってしまったので、コードをいじって動作検証する記事は、別の記事として出す予定です。# ステップ
1. AWSでVPCやEC2を構成
2. EC2でFastAPIを構築し、Hello Worldしてみる# 1. AWSでVPCやEC2を構成
### 1-1. VPCを構成
– AWS > VPCへ移動
– VPCダッシュボード > 「VPCウィザードを起動」をクリック(「VPCを作成」という画面に遷移します)VPCウィザード好きなんですよね。プレビュー機能が素敵です。
私の設定は以下のスクショの通りです。一つずつ設定を見ていきます。

**① 名前タグの自動生成**
VPCの名前になりま
【AWS】S3のハンズオンで学んだことをまとめる
こんにちは、k_ukiです。
「AWSではじめるクラウド開発入門」の10章と11章を進めていきました。
そこでは、サーバーレスクラウドに関連する技術が取り上げられており、「Lambda」「DynamoDB」「S3」の3つの技術をハンズオン形式で学習しました。その中でも、今回は「S3」について学んだことをまとめていきます。
## 「S3」とは?
S3はAWSが提供するサーバーレスなストレージのことです。
サーバーフルのストレージの場合、ディスクの容量の割り当てはディスクのフォーマットを行うときに決める必要があり、自由にサイズを変更することはできませんでした。そのため、従来のクラウドでストレージを借りる際は指定した領域のディスクをまるごと借りる必要がありました。(例えば、1GBのストレージを借りた場合、現在100mbしか使っていなくても1GB分の料金が発生する)
S3は基本的にAPIを通してデータの読み書きを行うため、OSにマウントするという概念自体が存在しません。そのことから、ディスク領域を指定する必要がなく、データを入れた分だけ領域が拡張されていきます。##
Amazon Managed Blockchain で Simple NFT Marketplace を触ってみた
# はじめに
[前回の記事](https://qiita.com/sugimount-a/items/8bb29df758a741b2cfe7)では、Amazon Managed Blockchain で Ethereum Node を作り、簡単な動作確認を行いました。今回は、独自のスマートコントラクトをデプロイする方法を学んでいきます。
aws-samples に、「Simple NFT Marketplace」という名前の GitHub リポジトリがあり、ここでサンプルコードが公開されています。日本語の説明もあり、わかりやすいのでこれを試していきたいと思います。
https://github.com/aws-samples/simple-nft-marketplaceこの「Simple NFT Marketplace」を実施することで、以下の点が学習できます
– スマートコントラクトをデプロイする
– Amazon Managed Blockchain でつくった Ethereum Node を使って Goerli ネットワークにデプロイする
– デプロイしたスマ
Raspberry Pi Zeroを使ってAmazon Kinesis Video StreamsにWeb RTCでカメラ映像送信
# 1. 概要
Raspberry Pi Zero WHにBuster(Debian 10)をインストールしてAmazon Kinesis Video StreamsにWebRTCでカメラ映像を送信する。Buster(Debian 10)は2022年前半時点で、旧版のOSとなっている。
※この記事のかなりの部分は直前に書いた記事とかなり重複します。別々に見ても困らないように省略していません。# 2. 前置き
## 2.1. 経緯
知人から依頼され、2021年頃にRaspberry Pi 3Bを使ってKVSにUVCカメラの映像をアップロードする手順を確認した。その時点では問題なかったが、最近になって改めてその手順を行ったところ、OSのバージョン違いやコマンドの記載漏れによって動かない、分かりづらいなどが判明したので改めて確認することとなった。## 2.2. Raspberry Pi OSについて
2021年の後半に出たBullseye((Debian 11)だとカメラや画像を扱うときにライブラリが無いなどの状況になっている。何故なのかは知らないが、知人の多くが困っているようだ。
AWS AppSyncを触ってみた #1

Amplifyのチュートリアルをやってみて、個人的に重要だと思ったのがAppSyncだったので、少し深堀してみました。#### AppSyncとは
AppSyncは、GraphQL APIの開発を容易にする、AWSの完全マネージド型サービス。
平たくいうと、サーバーレスなGraphQLサービス。
このサービスは、DynamoDBなどのデータソースとの接続に必要な、面倒な作業を**自動的**に処理してくれます。要はDataBaseも自動で作ってくれる。*AWSでAPIを作成できるサービスにAPI Gatewayがありますが、それはREST API形式
#### AppSyncの仕組み
![appsync構成.png](https://qiita-image-store.s3.ap-no