AWS関連のことを調べてみた

AWS関連のことを調べてみた

Amazon Pollyとは?の備忘録

テキストから音声への変換サービスです。Amazon Pollyを使用することで、テキストデータを自然な音声に変換することが可能です。

## できること

#### テキストから音声変換
Amazon Pollyは、与えられたテキストを多様な声質や言語で自然な音声に変換します。これにより、アプリケーションやデバイスに音声を組み込むことができます。

#### 多言語対応
Amazon Pollyは複数の言語に対応しており、異なる声やアクセントを提供しています。サポートされている言語には英語、スペイン語、フランス語、ドイツ語、日本語、中国語などが含まれます。
全て記載↓
アラビア語
アラビア語 (湾岸)
カタロニア語
中国語 (広東語)
標準中国語
デンマーク語
オランダ語 (ベルギー)
オランダ語
英語 (オーストラリア)
英語 (英国)
英語 (インド)
英語 (ニュージーランド)
英語 (南アフリカ)
英語 (米国)
英語 (ウェールズ)
フィンランド語
フランス語
フランス語 (ベルギー)
フランス語 (カナダ)
ヒンディー語
ドイツ語
ドイツ語 (オーストリア)
アイスランド語

元記事を表示

クラウド初心者がAWS認定SAAを取得してみた

# はじめに
こんにちは。記事をご覧いただきありがとうございます。

オンプレミスサーバーを約5年間扱ってきた経験を持ち、2023年からAWSに触れ始めたクラウド初心者の私が、AWS認定SAAを取得した経験の記録として書いてみます。
私はオンプレミスサーバーにはある程度詳しいですが、クラウドおよびAWSに関する知識はほとんどなく、VPCやEC2といったAWSのサービスや用語についても初心者レベルでした(笑)

ちなみに、私は試験に一度不合格になった経験もありますので、それについても記事内で触れていきます。

# SAAについて
SAAは、AWS Certified Solutions Architect – Associate(AWS認定ソリューションアーキテクト – アソシエイト)の略称です。
これは、AWSの基本的なサービス、アーキテクチャの設計原則、ベストプラクティス、セキュリティや可用性の概念などを理解し、AWSベースのソリューションの設計や展開の能力を備えたことを証明する資格になります。

書いたものの、ここら辺の形式ばった内容はAWSの公式ページを見てもらえればより詳しい内

元記事を表示

インフラ作って!から作るまでの話

# はじまりの挨拶
「アケマシテオメデトウゴザイマス、ヤマモト=サン、インフラツクッテクダサイ」
「ドーモ、アケマシテオメデトウゴザイマス、タケタニ=サン、ナンノインフラデスカ?」

BGM ♪コレから始まるインフラの物語

なお、この記事は相手方には掲載の許可を取って一部脚色したり隠蔽したりしています。

# 登場人物
メールじゃなくて凸電ってあたりに時代を感じますね・・それぞれの登場人物のスペック

1. ヤマモト:私
1. タケタニ=サン:依頼方 中小web屋さんのエンジニアリーダー的な存在
1. ミツヒデ=クン:タケタニ=サンの部下のエンジニアの人

他にも外野は何人かいましたがAとかBとかにします。

# バックストーリーの整理
いままであまりクラウドでバックエンドを構築したことがない会社さんのエンジニアの人から、クラウドでインフラをくれたまえとかいう雲を掴むような話がきました・・・・・いや雲掴むでいいのか、クラウドだけに。

LAMP構成の頃はバックエンドも作ってたんだけど最近はフロントかSaaSばっかりでねえ・・バックエンドどうやって作ったらいいかわかんねえという話でした

元記事を表示

【aws cli】vpcの作成とネットワーキング

## aws cliを使用したvpcの作成手順

こんにちは。今回は、aws cliについて初心者エンジニアに向けて、vpcの作成とネットワーキングについて解説します。

