- 1. AWS Elastic Beanstalk で作成したWordPress環境で、カスタムパーマリンクを設定すると404になってしまう問題の解決(Nginx)
- 2. AWSソリューションTag Tamerを実装してみた
- 3. AWS超絶初心者がSESを使ってメールの一斉送信やってみた
- 4. ec2-linux(cent)でdpkgできない場合の3行
- 5. 初学者がハマったLambda@Edgeの落とし穴たち
- 6. Flutter+Amplify(DataStore)でデータ登録がAWS側に反映されない
- 7. AWSでAIサービスを使ってみる〜③polly編〜
- 8. Vue.jsで環境変数を超簡単に切り替える
- 9. 最強のWiki「GROWI」を Terraform を使って超絶簡易的に EC2 にデプロイして個人利用する【GROWI】【AWS】
- 10. CloudWatchログ監視
- 11. CloudWatch Logs Insightsのbin関数で指定できるperiodの種類
- 12. AWSでAIサービスを使ってみる〜②translate編〜
- 13. [AWS]CloudBuildのビルドコンテナからEC2にアクセスしたい
- 14. Amazon Mechanical Turk に課題を作成・発行する方法(画像分類課題)
- 15. [Terraform]AWSインフラをコード化してみよう
- 16. 【AWS図解】ユースケース別に見るグローバルネットワークサービス
- 17. HTMLでローカルに保存した画像をAmazon S3を使って表示させる方法
- 18. LambdaでAmazonのIPを取得してSGアウトバウンドに投入する
- 19. AWS EC2でISUCONの練習環境を用意するまでに色々とはまったこと
- 20. マインドマップでAWSのデータ分析サービスを勉強【データ分析編】第2回 − Redshift, Athena
AWS Elastic Beanstalk で作成したWordPress環境で、カスタムパーマリンクを設定すると404になってしまう問題の解決(Nginx)
# 発生した問題
## WordPressでカスタムパーマリンクを設定すると、記事ページなどが404になってしまう
「基本」であれば問題は無い。
しかし、カスタムパーマリンクに変更すると記事ページなどが404になってしまう。また、投稿ページでも一部JavaScriptファイルが404で読み込めないエラーが発生し、投稿、下書き保存などができなくなってしまう。![スクリーンショット 2021-07-13 13.24.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/85825/9a11a3b0-fcb8-ef45-6cf6-343c19cf7963.png)
![スクリーンショット 2021-07-13 13.53.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/85825/5d1f8ec4-39e5-9d35-880a-3a81989b0660.png)補足だが、ここで言う「カスタムパーマリンク」は「基本
AWSソリューションTag Tamerを実装してみた
# はじめに
AWSのソリューションTag Tamerを実装します。
Tag Tamerは、タグ付けに関するソリューションです。
試した感じだと、習熟に多少の時間が必要そうです。https://aws.amazon.com/jp/about-aws/whats-new/2021/06/new-aws-solutions-implementation-tag-tamer/
https://aws.amazon.com/jp/solutions/implementations/tag-tamer/
Tag Tamerはパブリック用とプライベート用がありますが、本記事はパブリックを選択しています。
プライベート用はVPNまたはDirect Connectが必要なため、構築に時間とコストがかかってしまうからです。本記事では実装ガイド通りに行って、スムーズにいかなかったところだけ記載しています。
公式実装ガイドと、以下のclassmethod様の記事を非常に参考にさせていただきました。https://dev.classmethod.jp/articles/tag-
AWS超絶初心者がSESを使ってメールの一斉送信やってみた
筆者のレベル感は
– AWSの構成図は読める、それぞれの機能の概要はなんとなく分かる
– AWSでの実装経験はゼロ(システム開発経験もゼロ)なので、生暖かく見守ってください。
#やりたいこと
リスト化されたメールアドレス宛に、対応する宛名を文面に盛り込んだメールを送りたい。
基本的には以下の記事を参考に実装。項目も引用させてもらっています。
https://dev.classmethod.jp/articles/bulk-email-ses-lambda/
#SESで送信元メールアドレスを登録
ここはうまくいった。方法はネットに溢れているので割愛#DynamoDBでユーザーテーブルを作成
???
userId(PK)とはなんぞや???プライマリキーということは分かったけど、
a06b7c45-1303-45bf-a2d7-fec53fbc224cとかが何を表しているのか分からないので、
いったん以下のように記載| userId(PK) | name | emailAddress |
|:-:|:-:|:-:|
| 1|太郎 | test1@XXX
ec2-linux(cent)でdpkgできない場合の3行
“`bash
$ sudo amazon-linux-extras install epel
$ sudo yum repolist
$ sudo yum -y install dpkg-devel dpkg-dev
“`
1行目は「sudo yum install epel」と書きたいところですが、
歯を食いしばって「sudo amazon-linux-extras install epel」と書いてみましょう。
初学者がハマったLambda@Edgeの落とし穴たち
# 概要
私はAWS歴1年目のおじさんエンジニアです。当記事は、私が初めてLambda@Edgeを書くにあたってハマったポイントの備忘録です。
ご存じの方には今更な内容かと存じます。基本的には[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html)に記載してあることばかりです。
なお、私の都合上、ランタイムはNode.js前提です。
# 落とし穴たち
## リージョンはus-east-1(バージニア北部)のみ
これは皆さま最初に驚くポイントかと思いますが、Lambda@Edgeを設置できるリージョンは**us-east-1**のみです。
## 環境変数が使えない
Lambda@Edgeでは環境変数が使えません。私は今回扱いませんでしたが、どうしてもLambda@Edgeで機微情報を扱いたい場合には、SecretsManager等を参照する手段が一般的な様です。
## メモリなどの制約が厳しい
Lambda@E
Flutter+Amplify(DataStore)でデータ登録がAWS側に反映されない
# 内容
公式の手順に沿ってAmplifyのDataStore使ってデータ登録してるのに、
ローカルには保存出来てるっぽいが、クラウド側のDynamoDB見ててもデータ全然入ってこない!コンソール見ててもそれっぽいログ流れてこないし、めっっちゃ悩んだ。
※公式は以下を参照
https://docs.amplify.aws/lib/datastore/getting-started/q/platform/flutter“`dart
Todo newTodo = Todo(name: ‘HOGE’);try {
await Amplify.DataStore.save(newTodo);
Listtodos = await Amplify.DataStore.query(Todo.classType);
print(todos); // ここでは取得出来ているので、どうやらクラウド側への反映がうまくいってない?
} on DataStoreException catch (e) {
pri
AWSでAIサービスを使ってみる〜③polly編〜
## Amazon Pollyとは
AIのテキスト読み上げのサービスです。テキストから音声を合成することができるAWSのサービスです。また、他言語にも対応指定たりニューラル音声といったより流暢にテキスト読み上げる機能(現状一部言語のみ)もあります。## テキストから音声ファイルを作成してみる
エディタでpythonファイルを作成し、pollyサービスクライアントを利用してテキストの音声合成を行います。
“`warabimochi.py
import boto3
import contextlib
import os#pollyサービスクライアントを作成
polly = boto3.client(‘polly’)
#音声合成のテキスト
text=’Nさんは次のミーティングまでにSさんにわらび餅を買う予定です。’#テキストから音声を合成
result = polly.synthesize_speech(
Text=text, OutputFormat=’mp3′,VoiceId=’Mizuki’)#出力ファイルのpath
path = ‘warabimochi.m
Vue.jsで環境変数を超簡単に切り替える
# 環境変数
本番環境、検証環境、開発環境の複数環境を作成したときにAPIの向き先を変えたりする必要がある。その都度ベタがきのコードを改修してfirebase,AWSにデプロイするなんていうのは嫌ですよね?
また、中にはビルド時に秘密にしたい秘密情報が必要な場合があります。そういったものをデプロイ・ローカルホストの起動時だけ利用できるように設定する簡単な方法がVue.jsには用意されています。## 環境変数の切り替え
環境変数の切り替えをローカル上での起動とビルド時にできるようにするための7ステップを紹介します。###1 .env.\*\*\* に変数を追加する
VUE_APP_\*\*\*をプレフィックスにして変数名を定義
例 : http://hogehoge を develop に登録する場合
“` .env.develop
VUE_APP_API_DOMAIN = http://hogehoge
“`###2 .env.\*\*\* に登録した環境変数を利用する
process.env.\*\*\* で利用したいところから呼び出す
記入例
“`
最強のWiki「GROWI」を Terraform を使って超絶簡易的に EC2 にデプロイして個人利用する【GROWI】【AWS】
# この記事の目的
GROWI をインターネット上で使いたい人が使えるようにすることのみです。
技術的な解説などは全て省きたいと思います。手順と手順の目的と概要のみを記します。
ただ、超簡易的な方法になるので念のため自己責任でお願いします。# 注意事項
* 本当に簡易的です。
* Elastic Searchは使いません。
* httpsでの接続はしません。
* アクセス数によっては費用が発生する可能性があります。
* この記事はクオリティ的には未完成ですのでフィードバックをいただけると嬉しいです。すぐに改善します。# 前提知識
手順通りやればできるようになっています。基本的な知識があればできます。ググれば誰でもできます。# デプロイに必要なもの
* AWS アカウント
* Docker がインストールされているPC# 今回のデプロイの方針
今回は、とにかく個人利用でセキュリティも何もいらなく、とにかく GROWI が使えればいいと言う方針でやっていきます。さらに、ほぼ無料で使いたいと言う欲望から、Elastic Searchは使わないことにします。これがあるだけで
CloudWatchログ監視
# CloudWatchロググループ
[![Image from Gyazo](https://i.gyazo.com/861fbbf471bf0bde82f3c2c5a35ffec7.png)](https://gyazo.com/861fbbf471bf0bde82f3c2c5a35ffec7)
# メトリクスフィルター
[![Image from Gyazo](https://i.gyazo.com/0a9fc29cf9dcb826da1782cd789a7b7f.png)](https://gyazo.com/0a9fc29cf9dcb826da1782cd789a7b7f)
[![Image from Gyazo](https://i.gyazo.com/9c2dced5fc32d27fa09805c525729270.png)](https://gyazo.com/9c2dced5fc32d27fa09805c525729270)
[![Image from Gyazo](https://i.gyazo.com/3056ac3c293186f356534c4468
CloudWatch Logs Insightsのbin関数で指定できるperiodの種類
AWSではCloudWatch Logsにたまったログを集計する場合、ElasticSearchなどに連携する以外にCloudWatch Logs Insightsを使って検索することもできます。Insightsのクエリではstats句で簡単な集計を行えるのですが、ここで日付のまるめを行うbin関数の単位(period)についてドキュメントに言及がなかったので試してみました。
[CluudWatch Logs Insights bin関数の定義](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html#:~:text=bin)
例えば、.NET の1日当たりの例外件数を集計したいならこうなりますね。
“` s
filter Level = ‘Error’
| stats count(*) by bin(1d)
“`m(分)やh(時)で丸めることはありますが、月で丸めたくなり、おや??どうするんだろう?あっmonthでいいのか、他に何使えるんだろう?が事の発端でした。
結果こ
AWSでAIサービスを使ってみる〜②translate編〜
##はじめに
前回AWSでAIサービスを利用するにあたっての導入をさせて頂きました。
今回はAWSのAIサービスのひとつであるTranslateを使用していきます。##Amazon Translateとは
Translateを使うとテキスト(文字列)を別の言語に翻訳することができます。##テキストを翻訳してみる
それでは早速テキストを翻訳してみましょう。“`trans_text_ja.py
#boto3をインポート
import boto3
translate = boto3.client(‘translate’)
text = ‘昨日のご飯は美味しかった。’#翻訳
result = translate.translate_text(
Text=text, SourceLanguageCode=’ja’, TargetLanguageCode=’en’)
print(result[‘TranslatedText’])
“`ターミナル上でtrans_text_ja.pyを実行
“`
python trans_text_ja.py
“`実行す
[AWS]CloudBuildのビルドコンテナからEC2にアクセスしたい
自分メモ用。
## 概要
CloudBuildのビルドコンテナからEC2にアクセスする方法。
前提として、EC2にはIP制限&SSHキーで接続する。**手順**
1. CloudBuildのビルドコンテナをVPC内で立ち上げる
2. SSMパラメータストアにSSHキー登録する
3. ビルド時にSSHキーを読み込んで接続## 1. CloudBuildのビルドコンテナをVPC内で立ち上げる
基本的に上の手順の通り。
CodeBuildのロールにVPCのポリシーをアタッチする必要がある。## 2. SSMパラメータストアにSSHキー登録する
SSM(Systems Manager)パラメータストアにSSHキー登録。
id_rsa.pub(公開鍵)、id_rsa(秘密鍵)の二つをKMSを利用して登録する。
IAMでCodeBuildのロールにAmazonSSMReadOnlyAccessのポリシーをアタッチする必要あり。![スクリーンショ
Amazon Mechanical Turk に課題を作成・発行する方法(画像分類課題)
# はじめに
先日、研究で画像分類タスクの人間データを集める際に、Amazon Mechanical Turk (以下AMT)を使用したのですが、一つにまとまった情報がなかったので、(所属ラボの資産にする意味も込めて)この記事でまとめて共有します。(AMT自体の説明や詳細については、少し古いですが[こちらのスライド](https://www.slideshare.net/Ayako_Hasegawa/amazon-mechanical-turk-92372451)が参考になるかと思います。)
今回は、AMT側で用意されているテンプレートとCrowdHTMLというAMT用のタグを使用してシンプルな画像分類課題を作成しました。他の課題もテンプレが用意されているので、適宜自分の目的に合わせて作成してください。
また、より複雑な課題をオンラインで実施したい場合は、他のサービスなどを組み合わせる必要があると思います。詳しくは [#より複雑な課題を提出したい場合は?](#より複雑な課題を提出したい場合は)で考察しています。
関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた