- 1. ポストに届いた荷物の様子を遠隔でモニタしたい
- 2. Ubuntu ProなEC2をLTS に変換する
- 3. 【AWS × Terraform】ECSでエロ画像検出APIを爆速デプロイしてみた
- 4. aws-cli Athena/Lambdaのラッパースクリプトを書いて作業を効率化する
- 5. GuardDutyの検出結果の通知を重要度の高いものに絞りたい!
- 6. 【AWS CLI】セキュリティグループのルールで一つのポートに対して複数IPを登録したい!
- 7. AWS AmplifyでSvelteKitアプリケーションをデプロイする
- 8. RDS・Auroraの自動バックアップをAWS Backupに移行するときの勘所
- 9. 【AWS ネットワークインターフェース】依存関係エラーが発生した場合の削除の仕方
- 10. 【AWS】クラウド (クラウドサービス) とは?
- 11. AWS ControlTower⑦アカウントの新規追加・閉鎖・再開
- 12. AWS ControlTower⑥SNS&EventBridge(SecurityHub重要度振り分け)設定
- 13. パブリックパラメータを使用する
- 14. 会社のTeamsからBedrockを呼ぼう!AWS Chatbotの新機能でコード書かずにAIボット作成
- 15. 【CloudFormation】S3バケットアクセスの基本ポリシーの生成
- 16. AWS Service Catalog(CLFのOUTPUT)
- 17. 【AWS】Systems Manager (SSM) 接続エラーの対処方法
- 18. VercelPostgresの Endpoint ID is not specified エラー解決
- 19. Amazon AppFlowを活用してSaaSサービスから簡単にデータを取得してみた
- 20. AWS Transfer Family SFTPで使用される暗号化アルゴリズムと決定プロセス
ポストに届いた荷物の様子を遠隔でモニタしたい
## はじめに
我が家のポストは、玄関から距離のあるところに設置してあり、毎度確認に行くのが億劫だ。ポスト周辺は、コンセントもなく住居からのWi-Fi電波も届かないため、安易にACから電源を取りつつWi-Fiで繋がるNW型の監視カメラを置いておけばよいという訳にもいかない。今回は、エッジ側で撮影した画像をLTE回線でAWS S3へアップロードし、アップロードされた画像を表示するWebを構えることで、安価で長時間連続稼働が可能なポストモニターを作製した。#### 完成物:Webから直近のポストの様子を確認できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54100/5d790aa5-66ff-637d-8b65-5387deae11aa.png)作ったものはこちら
https://github.com/bd8z/postMonitorOSS
## 1. 構成
回路は2系統に分離した。「撮影とAWSへのデータ送信に特化した消費電力の大きい部分」と「長時間待ち受けをする低消費電
Ubuntu ProなEC2をLTS に変換する
# はじめに
[こちら](https://qiita.com/gitya107/items/9c0314360a36ec1af07a)でLTS->Proにしたものを元に戻す手順となります。# 設定方法
## 流れ
– [AWSサポートに問い合わせ](https://docs.aws.amazon.com/ja_jp/license-manager/latest/userguide/conversion-procedures-linux.html#remove-subscription-ubuntu-pro)を行い、Ubuntu Pro→LTSにサブスクリプション変更できるように依頼します。
– 変更許可はリージョン単位となるので、希望リージョンを伝える必要があります。
– 期間限定(約2週間のあいだ)でサブスクリプション変更ができるようになります。
– 依頼してから対応完了まで2週間ほどかかっちゃうので余裕をもって依頼したほうが良いです。
– OS側でサブスクリプションの解除 と Ubuntu Pro関連のパッケージ削除 を実施します。
– AWS CLIで
【AWS × Terraform】ECSでエロ画像検出APIを爆速デプロイしてみた
叡智に富んだ読者さん、ご機嫌よう。
[前回の投稿](エロ画像検出APIを用いてエロ画像のアップロードを阻止してみる【前編】)からエロ画像検出APIサービスの運用を続けている私ですが、最近ちょっと困ったことが起きました。
なんと、仕事を辞めてから爪に火をともす生活をしている私にとって、予期しないコストが発生するなんてまさに「おはぎゃー!!!」な状況です。
11日間で450円、これが1ヶ月放置すると1300円に膨れ上がるという恐ろしい現実に直面しました。
![スクリーンショット 2024-09-12 16.42.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401561/826f5cf4-7140-af4e-953e-884916307a24.png)
ラーメン1,2杯分のお金が、何もしていないのに飛んでいくなんて恐ろしい・・・ :ramen: 😥
ということで今回は、コマンド一つでエロ画像検出APIサーバーをサクッと立ち上げてシャットダウンできる、そんな魔法のようなコー
aws-cli Athena/Lambdaのラッパースクリプトを書いて作業を効率化する
# はじめに
この記事は@ktatさんの[aws-cli のラッパースクリプトを書いて作業を超効率化する](https://qiita.com/ktat/items/6494390dec4b5b9c662b)を見て、AthenaとLambdaのラッパースクリプトを作ってみたものになります。
# 現状
業務上Amazon AthenaやAWS Lambdaをよく使うのですが、「クエリを書いて結果を見たい」「関数を実行させたい」場合に逐一コンソールへ入ってそれを行うのが面倒でした。
また、aws cliも
“`shell:Athenaの場合
# 一々execution idを取得した後、そのステータスを確認し、終了していたらget-query-resultsを実行して結果を得る
$ aws athena start-query-execution –query-string –そのほかの設定
$ aws athena get-query-execution –query-execution-id “start-query-executionで発行されたID”
$ aws
GuardDutyの検出結果の通知を重要度の高いものに絞りたい!
### :sunny: 実現したいこと:GuardDutyの検出結果に関して、通知がたくさん来てしまうので重要度が低いものは通知しないようにしたい
## 前提:GuardDutyの重要度とは?
GuardDutyは検出結果の重要度が3つのレベル(High,Medium,Low)に分かれています。
以下のページに記されています。https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_findings.html
“`
[High] (高) 7.0-8.9
[Medium] (中) 4.0-6.9
[Low] (低) 1.0-3.9
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3828602/4495e813-cda9-ce30-e69f-26552698d46d.png)### 重要度の高いものだけ通知させる方法
EventBridgeのイベントパターンで「カスタムパターン(
【AWS CLI】セキュリティグループのルールで一つのポートに対して複数IPを登録したい!
### :sunny: この記事で得られること:セキュリティグループのルールをCLIで登録する方法
## 例えば…
セキュリティグループの設定でこんなことありますよねポート:3389
送信元:10.0.1.0/32 , 10.0.2.1/32 , 10.0.3.0/28…(残り何十個とか…)## マネコンだと一つのポートへ複数IPをいっぺんに設定できないのです!!:cry:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3828602/f1422e2c-ab6d-22fd-bc99-7925f16562cf.png)
果てしない作業…### そこで!セキュリティグループにルールを一括で登録するCLIを使ってみましょう!
:::note info
前提知識
:::
“`
#セキュリティグループのルールを出力するコマンド
ec2 describe-security-group-rules# インバウンドルールを変更するコマンド
ec2 author
AWS AmplifyでSvelteKitアプリケーションをデプロイする
## はじめに
– AWS Amplifyはあまり触ってこなかったけど、Gen2で色々いい感じになったらしい
– 推しフレームワークSvelteKitをGen2で動かして使用感を試してみる## SvelteKitとわたし
https://kit.svelte.dev/
– SvelteKitは、WebフロントエンドフレームワークSvelteをベースとしたフルスタックアプリケーションのためのフレームワークです
– 筆者はSvelteKitを、Cloudflare Pages、AWS Lambda、AWS Lambda + Web Adapterでそれぞれ運用していて、それぞれのうれしみ・つらみがなんとなくわかってきたところです## AmplifyにSvelteKitをデプロイする
https://docs.aws.amazon.com/amplify/latest/userguide/sveltekit-support.html
公式ドキュメントがあり、`amplify-adapter`を利用すると良さそうです。ただし、
:::note info
SvelteKitは
RDS・Auroraの自動バックアップをAWS Backupに移行するときの勘所
# はじめに
お疲れ様です。 矢儀 @yuki_ink です。**AWS Backup、使ってますか?**
本記事は、RDS・AuroraのバックアップをAWS Backupで取得するようにする際の勘所(注意事項・移行パターン)をまとめたものです。
AWS Backupは、AWSサービスのバックアップを一元管理できるフルマネージドサービスです。
2019年1月にローンチされ、今やAWS認定資格でも常連の古株サービスですが、**最近では、ランサムウェア対策の文脈でAWS Backup、特にその中の「Vault Lock」機能について触れられる機会が多くなったように思います。**>**AWS Backup Vault Lock**
>AWS Backup は、バックアップの一元管理と自動化を実現するフルマネージドサービスです。手動と自動スケジュールのバックアップを実施することができます。1 つのコンソールで、多岐にわたる AWS リソースのバックアップの設定と実行、復旧を実施することができ、一元管理することができます。暗号化した個別の Vault と呼ばれ
【AWS ネットワークインターフェース】依存関係エラーが発生した場合の削除の仕方
練習でAWS環境を構築していたのですが、課金が気になって一旦すべてリセットしようとしたときに遭遇したエラーです。
ネットワークインターフェースを削除しようとしたところ、「ネットワークインターフェイスは現在使用されており、そのタイプは “interface” です.」というエラーが生じました。検索しても「説明欄に書いてあるサービスを停止しましょう」といった説明欄頼みの内容が多く困りました。
結論、自分の場合はRDSと紐づいたネットワークインターフェースだったのでRDSを削除して完了できました。
サブネットやセキュリティグループにも言えるかもしれませんが、どのサービスと紐づいてるか一目でわかりやすい名前を付けると解決への時間を短縮できるかもと思いました。
【AWS】クラウド (クラウドサービス) とは?
# AWSについて学びたい!
業務では切っても離せない関係にあるAWS。何気なく使っていますが、結局のところベースの知識がないため、言われたことを淡々とすることしかできていません。
そんな状態から脱却し、強強エンジニアを目指すためにも、AWSの学習が必須だと思い、記事を残すことにしました。間違ったことも多く言っているかもしれませんがその際は指摘していただければと思います。# クラウド (クラウドサービス) とは?
https://aws.amazon.com/jp/cloud/
## クラウドサービスの基本的な仕組み
インターネット経由でコンピューティング、データベース、ストレージ、アプリケーションをはじめとした、さまざまなITリソースを必要なときにリアルタイムで利用することができるサービス。利用料金は実際に使った分のお支払いのみと行った従量課金が一般的。## 導入のメリット
### 固定の焼却コストが変動コストになる
データセンターやサーバーに多額の投資を行う必要があるが、クラウドサービスを利用することで、リソースを使用した時に使用した分だけ支払うことができる。###
AWS ControlTower⑦アカウントの新規追加・閉鎖・再開
# アカウントの新規追加
★アカウントの払い出し方法
2つあります。
①ControlTowerから払い出す(AccountFactory経由)
②Organizationsから払い出す
ControlTowerとOrganizationsで払い出したアカウント間に見た目上の差異はないので、どちらから行っても問題はありません。★両者の違い
–ControlTower–
ControlTower経由では、払い出し時点でOU登録まで行うことができる(SecurityHub、SSO等周辺設定も一気に行われる)ので時短になります。
大きな違いとしては、自動的にサービスカタログに製品登録されます。
これは毎回行われる上に一度作成したサービスカタログから再度払い出すことはできない(複数アカウントを作成することはできない)ため、サービスカタログ自体が増えていくことは受け入れるしかありません。つまり1製品1アカウントで毎回払い出している形になります。
–Organizations–
Organizationsの方からアカウントを作成すると、Organizationsに組み込まれているだけで
AWS ControlTower⑥SNS&EventBridge(SecurityHub重要度振り分け)設定
# 今回設定すること
今回はSNSとEventBridgeを使用し、SecurityHubを重要度で絞って通知する(Critical,High.Lowの中でHigh,Criticalのみ通知する、みたいなことです)ということを設定していきます。
まず、SNSはどのような状況になっているのか確認します。
ControlTowerを設定した際、デフォルトでSNSトピックが3つ作成されています。
(公式サイト:Compliance notifications by SNS in the audit account https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/receive-notifications.html)
①aws-controltower-AggregateSecurityNotifications
>このトピックは、サポートされている各 AWS リージョンに存在します。リージョン固有のトピックからコンプライアンス変更通知を受け取ります。さらに、ホームリージョンでは、ドリフト通知も受信します。(公
パブリックパラメータを使用する
一部のAWSサービスは、共通のアーティファクトをAWS Systems Managerのパブリックパラメータとして公開します。例えば、Amazon EC2サービスは、AMIsに関する情報をパブリックパラメータとして公開しています。
パブリックパラメータを利用することで、AWS CLIからEC2を作成する場合のAMIを指定することができます。
# パブリックパラメータを検索する
すべてのパラメータの一覧を表示する場合は以下のコマンドを実行してください。
“`
aws ssm get-parameters-by-path –path /aws/service/list –query “Parameters[*].Name”
“`
AMIsのパラメータを表示する場合は以下のコマンドを実行してください
“`
aws ssm get-parameters-by-path –path /aws/service/ami-amazon-linux-latest –query “Parameters[*].Name”
“`
Amazon Linux2のAMIのパラメータを表示
会社のTeamsからBedrockを呼ぼう!AWS Chatbotの新機能でコード書かずにAIボット作成
# TeamsやSlackから簡単にBedrockを呼べるように!
今週9/17のAWSアップデートで、AWS ChatbotというサービスからAmazon Bedrockのエージェントを簡単に呼び出せるようになりました。
https://aws.amazon.com/jp/about-aws/whats-new/2024/09/aws-chatbot-amazon-bedrock-agent-microsoft-teams-slack/
公式ドキュメントはこちらです。
https://docs.aws.amazon.com/chatbot/latest/adminguide/connect-bedrock-agents.html
今回は多くの会社員が利用しているであろうMicrosoft Teamsから使える、Bedrockの生成AIチャットボットをノーコードで開発する手順を紹介します。
**30分もあれば簡単にできます!**
![スクリーンショット 2024-09-20 23.44.38.png](https://qiita-image-store.s3.ap-nor
【CloudFormation】S3バケットアクセスの基本ポリシーの生成
## バケットアクセスのIAMポリシーの作成が面倒
S3バケットを作成後、アクセスするユーザーやロールを制限したいというのは当然な要望な一方、いちいちポリシーを作成するのは面倒に感じます。とりあえずフルアクセスなんてしておくと事故の元になります。## 基本的なIAMポリシーを事前に作成しておく
理想は拒否設定をしっかり入れておいて、アクセスできるユーザー・ロールのみ明示的に細かく権限を許可していくのが理想なのだが、さほど重要でないバケットにもこの運用は費用対効果に見合わないため
– 書き込み
– 読み込み
– フルアクセス
– リスト該当のバケットに対してこれらの権限のみのポリシーを作成し、基本的にこれらを組み合わせてアクセスするようにする。
## CloudFormationで解決
バケット名をすげ替えるだけで各バケットのアクセスに関するポリシーを生成したい。
以下が実際にそのまま使えるymlです。
実行時にバケット名の入力が可能なので、ポリシーを作りたいバケットの名称を入れます。“`yml
AWSTemplateFormatVersion: ‘2010-09-09’
AWS Service Catalog(CLFのOUTPUT)
## AWS Service Catalogとは?
– AWSが認証されたITサービスのカタログを作成および管理できる
– デプロイされるITサービスを集中管理ができ一貫性のあるガバナンスを達成し、コンプライアンス要件を満たすうえで役に立つ## 利点
### 標準化
– 製品を起動できる場所、使用できるインスタンスのタイプおよびその他の多くの設定オプションを制限することに、承認済みのアセット管理ができる
### セルフサービスの検出と起動
– ユーザーは、アクセスできる製品のリストを参照し、使用する製品を見つけ、プロビジョニング済み製品としてすべて自分で起動できます
### きめ細かなアクセスコントロール
– 管理者はカタログから製品のポートフォリオを生成し、プロビジョニングで使用する制約とリソースタグを追加して、IAMのユーザーとグループを通じてポートフォリオにアクセス権を付与
### 拡張性とバージョン管理
– 感謝は、任意の数のポートフォリオに製品を追加し、別のコピーを作成することなく、それを制限できます## 一言でいうと
– 承認済みのリソースを簡単に管理・デプロイでき
【AWS】Systems Manager (SSM) 接続エラーの対処方法
## エラー内容
1. SSMエージェントがAWSのSSMサービスに接続できない
2. EC2インスタンスがSSMに登録できない
3. SSMセッションマネージャーでインスタンスに接続できないエラーログの例:
“`
ERROR [Registrar] failed to register identity: error calling RegisterManagedInstance API: RequestError: send request failed
ERROR [CredentialRefresher] Retrieve credentials produced error: unexpected error getting instance profile role credentials or calling UpdateInstanceInformation. Skipping default host management fallback: retrieved credentials failed to report to ssm.
“`## 確認項目
VercelPostgresの Endpoint ID is not specified エラー解決
# 状況
Vercel Postgresから、AWS AuroraにDBを移行するためにAWS DMSのソースエンドポイント(移行元)を追加しようとしたら、以下のエラーが出てしまった。
“`
Test Endpoint failed.
~~省略~~
101 Message: ERROR: Endpoint ID is not specified.
Either please upgrade the postgres client library (libpq) for SNI support
or pass the endpoint ID (first part of the domain name)
as a parameter: ‘?options=endpoint%3D‘.
See more at https://neon.tech/sni
“`# 調査
[GitHub Issue](https://github.com/vercel-community/php/issues/458)によると、VercelPostgresの`libpq`のバージ
Amazon AppFlowを活用してSaaSサービスから簡単にデータを取得してみた
## はじめに
このたび、[ANGEL Calendarの企画](https://qiita.com/har1101/items/637ba82948aa7670fb9f)に参加しております!
この記事は20日目の記事となります。
他の方の記事は、[2024-ANGEL-Dojo](https://qiita.com/organizations/2024-angel-dojo)の記事一覧から是非チェックしてみてください!## なぜこの記事を書いたのか
今回、AngelDojo内でAmazon AppFlowのサービスを使っているチームが少なかったので、
AppFlowの便利な点を共有したいと思い、記事を書かせていただきました。
Angel Dojo内の実装ではAppFlowを活用して、slack、salesforce、githubからデータを取得を実際に行いました。実際に使ってみて便利だと思った部分をこれから紹介をさせていただきます。## Amazon AppFlowとは?
初めにAmazon AppFlowとは何かについての説明をしていきます。
簡単に言うとSoftware
AWS Transfer Family SFTPで使用される暗号化アルゴリズムと決定プロセス
# 確認したい内容
Transfer FamilyでSFTP通信をする際、使用される暗号化アルゴリズムとその決定プロセス# 構成
![sftp01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/645debe2-cbfc-a0ff-73de-5ce69ac26716.png)* SFTPサーバを作成する。
* SFTPサーバは内部接続とするため、VPCエンドポイントが作成される。
* SFTPサーバ内にマネージドユーザとしてsftp_userを作成する。
* sftp_userにロジカルディレクトを使用してS3のフォルダを割り当てる。
* EC2サーバ内でSSHのキーペア(keyとkey.pub)を作成する。
* sftp_userに公開鍵(key.pub)を登録する。EC2から`sftp -v -i key sftp_user@xxxx.vpce.amazonaws.com`コマンドを実行しTransfer Family経由でS3に接続する。
# SFTP通信の流れ
最初