aws cli(command line interface)は、awsの各種サービスをコマンドラインから操作するためのツールです。guiでの操作に比べて直感的ではありませんが、一度コマンドを覚えてしまえば、繰り返し操作を行う際には非常に効率的です。

今回は、vpc(virtual private cloud)の作成からネットワーキングまでをaws cliを使用して実施します。

### 参考記事:
– [【aws cli】vpcの作成方法](https://example.com/blog1)
– [【aws cli】vpcの設定手順の解説](https://example.com/blog2)

まず最初に、vpcの作成手順を解説します。

### 1. aws cliのインストール

aws cliを利用するためには、まずaws cliをインストールする必要があります。

“`shell
$ pip in

元記事を表示

【Lambda】Python requestsを利用する方法

## Lambda import requestsでエラーとなる
Lambdaはpythonのrequestsをデフォルトでは使えません。
Content-Typeがmultipart/form-dataの場合、requests以外で処理すると、コードが長くなるので、対応方法を探していました。
application/jsonの場合は、urllib.requestを用いた対応でも良いかと思いますが、
想像よりも簡単に使えるようにできたので、下記ぜひ試してみてください!

## 参考文献
https://qiita.com/katzueno/items/3bbd9609daa6e06bcbb1

https://qiita.com/afukuma/items/b7191025700a7829967c

上記の内容参考に、自分用へのまとめ直し、補足情報の追加を行いました。

## 対応方法
### ローカルでrequestsライブラリをzip化
ディレクトリを作成し、そこにrequestsライブラリをダウンロードを行います。
そのディレクトリの中身をzip化します。
“`bash:loc

元記事を表示

Dataikuが2023年の年間最優秀AIパートナーとして3社から選出される

「一度でも何かをすれば、人はそれを事故と呼ぶ。二度起こったら、偶然と言われる。しかし、三度目は自然法則を証明したことになる。” これはアメリカのコンピューター科学者で数学者のグレース・ホッパーの名言である。

もしそれが本当なら、私たちは今年、新たな自然法則を証明したことになる: データ・インフラに関係なく、DataikuはAIで成功する方法です。

2023年は[誰が見てもAIの年](https://www.theguardian.com/technology/2023/nov/01/ai-named-most-notable-word-of-2023-by-collins-dictionary)であり、DataikuはデータとAIの分野で最も影響力のある大企業、Snowflake、Databricks、AWSから3つ以上の年間最優秀パートナー賞を受賞しました。

1: [Snowflakeは6月、3年連続](https://www.dataiku.com/press-releases/snowflake-partner-of-the-year-2023/)でDataikuを年間最優

元記事を表示

AWSのRoute53とCloudFrontとS3を使ってS3内の静的ページへアクセスしよう!

## 概要
AWSのCloudFrontのディストリビューションまたはRoute53のドメインからアクセスする際にS3バケット内の静的ファイルが表示されるようにする設定方法について解説します

## 前提
– Route53に自身のドメインを設定済み
– ACMを発行済み(ただし、CloudFrontに設定する際はACMをバージニア北部(us-east-1)に発行する必要があります)

ドメインの設定については以下の記事がわかりやすかったのでまだ設定できていない方は以下の記事を参考にしてください

https://dev.classmethod.jp/articles/route53-domain-onamae/

## S3バケットの作成
静的ファイルを格納する用のS3バケットを作成します
今回はS3に直接アクセスしないのでバケットのブロックパブリックアクセス設定はブロックしても大丈夫です
パブリックアクセス以外の設定も今回はデフォルトのままで大丈夫です

![スクリーンショット 2024-01-12 10.43.22.png](https://qiita-image-store.s

元記事を表示

AWS上に載せたGitLab関連のメモ(メールサーバー無し)

# 概要
https://qiita.com/yushikmr/items/902436a64ccc213947fe

EC2上にGitLabアカウントを作成したが,メール送信等はいらないので,入れなかった.
そうしたらアカウント発行ができなくなったので,解決策を模索中

## アカウント作成
GitLabのRootユーザーによって作成できます.

## アカウントのパスワードを変更
AWSのコンソール上でコマンドを打つことによって変更できます.

https://docs.gitlab.com/ee/security/reset_user_password.html?tab=Linux+package+%28Omnibus%29

“`
GitLabのコンソールからパスワードをリセットする:
GitLabのサーバーにrootユーザーとしてログインします。
GitLabのコンソールを使用してtestユーザーのパスワードをリセットします。
コマンドラインで以下のように実行します(GitLabバージョンによって異なる場合があります):

sudo gitlab-rails conso

元記事を表示

FirebaseのSPFレコードを登録してる場合はGoogleのSPFは不要という話

# 概要

Firebase AuthenticationとGoogle Workspaceからのメール送信が必要なシステムで、SPFレコードを以下のように登録していた。

`v=spf1 include:_spf.firebasemail.com include:_spf.google.com ~all`

[mxtoolbox](https://mxtoolbox.com/) でSPFの構成をチェックしたところ、以下のような警告を発見。

> Too many included lookups (11) Too many DNS Lookups? Solve this problem with SPF Flattening

SPFにおけるDNSルックアップの最大回数は10回までという制限がある。

# 疑問

FirebaseはGoogleのサービスだからSPFのアドレスも重複しているのでは?

# 調査

redditにも同じような投稿があった。

SPF Records?
byu/sharlysangels inFirebase

>

元記事を表示

AWS IoT Core でルールアクションの選択備忘録

# AWS Iot Coreのルールアクションの選択(DynamoDB/DynamoDBv2)
IoT Coreでルールを指定し、Dyanamo DBにデータを自動で入れるようにしたかった。

しかしルールアクションの選択で(DynamoDB/DynamoDBv2)
どちらもDBへのデータ追加が可能。どっちを使えば良いのか?

理解できた気がするので備忘録として記載する。

早速だがざっくりまとめる。

| |DynamoDB|DynamoDBv2|
|:–|:–|:–|
|設定方法|テーブル名、プライマリーキー、ロールを指定|テーブル名とロールの指定のみ|
|メリット|SQLの結果を指定したカラムにまとめて入れることが可能|SQLの結果をそのままDBにPut_Itemする|
|デメリット|使えるのは1カラムのみ|プライマリーキーはSQLで指定|
|ユースケース|★取得データ以外の情報をプライマリキーに設定できる|★複数カラムでデータを扱いたい時|

今回はカラムを複数に分けたかったのでDynamoDBv2、という選択にした。

元記事を表示

CDK for Terraform 0.20の新機能:HCLの合成とそのメリット

# はじめに

この記事では、CDKTF で HCL の合成を試した結果を紹介します。

先日公開された ver.0.20 で HCL の合成がサポートされました。

https://www.hashicorp.com/blog/cdktf-0-20-improves-implementation-of-iterators-and-enables-hcl-output

CDKTF は Terraform の構成ファイルを出力(合成といいます)できます。しかし、出力形式は JSON しか選択できず、Terraform で一般的に利用される HCL の合成はサポートしていませんでした。

HCL サポートの経緯は、issue で確認できます。

https://github.com/hashicorp/terraform-cdk/issues/225

# CDKTFをアップデートする

先日試した CDKTF 0.19 の環境をアップデートし、HCL の合成を試してみます。

0.19 で試した記事は、こちらです。

https://qiita.com/JHashimoto/items

元記事を表示

VPNをやめてVerifiedAccessをはじめました

ゼロトラストセキュリティモデルに移行することが、従来のVPNの使用をやめる理由になるとは限りませんが、ゼロトラストのアプローチはVPNに頼る従来のセキュリティモデルとは異なる重要な特徴を持っています。

ゼロトラスト・アーキテクチャに関してはなかなかボリュームのある内容なのでここでは触れませんが、VerifiedAccessはエンドユーザーのデバイスのコンテキストとIDに基づいてアクセスポリシーを適用し、特定のAWSリソースへのアクセスを許可または拒否するのでリソースやアプリケーションレベルでのアクセス制御に焦点を当てているサービスという認識です。

## VerifiedAccessとMicrosoft EntraIDによるユーザ認証の運用について
– VerifiedAccessは、ユーザーが安全かつ簡単にアクセスするために設計されています。
– EntraIDは、高度な認証機能でセキュリティの強化を実現するID管理ツールです。

この組み合わせによって、ユーザーはVerifiedAccessで接続する際に、EntraIDの高い認証基準を満たす必要があります。特に、二段階認証など

元記事を表示

AWSであらゆるものをモニタリングする方法を考える

# はじめに
この記事はDevOps on AWS大全 実践編の一部です。
DevOps on AWS大全 実践編の一覧は[こちら](https://qiita.com/tech4anyone/items/c27e74f9ae569ced259f)。

この記事ではAWSであらゆるものをモニタリングするアーキテクチャを決める流れを解説しています。

具体的には以下流れで説明します。

– 解決したい課題の整理
– 今回使うAWSサービスの整理
– アーキテクチャの策定
– 策定したアーキテクチャで達成できたこと

AWSの区分でいう「Level 400 : 複数のサービス、アーキテクチャによる実装でテクノロジーがどのように機能するかを解説するレベル」の内容です。

# この記事を読んでほしい人
– DevOpsエンジニアがアーキテクチャを決めるときにどのような思考フローを踏んでいるか知りたい人
– AWSであらゆるものをモニタリングするアーキテクチャを知りたい人
– AWS Certified DevOps Engineer Professionalを目指している人

# 前回までの流

元記事を表示

【AWS】【IAM】Resource 要素が空欄であるアクションについて

## はじめに
「最小特権アクセス許可を適用する」ための最もシンプルなやり方としては、
IAM ポリシーの「Resource 句」で対象リソースのArnを指定することだと思います。

ただ、[AWSリファレンス](https://docs.aws.amazon.com/ja_jp/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)内の「リソースタイプ列」が空欄の場合は、
「Resource句」での制御ができるのでしょうか。

本記事では「リソースタイプ列」が空欄となっているアクションに対して、
リソース句での制御可否を確認した記事となります。

## 結論
リソースタイプが空欄のアクションに対しては Resource 要素で全てのリソースを指定する必要があります。
例としてリソースタイプが空欄のアクションである「s3:ListAllMyBuckets」に対しては、
以下のように「”Resource”: “\*”」を指定する必要がありました。

“`

元記事を表示

AWS資格/SAA-C03チートシート

# 概要
AWS Certified Solutions Architect – Associate (SAA-C03)でよく出るAWSサービスとその特徴をまとめた試験対策用チートシート

https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/

# 分析
![](https://storage.googleapis.com/zenn-user-upload/ac983f8e707f-20240103.png)

| 重要サービス | 特徴 |
| ———— | —- |
| Kinesis | ストリーミングデータをリアルタイムで収集・処理・分析するサービス|
| Lake Formation | データレイク構築できるマネージドサービス|
| Glue | 複数のデータソースからデータを抽出・変換しターゲットに格納するELTサービス |
| Athena | S3上のデータに対してSQLを実行できるサービス |
| QuickSight | データを可視化

元記事を表示

StepFunctionsとKendraとBedrockを使ってノーコードでRAGを実現する

StepFunctionsからBedrockが呼べるらしいので、どうせならKendraも組み合わせてノーコードでRAGを実現してみます(Amazon States Languageはコードでは無いものとします)。

# 処理の流れ

1. 最初のステップではユーザー入力を元にLLM(Claude Instant)に検索キーワードを考えてもらいます
1. 真ん中のステップでは検索キーワードを元にKendraを検索します
1. 最後のステップで、ユーザー入力(≠検索キーワード)とKen

元記事を表示

AWSのマネジメントコンソールでSystems ManagerのSession Manager用のVPCエンドポイントを作成する

こんにちは。
本日はもう1つ、AWSのマネジメントコンソールでSystems Managerのセッションマネージャー用のVPCエンドポイントを作成する手順を記載します。

# 1. セッションマネージャーとVPCエンドポイントの関わり

## 1-1. セッションマネージャーの前提条件
Systems Managerの機能の1つ、セッションマネージャーは、AWSのマネジメントコンソールから仮想サーバーにシェルアクセスできるサービスです。

セッションマネージャーを利用するには以下の準備が必要です。

1. 仮想サーバーを立ち上げるためのAmazon Machine Image(AMI)で、
Systems ManagerのSSM Agentが含まれるAMIを用意している
2. 仮想サーバーでセッションマネージャーを使うために必要な、
IAMロールを作成している
3. 仮想サーバーから、
セッションマネージャーのエンドポイントへのアクセス経路を用意している
4. 仮想サーバーに設定するセキュリティグループで、
0.0.0.0/0に対するhttpsのアウトバウンドの許可ルールを含むセ

AWSのマネジメントコンソールでSession Managerで仮想サーバーにログインするためのIAMロールを作成する

こんにちは。
本日は、仮想サーバーにSystems Managerのセッションマネージャーでログインするために必要なIAMロールを作成する手順を記載します。

# セッションマネージャーで仮想サーバーにログインするための準備

仮想サーバーにセッションマネージャーでログインするためには、以下が必要です。

1. 仮想サーバーを立ち上げるためのAmazon Machine Image(AMI)で、
Systems ManagerのSSM Agentが含まれるAMIを用意している
2. 仮想サーバーでセッションマネージャーを使うために必要な、
IAMロールを作成している
3. 仮想サーバーから、
セッションマネージャーのエンドポイントへのアクセス経路を用意している
4. 仮想サーバーに設定するセキュリティグループで、
0.0.0.0/0に対するhttpsのアウトバウンドの許可ルールを含むセキュリティグループを
用意している

ここでは、セッションマネージャーで必要なIAMロールを作成する手順を記載します。

# AWSのマネジメントコンソールでセッションマネージャー

Lambda@EdgeをNode.js 14から18に上げるのに苦労したメモ

# 概要
サポート終了の関係で既存のNode.js 14のLambda@Edge関数をNode.js 18にあげるにあたってランタイムを変えるだけでは上手くいかない場合があったので備忘します。

# AWS SDKが読み込めない
`const aws = require(“aws-sdk”);`としていた部分が`Cannot find module ‘aws-sdk’`というエラーになってしまう。

原因はAWS SDK v2がNode.js 18のランタイムには同梱されなくなり、v3をインポートする記述への変更が必要になったため。
この関数ではSSMを使っていたので、
`import { SSMClient, GetParameterCommand } from “@aws-sdk/client-ssm”;`
のように変更

# ES modules構文に変更
上記のためES modules構文を有効にするため、拡張子も`index.js`から`index.mjs`に変更。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/nod

[AWS]データベースサービスのエンドポイントまとめ

# はじめに
AWSの各種DBサービスには接続用のエンドポイントを複数持つものがあります。

本記事で一番にお伝えしたいのは、**適切なエンドポイントを接続先に指定しないと、サービス停止などのリスクがある**ということです。

例えば書き込みオペレーションが発生するアプリケーションの接続先を **”プライマリインスタンスのインスタンスエンドポイント”** に指定した場合、何が起こるでしょう。

指定した当初はアプリケーションからの書き込み処理はプライマリインスタンスにルーティングされるため正常に実行されます。

しかし、なんらかの理由でフェールオーバーが発生しプライマリとレプリカが入れ替わった場合、アプリケーションは書き込み処理をレプリカインスタンスにリクエストしてしまうことになります。

その結果、書き込み処理は失敗しアプリケーションエラーが発生、サービス停止といった事態になりかねません。
どのDBにどのようなエンドポイントがあるか、よく確認しておくようにしましょう。

# 各DBサービスのエンドポイントタイプ
※インスタンス、ノードが1台のスタンドアロン構成の場合は省略します

#