- 1. 起きた問題
- 1.1. 【セキュリティニュース解説】「クラウドの設定ミス対策ガイドブック」が公表されたので概要をまとめた
- 1.2. JCAMP-DX形式のテキストをPythonでJSON化してPlotlyで可視化してみる
- 1.3. RDS の復元について
- 1.4. AWS RDS(MySQL)をAWS CLIで最低限のオプションで設定した場合のデフォルトパラメータ
- 1.5. CloudWatchMetricsの基本的な操作とアラーム設定方法
- 1.6. Alexa × ChatGPT × Flutter
- 1.7. s3へのアップロードをトリガーにECSタスクを起動する流れ
- 1.8. DDNSを自分でやる
- 1.9. S3のクロスリージョンレプリケーション時に削除を反映するパターンと反映しないパターン
- 1.10. SSL/TLS証明書とかELBとか
- 1.11. AWS-Vaultの設定方法
- 1.12. AWS : 時間が経ってもCloudWatch Alarmがアラーム状態から戻らない理由
- 1.13. 【備忘録】Dockerの入れ方 on AWS EC2
- 1.14. コマンド3行~AnsibleとCloudFormationを使用してAWS上で5分でプリザンターを試す~
- 1.15. AWSとDatadogのインテグレーションで、DatadogAPICall作成がうまくいかなかった話
AWS transcribeをさわってみた
## はじめに
AWSサービスをもっと使っていきたいと思っているなかで、
知っているけど手を出したことがなかったサービスを使ってみる。今回はAWS Transcribe
## AWS Transcribeとは
AWS Transcribeとは、自動音声認識のサービスで、
例えばリアルタイムの議事録を起こしてくれたり、音声ファイルから文字起こしを行ってくれる。私が特に気に入っているのは、2点
1. 事前登録した単語から、音声認識の精度を上げてくれること
2. 参加者ごとの音声の使い分けをしてくれること今回は、上記の2点の箇所までいかないが、音声ファイルから文字起こしするところまで行ってみる。
## 今回実践すること
今回は、音声ファイルをS3にアップロードしてそのファイルを文字起こしすることを実践してみる。
テストを行い実際に運用レベルに持っていくまでの提案材料を作成する。
## 実践内容
1. 音声ファイルを作成する
2. AWS S3にアップロードする
3. 作成した音声ファイルをAWS Transcribe job を作成して音声をテキストにする
4.
3分で理解するAWSのアーキテクチャ図の基本
## 対象読者
✅ AWSのアーキテクチャ図を目にする機会があるが、見方がわからない
✅ AWSのアーキテクチャ図がなんとなく読めるようになりたい方なんとなくアーキテクチャ図を把握するための記事となりますので、
AWSの詳細なリソース・サービスの説明はしません。## AWSのアーキテクチャ図が読めない原因
それは、**それぞれの図が表す意味を理解していないから** だと思います。
「 **”どこ”** に **”何”** を配置しているか」
これさえ理解できていれば、アーキテクチャ図が「なんとなく読める」状態になっていると思います。しかし、AWSは提供しているサービスが多いため
この「**”何”** を」という部分を網羅するのは大変です。ですので、そこは具体的なアーキテクチャ図を見た際に都度調べればいいと思っています。
(とはいえ頻出するサービス・リソースはありますので徐々に覚えましょう)本記事では「**”どこ”** に」という部分を理解するために必要な内容に絞ります。
## 解説
それでは、最低限理解しておきたい内容について解説します。
:::not
Amazon Web Services基礎からのネットワーク&サーバー構築 Webサーバーソフトインストール
:::note
Amazon Web Services基礎からのネットワーク&サーバー構築 を実施した際の備忘録です。
:::※前回はこちら
https://qiita.com/hoge889/items/42674fc7beee50e30db6
## 今回の目標
Apache HTTP Server をインストールし、EC2インスタンスにHTTP通信で接続できるようにします。
## Session Manager でEC2に接続する
前回は SSH 接続を試みましたが、AWS Systems Manager のセッションマネージャーを使ってます。
設定手順は以下記事に記載してます。
https://qiita.com/hoge889/items/c89dd7ee9d1136bd0dba
## Apache HTTP Server のインストール
セッションマネージャーで接続し、以下コマンドで Apache HTTP Server をインストールします。
$ sudo
セッションマネージャーを使ってEC2へアクセスする
セッションマネージャーを利用すれば、キーペアによる認証をせずにEC2へアクセスすることが可能です。
また以下のリンクに記載されているAMIであれば、SSMエージェントが事前にインストールされているため、すぐに利用できます。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/ami-preinstalled-agent.html
※デモなので、権限周りの設定は適当です。
## EC2インスタンス用のIAMロールを作成する
EC2インスタンスに割り当てるIAMロールには、 AmazonSSMManagedInstanceCore というポリシーを付与します。
コンソールから作成する場合は、ユースケースから EC2 > EC2 Role for AWS Systems Manager を選択し次へ進むと上記ポリシーを付与できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764512/1
何故か一部css反映されない
開発環境
Laravel Framework 10.30.1
起きた問題
localhostではきちんと反映されるのに、デプロイしたとこでは当たってない…
しかも一部のみ…
“`
“`![スクリーンショット 2024-04-27 223803.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634951/8c5e52d2-eced-e417-4900-52c15b798128.png)
px-
【セキュリティニュース解説】「クラウドの設定ミス対策ガイドブック」が公表されたので概要をまとめた
Bom dia:relaxed:
2024年4月26日に総務省が公表した「クラウドの設定ミス対策ガイドブック」の概要をスライド1枚に整理しました。
自社で起こり得るミスの原因を特定したうえで、4観点での対策を綜合したセキュアな仕組み作りが大切です。
詳細な対策は、参考リンク先の公開資料 ”(別紙)「クラウドの設定ミス対策ガイドブック」” からご確認ください。![20240420_セキュリティニュースまとめ_クラウドの設定ミス対策ガイドブック.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3299903/8db7c218-1889-eb6d-5831-6c7f5b4705e6.jpeg)
## 参考
・「クラウドの設定ミス対策ガイドブック」の公表,総務省, https://www.soumu.go.jp/menu_news/s-news/01cyber01_02000001_00209.html
JCAMP-DX形式のテキストをPythonでJSON化してPlotlyで可視化してみる
こんにちは。Kaneyasuです。
最近はいろいろな形式のデータに触れさせていただき、毎日てんやわんやしております。
今日は、タイトルの通りJCAMP-DX形式のテキストをPythonでJSON化してJavaScriptで可視化してみようという話をお送りします。
# JCAMP-DXとは
JCAMP-DXは、分光データを保存するために作成されたテキストベースのファイル形式です。
https://en.wikipedia.org/wiki/JCAMP-DX
分光データとは光の電磁波スペクトルを測定したデータのことです。
詳しい解説は専門の文献を参照してください。# 本記事のソースコード
本記事のソースコードはGitHubに一式をアップしています。
ソース全体と使用方法はこちらをご覧ください。https://github.com/satoshi256kbyte/jcampdx-api-sample
# JCAMP-DXとJavaScript
JavaScriptには可視化用のライブラリが揃っています。
そのどれかを使って、JCAMP-DX形式のテキストを可視化する
RDS の復元について
– RDS の復元で、スナップショットからの復元と、ポイントインタイムリカバリーの両方を試すことができたのでそのときのメモです
– (今回はマスクする箇所が多かったので、画面のスクショはありません)# 前提
– 今回はRDS for MySQL のお話です# 設定項目の違い
– スナップショットからの復元、ポイントインタイムリカバリーともにDB を復元させることには変わりありませんが、復元時の設定項目に違いがあったのでメモです## 共通項目
– 設定
– DB インスタンス識別子
– インスタンスの設定
– DB インスタンスクラス
– ストレージ
– ストレージタイプ
– ストレージ割り当て
– マルチ AZ 配置
– 接続
– Virtual Private Cloud (VPC)
– DB サブネットグループ
– パブリックアクセス
– VPC セキュリティグループ (ファイアウォール)
– データベースポート
– データベース認証
– データベース認証オプション
– タグ
– 暗号化
AWS RDS(MySQL)をAWS CLIで最低限のオプションで設定した場合のデフォルトパラメータ
# AWS CLIでRDS (MySQL)を作成
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-instance.html#examplesAWS CLI Command Referenceに従って最低限のオプションでRDSインスタンスを作成
## (変数設定)RDSインスタンス識別子
“`:コマンド
DB_IDENTITY=”test-mysql-instance” \
&& echo ${DB_IDENTITY}
“`
“`:出力
[cloudshell-user@ip-10-134-8-157 ~]$ DB_IDENTITY=”test-mysql-instance” \
> && echo ${DB_IDENTITY}
test-mysql-instance
“`
## RDSインスタンス作成
“`:コマンド
aws rds create-db-instance \
–db-instance-identifier ${DB_IDENTITY
CloudWatchMetricsの基本的な操作とアラーム設定方法
# はじめに
CloudWatch MetricsとAlarmは運用を基礎から支える大事なサービスだと思います。
前から気になっていたので、基本的な操作を確認しました。各サービスの概念などはBlackBeltを参考にし、この記事ではマネコンでの操作をメモできればと思います。
## CloudWatch Metrics
早速CloudWatch Metricsを触ってみます。
今回はlambda関数を実行することで自動収集されるメトリクスを利用して、
関数のエラー率、処理時間のMAX,MIN,AVGなどをグラフ化してみようと思います。lambdaサンプル
“`index.js
exports.handler = async (event) => {
// 基本の2秒待機
await new Promise(resolve => setTimeout(resolve, 2500));// ランダムで最大1
Alexa × ChatGPT × Flutter
# スマホアプリでChatGPTの口調を指定し、Alexaに喋らせる
初めまして!Qiitaの記事初投稿です。
Alexa Skills Kit、ChatGPT API、Flutterを組み合わせることで、ユーザーが質問をするとスマホアプリで設定した「任意の口調」で回答するスキルを開発しました。
この記事は開発のふりかえりも兼ねた、一連のアプリ紹介となります。
地味に登場人物が多く、1記事にまとめると公開するのがだいぶ先になってしまうと思ったので、3部作くらいに分けて公開させていただきます。
# 本記事の紹介範囲
1. 開発背景
1. デモ動画
1. 全体の構成図# 開発背景
以下の2点が今回の開発に至った背景です。## Alexaの進化
タイマー、音楽、テレビのON/OFFくらいしか使ってないAlexaをワンランク上の存在に導きたかった。## Flutter開発
業務でWebアプリの開発しか経験がなかったので、最近話題のFlutterでスマホアプリを開発してみたかった。AlexaスキルはGUIがないので、任意の口調を変更するUIを持たせるのにスマホアプリはち
s3へのアップロードをトリガーにECSタスクを起動する流れ
### はじめに
webアプリケーションを作っていると、高負荷が予想される処理の対応には工夫が必要となります。
今回、ECSを使用している場合にタスクに対する負荷を抑える手法の例を紹介します。### ケース例
こちら自分が実際に業務で遭遇したケースですが、phpコンテナとnginxコンテナを含んだECSのwebアプリケーションを開発していた際に、ユーザーが顧客データ(数万件)が入っているcsvファイルをアップロードする場面がありました。このデータをDBに格納する際、アプリケーションに対して高負荷が予想されます。実際のCPU使用率のメトリクス:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3474661/cc448614-bd35-8ac6-187a-88426a87a467.png)
csvファイルがアップロードされたタイミングでcpu使用率が急上昇しており、webサーバに対して負荷がかかっています。### 解決策の例
ECSでcsvファイルのデータをDBに格納する処理の
DDNSを自分でやる
ダイナミックDNSを自分でやります。
以下のような思いを持っている方は是非ご検討ください。1. 世の中にあるDDNSサービスで自身のサーバを晒したくない
2. 自分でAWSのRoute53ですでに自身のサーバのDNSを登録している
3. よくルータに割り当てられたIPアドレスが変わる最近ルータに割り当てられたIPアドレスがころころ変わっているように思います。
なので、いざ外出先から接続しようとすると接続できないことが多くなってきました。
かといって、世の中にあるDDNSに自身のサーバのIPアドレスを登録して世間に晒したくないので、自分でDDNS相当をやってみました。すでに、自分のドメイン名を持っていて、AWSを使っている方を対象としています。
また、言語はNode.jsを使っています。ソースコード一式をGitHubに上げておきました。
https://github.com/poruruba/MyDDNS
# 仕組み
仕組みとしては、以下の通りです。
1. 定期的にルータ下のローカルネットワークからAWSにHTTP呼び出しをします。
2. AWSのLambdaで呼
S3のクロスリージョンレプリケーション時に削除を反映するパターンと反映しないパターン
# はじめに
災害対策として、別リージョンにS3のレプリケーションをするケースを考えます。
通常、メインリージョンのデータをバックアップ目的でサブリージョンにコピーすることが目的です。ケースによってはメインリージョンでの削除を反映させたい場合と反映させたくない場合が考えられます。どのようなコントロールができるかを考えていきます。# 削除を反映させるケース
アプリケーションが利用しているデータの場合、ほぼリアルタイムに削除を反映したいというケースがあります。削除が反映されない場合、メインリージョンとサブリージョンでデータの不整合が発生してしまい、リカバリ時に削除済みデータが復元されてしまう可能性があります。この場合は削除を反映させたくありません。# 削除を反映させないケース
ログや証跡など削除されては困るようなデータのレプリケーションを考えます。この場合、メインリージョンで削除されてしまったとしても、サブリージョンのバックアップには反映されたくありません。メインリージョンでは誤削除や不正の場合が疑われるため、削除を反映させないケースです。削除できないように権限やオブジェクトロック
SSL/TLS証明書とかELBとか
# 1.はじめに
インターネット上でサービスを安全かつ効率的に提供するためには、適切な技術選択が不可欠です。
特に、アクセス方法に関する選択は、サービスの可用性とセキュリティに直接的な影響を及ぼします。
この記事では、IPアドレスを直接使用するリスクと、ドメイン名を活用することの利点について、ネットワークやインフラの観点で学んだことをまとめてみました。# 2.IPアドレス直打ちのリスク
IPアドレス直打ちのリスクは以下の2点と考えました。
– ロードバランサーの役割とサーバーへの影響
– SSL/TLS証明書の問題## 2.1.ロードバランサーの役割とサーバーへの影響
通常、複数のサーバーで構成されるWebサービスではロードバランサーを使用します。
ロードバランサーは、入ってくるトラフィックを分散させ、一つのサーバーに過度の負荷がかからないようにします。
IPアドレスを直接叩くと、このメカニズムを無視し、単一のサーバーに全ての負荷が集中することになります。
結果として、サービスの可用性を損なうリスクを高め、最悪の場合、サーバーのダウンに繋がることがあります。## 2.2.S
AWS-Vaultの設定方法
# 概要
開発環境でAWSの認証情報を安全に行う為に、`AWS Vault`を導入しました。今回はその設定方法について記載します。# 事前設定
– AWSのアカウントがあり、`IAM`の設定が出来る権限を持っている
– [Homebrew](https://brew.sh/ja/)がインストールされている# 導入手順
## 基本設定
– `AWS Vault`をインストールする
“`sh
brew install –cask aws-vault
“`– `AWS Vault`にAWS認証情報を追加する
※ **Access Key**と**Secret Access Key**の入力が必要な為、各項目に入力を行う“`sh
# 構文
$ aws-vault add # 任意のprofile名入力
Enter Access Key Id: # AWSのアクセスキーを入力
Enter Secret Key: # AWSのシークレットアクセスキーを入力# 入力例
$ aws-vault add test
Ent
AWS : 時間が経ってもCloudWatch Alarmがアラーム状態から戻らない理由
最近CloudWatch Alarmの検証をしていたのですが、CloudWatch Alarmがアラーム状態になった後、次の評価期間が来てもOK状態に回復しないことに気づきました。この理由について色々調べたので備忘録として残しておきます。誰かの助けになれば幸いです。
# 状況整理
構成図は以下に示す通りです。CloudTrailで取得したAPIコールログをCloudWatch Logsに格納した後に、メトリクスフィルタで特定のログを拾ってアラームを発砲するというようなシンプルな構成です。詳細な設定は以下の記事にまとめていますので、そちらをご確認ください。(今後対応予定です)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746031/334e38e6-ffbb-2e96-d836-400e73b12fe2.png)
複数のアラームを設定したのですが、説明の都合上、以下に示すようなNACLの作成などをトリガーとして発砲するアラームに絞って話を進めていきます。
期間を1分、アラームを
【備忘録】Dockerの入れ方 on AWS EC2
# 環境
Amazon Linux2# Dockerのインストール
“`bash
sudo yum install docker
sudo systemctl start docker
“`
確認
“`
sudo docker –version
“`# 「sudo」なしで実行できるようにする
“`
# dockerグループが存在していない場合、追加
sudo groupadd docker
# 自分($USER)をdockerグループに追加
sudo gpasswd -a $USER docker
“`
`exit`して再度入ると「sudo」なしで使えるようになる。
コマンド3行~AnsibleとCloudFormationを使用してAWS上で5分でプリザンターを試す~
# 内容
何回か検証用のプリザンターを作成する必要がありそうなのですぐ試せるようにコード化。
プリザンターはOSSのノーコード・ローコード開発ツールです。https://pleasanter.org/
# 作成される環境
AWS上にVPC、パブリックサブネット、EC2つ作成してEC2上にプリザンターをインストール。インターネットからプリザンターにアクセスする。![pst-aws.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/9c11cf6b-be13-5203-9142-aaa20c261e07.png)
# CFnテンプレートのダウンロード
下記をローカルに保存する。https://github.com/Toru-Kubota/pst-install/blob/main/cfn/cfn.yml
# CFnからEC2やVPCを作成
* AWSコンソールよりCFnのコンソールに移動
* CFnスタックを新規で作成
* テンプレートファイルのアップロード
※先ほどローカル
AWSとDatadogのインテグレーションで、DatadogAPICall作成がうまくいかなかった話
# はじめに
[こちらのページ](https://docs.datadoghq.com/ja/getting_started/integrations/aws/)に従って、Datadog連携用のCloudFormationを作成、実行したところ、DatadogIntegration-DatadogAPICallのスタック作成に失敗してしまったので、原因と修正方法をまとめます。# 発生までの経緯
公式ドキュメントに従って、Datadog の AWS インテグレーション構成ページに移動し、Add AWS Account をクリックします。
遷移先で下記のように、Region、APIキー、Forwarder、CSMの設定を行い、CloudFormationテンプレートを作成します。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703223/ba9fa079-14e9-06d6-e48b-3ecdc57e14f6.png)
すると、下記のようにパラメータが入力された画面に遷移するので