- 1. WordPressでNephila clavata (絡新婦)を使って負荷分散をした話
- 2. ERROR: Couldn’t connect to Docker daemon at http+docker://localhost – is it running? If it’s at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
- 3. AWS CloudShell とは
- 4. AWS NetWork Firewall を使用した Web フィルタリングの実装 – Suricata compatible IPS rules –
- 5. [AWS Amplify DataStore] [iOS] “Cannot find ‘AmplifyModels’ in scope” の原因が Target Membership の設定だった
- 6. AWS PollyをLaravelで利用したよ
- 7. AWS Amplify – 最速でログイン機能を実装してみた ① AWS Amplifyとは?
- 8. LinuxでMySQLをアップデートする方法
- 9. AWS NetWork Firewall を使用した Web フィルタリングの実装 – ネットワーク構成 –
- 10. 【AWS】VPC・EC2 作成 ハンズオン
- 11. CloudWatch Logsで特定の文字列を検知したらLambdaでメール通知する
- 12. 【AWS】EC2でのデプロイ(自動デプロイ)
- 13. AWS Wavelength (KDDI / 5G MEC)を気軽に試せるAWS CDK環境を作った件
- 14. Amazon Linux 2 に Amplify CLI を入れて Python Lambda を作ろうとしたら Python3.8以上が必要というエラーが出て困った話
- 15. 【AWS】EC2でのデプロイ(Webサーバーの設定)
- 16. AWS Cloud9でlaravelの環境立てようとしたら面食らったので、Google先生に質問してみる
- 17. EC2へのsshコマンド、mysqlの接続コマンド
- 18. 【EC2】WordPressを構築しよう sec7後半
- 19. AWS EC2にMySQL Serverをインストールする
- 20. 【AWS】API Gatewayでカスタムなステータスコードを返す方法
WordPressでNephila clavata (絡新婦)を使って負荷分散をした話
#目的と手段
管理しているHPの読み込み速度を上げたくて悩んでいました。画像や動画が多いサイトで読み込みに時間がかかっています。そこでWordPressのプラグインNephila clavata (絡新婦)を使って負荷分散をし、読み込み速度の改善を図りました。以下にその時の流れを書いておきます。
#Nephila clavata (絡新婦)
WordPressのメディアライブラリに画像をアップロードすると自動でAmazon S3へアップロードし、リンクも変更してくれる大変便利なプラグインです。
##使い方
###S3バケット作成
まずはS3のバケットを作ります。バケットネームはstatic.〇〇.com とかの静的ファイルを配布したいドメイン名が良いと思います。自サイトのドメイン名とは別のまだ使っていないサブドメインを利用してください。リージョンは日本なら東京です。作成したら、セキュリティ証明書画面で取得した「アクセスキー」「シークレットアクセスキー」をメモしておいてください。
###Nephila clavata (絡新婦)の設定
Nephila clavata (絡新婦)をインスト
ERROR: Couldn’t connect to Docker daemon at http+docker://localhost – is it running? If it’s at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
“`
sudo docker-compose run web rails new . –force –no-deps –database=postgresql –skip-bundle
“`コンテナを作成しようとしたところ、以下のエラーが発生しました。
“`
ERROR: Couldn’t connect to Docker daemon at http+docker://localhost – is it running?If it’s at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
“`#原因
結論から申し上げますと、今回の場合はdockerのサービスを開始していなかったのが原因でした。
#解決策
“`
sudo systemctl start docker
“`
を行ない、docker サービスを起動させ、再度“`
sudo docker-compose run web rails new . –for
AWS CloudShell とは
## 勉強前イメージ
ブラウザで触れるコンソールの認識
## 調査
### AWS CloudShell とは
ブラウザから触れるコマンドラインになります。
Amazon Linux2ベールで、aws cli やコンテナサービスのcliなど予めインストールされています。### AWS CloudShell の特徴
– Amazon Linux 2ベースの環境
– パッケージインストールも可能
– ファイルをアップロード,ダウンロード可能(ホームディレクトリは1GB保持することが出来ます。)
– 最大10個の同時シェルを無料で使用可能### 起動方法
– 起動
ターミナルの画面、または検索から `cloudshell` で起動
1ダッシュボード _ EC2 Management Console – Google Chrome 2
– 起動
すぐに起動します。
2AWS CloudShell – Google Chrome 2021-06-19 14.51.18
– いろいろ確認
amazon linux2でした
“`
$ cat /etc/syste
AWS NetWork Firewall を使用した Web フィルタリングの実装 – Suricata compatible IPS rules –
**本記事では AWS Network Firewall にて実装が可能な Suricata互換のIPSルールの解説と簡易的なルールを記載する**
#Suricataとは
Suricataとは、簡単にいうとオープンソースのセキュリティ監査エンジン。
Network Firewall では互換性のあるステートフルルールとしてSuricataが使用可能である。以下、公式ドキュメント
https://suricata.readthedocs.io/en/suricata-5.0.2/what-is-suricata.html
#特徴
他のステートフルルールである 5tuple あるいは domain list との大きな違いは、定義したシグネチャー通りに動作を行うところ。要は以下に記載したルールによって、検査を行う動作内容を表現する事が出来る。
また、5tuple あるいは domain list で実装が出来ないシグネチャー単位で優先順位を付ける事が可能。![image.png](https://qiita-image-store.s3.ap-northeast-1.ama
[AWS Amplify DataStore] [iOS] “Cannot find ‘AmplifyModels’ in scope” の原因が Target Membership の設定だった
[AWS Amplify DataStore の iOS アプリ向けチュートリアル](https://docs.amplify.aws/lib/datastore/getting-started/q/platform/ios)をしていた際、
[Initialize Amplify DataStore](https://docs.amplify.aws/lib/datastore/getting-started/q/platform/ios#initialize-amplify-datastore) で次のコードを “AppDelegates.swift“ に追加した時、
“let dataStorePlugin = AWSDataStorePlugin(modelRegistration: AmplifyModels())“の部分で
“Cannot find ‘AmplifyModels’ in scope“ というエラーが表示されました。“`swift:swift
func application(_ application: UIApplication, did
AWS PollyをLaravelで利用したよ
#はじめに
Amazon PollyはAWSが提供する深層学習を利用してリアルな音声に変換できるサービスです。ブラウザの読み上げ機能よりクオリティの高い音声を実現したいなどテキストから音声ファイル(mp3)に変換したい時に活躍するのではないでしょうか。
そんな、AWS Pollyをハッカソンで利用したので備忘録的な感じで書いていきます。Pythonでの記事はたくさん見かけたのですがPHPはあまり見つからなかったので参考になればと思います。
AWSのサンプルコードがありますのでしておきます。[PHP Code sample for Amazon Polly](https://docs.aws.amazon.com/code-samples/latest/catalog/code-catalog-php-example_code-polly.html)
※もし、利用方法などに間違いなどがあればコメントください。
#実装
今回はAPIを利用し、下記の工程の流れとなります。
1.テキストをPollyに対してリクエストを送る
2.Pollyで作成したmp3ファイルをAWS S3に保存
AWS Amplify – 最速でログイン機能を実装してみた ① AWS Amplifyとは?
![amplify.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1668464/e3d94626-f495-a2d8-f79a-669a668a0a91.jpeg)
今回は、巷で話題になっているAWS製mBaaSを使って最速でログイン機能を実装してみました。
便利な世の中になったなぁというのが一番の感想ですが、とにかくアプリを最速でリリースしたい方にすごくおすすめのサービスだなと思いました。[チュートリアル動画はこちら](https://www.udemy.com/course/aws-amplify-react-authentication/?referralCode=6C9136CDF443E05B3A40)
[元記事はこちら](https://chott-works.com/tips/AWS/AmplifyAuth)
##AWS Amplifyとは?
AWSを使用したスケーラブルなWeb・モバイルアプリ開発のためのmBaaS(Mobile backend as a Servic
LinuxでMySQLをアップデートする方法
#目次
[1.MySQLのバージョン確認](#1-インストールされているmysqlのバージョン確認)
[2.MySQL停止](#2-mysql停止)
[3.MySQLをアンインストールする](#3-mysqlをアンインストールする)
[4.MySQLのインストール](#4-mysqlのインストール)
[5.終わりに](#5-終わりに)#1. インストールされているMySQLのバージョン確認
cloud9は、デフォルトでMySQLがインストールされています。
バージョン確認をすると5.5系がインストールされています。
“`mysql –version
“`
こちらを5.7系にアップデートしていきます。#2. MySQL停止
まずはSQLを停止させます。
“`sudo service mysqld stop
“`
#3. MySQLをアンインストールする
“` sudo yum -y remove mysql-config mysql55-server mysql55-libs mysql55
“`
5.5系のSQLをアンインストールする為、上記の数値は“`5
AWS NetWork Firewall を使用した Web フィルタリングの実装 – ネットワーク構成 –
AWS Network Firewall が東京リージョンにて 2021年3月より利用可能
**本記事では NAT Gateway を経由して、インターネットへ外部通信する際に AWS NetWork Firewall を使用して、Web フィルタリングとして機能させるためのネットワーク構成を記載する**
#構成
構成は以下のイメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/c282d64a-108d-4c9c-eec2-5735c5a2c1b9.png)#Network Firewall の作成
Firewall Endpoint とは、Network Firewall を作成する際に、対象の VPC 内の指定したサブネットに作成される検査用のエンドポイント。
この endpoint 上にルールグループを追加して、指定した通信を制御する仕組みとなる。ルールグループについては別記事にて記載。
![image.png](https://qiita-image-
【AWS】VPC・EC2 作成 ハンズオン
#はじめに
今回の記事ではAWS上での基本的なネットワーク環境の作成、EC2インスタンスの作成について記載します。
作成手順がベースとなりますが、随時補足しながら記載していきます。#作業環境
macOS Big Sur バージョン 11.4#構成図
以下の図のような環境の構築を目指します。
![diagram01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1410257/4263be0b-f12c-79d5-1fa2-cc825033a32b.png)※リソースはすべて東京リージョンに作成します。
#VPC作成
#####VPC(Amazon Virtual Private Cloud)とは* AWSにおけるネットワーク環境を定義する仮想ネットワークのサービス
* このネットワークにEC2などのAWSリソースを配置していく
* VPC自体の作成には料金は発生しない#####リージョンを選択
Management Consoleにログインし、まずはリージョンを選択します。
画面右
CloudWatch Logsで特定の文字列を検知したらLambdaでメール通知する
## 概要
CloudWatch Logsに出力しているサーバーとかアプリのログで、特定の文字列を見つけたらLambdaにそのログ行を渡してメール通知させる、というSyslogで例えればswatchみたいなことを実装してみた
## 方式・構成
1. CloudWatch Logsのサブスクリプションフィルター機能を利用して特定の文字列にマッチしたらそのログをLambdaに渡す
1. Lambdaは渡されたログデータを加工してAmazon SNSに渡す
1. Amazon SNSは指定されたトピックからメールで管理者に通知する![structure1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168524/0a6fb2b6-943c-ce35-9c96-634f415705e5.png)
## 作業の大まかな手順
1. SNSトピックを設定する
1. Lambda関数を作成する
1. Lambda関数のロールにIAM権限を設定する
1. Lambda関数のコードを作成・テストする
1.
【AWS】EC2でのデプロイ(自動デプロイ)
# 目的
`AWS`のサーバーを利用し、Railsで作成したアプリを公開する。# 開発環境
macOS: *Big Sur*
Rubyバージョン: *2.6.5*
Railsバージョン: *6.0.0*# 前提
– `Webサーバー`の設定が完了している。[【AWS】EC2でのデプロイ(Webサーバーの設定)](https://qiita.com/oak1331/items/501cc3cea4411abfd26d)
# 手順
1. [はじめに](#はじめに)
1. [Gemの導入](#gemの導入)
1. [Capfileの編集](#capfileの編集)
1. [production.rbの編集](#productionrbの編集)
1. [deploy.rbの編集](#deployrbの編集)
1. [Unicorn設定ファイルの編集](#unicorn設定ファイルの編集)
1. [Nginx設定ファイルの編集](#nginx設定ファイルの編集)
1. [自動デプロイの準備](#自動デプロイの準備)
1. [自動デプロイの実行](#自動デプロイの実行)
1. [アプ
AWS Wavelength (KDDI / 5G MEC)を気軽に試せるAWS CDK環境を作った件
# はじめに
AWS Wavelength流行ってますよね!?(当社比)ただAWS Wavelengthは複雑なEC2やVPCの設定をしなければならず、ハードルが非常に高かったです。
そこでWavelengthの最小構成を自動で構築できるリポジトリを作成しました。中身は、AWS CloudFormationとその構成をコードで構築できるAWS CDKでできています。
だいたい動かしっぱで月5000円くらいの構成ですが、不要になればコマンド一つですべて消すことができます。
# 使い方
次に今回準備したリポジトリをCloneします。
使い方はREADME.mdに記載してます。
https://github.com/ChujoHiroto/AWSCDKWavelengthExample
# まとめ
他にAWS CloudFormationでWavelength環境を構築した情報がほとんどなく苦労しましたが、これで試せるようになりました。https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aw
Amazon Linux 2 に Amplify CLI を入れて Python Lambda を作ろうとしたら Python3.8以上が必要というエラーが出て困った話
タイトルのとおり困ったことが解消できたので手順のメモ。Pythonの環境構築について何もわかっていないので、解決はできたもののわかっていない。
## エラーまでの手順
Amazon Linux 2 起動 && Amplify CLI インストール(4.52.0)“`sh
amplify init
amplify add function # Pythonを選択
amplify push
“`## 出たエラー
“`
python found but version is less than the minimum required version.
You must have python >= 3.8 installed and available on your PATH as “python3” or “python”. It can be installed from https://www.python.org/downloads
“`
Cloud9 でも確か同じエラーが出て、`python`も`python3`も3.8未満だったため出ている。## 試
【AWS】EC2でのデプロイ(Webサーバーの設定)
# 目的
`AWS`のサーバーを利用し、Railsで作成したアプリを公開する。# 開発環境
macOS: *Big Sur*
Rubyバージョン: *2.6.5*
Railsバージョン: *6.0.0*# 前提
– `EC2のRails`が起動している。[【AWS】EC2でのデプロイ(EC2のRailsを起動)](https://qiita.com/oak1331/items/d62ac2921765af379fe5)
# 手順
1. [はじめに](#はじめに)
1. [Nginxの導入](#nginxの導入)
1. [Nginx設定ファイルの編集](#nginx設定ファイルの編集)
1. [Unicornの設定変更](#unicornの設定変更)
1. [「502 but gateway」の対処法](#502-but-gatewayの対処法)# はじめに
今回は`Nginx`の導入を行っていきます!
`Nginx`とは、Webサーバーの一種で、ユーザーのリクエストに対して静的コンテンツのみ取り出し処理を行い、動的コンテンツの生成をアプリケーションサーバに依頼する役
AWS Cloud9でlaravelの環境立てようとしたら面食らったので、Google先生に質問してみる
# やりたいこと
AWS cloud9 でとりあえずlaravelのprojectをgitcloneしたい。# 免責事項
以下の手順は2021/6/20に実施しました。環境の更新によっては手順ができない可能性があります。##手順
– PHPのバージョン確認をします“`
OrganizationAccountAccessRole:~/environment $ php -v
PHP 7.2.24 (cli) (built: Oct 31 2019 18:27:08) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
“`
PHPのversionが7.2でした。このままgithubからcloneしたのちプロジェクトを動かそうとするとphpのバージョンの影響により動作しません。ご自身で使われているPHPのバージョを合わせる作業を実施します– php7.3をインストールしようとします
“`
Organiza
EC2へのsshコマンド、mysqlの接続コマンド
##cloud9からEC2へSSH接続するコマンド
“`
ssh -i ~/.ssh/practice-aws.pem ec2-user@パブリックコメントIPまたはEIP
“`##mysqlへ接続するコマンド
“`
mysql -u root -p -h エンドポイント
“`
- エンドポイントはRDSのメニューで確認する。
- 接続を解除するには、“`exit“`を入力するか、“`Ctrl+D“`を押下する。
【EC2】WordPressを構築しよう sec7後半
TCP/IPの4階層モデル
sec7後半:なぜWordPressが表示されるのか?
下の図の部分を学ぶ。## TCP/OPについて学ぶ
通信の中では実際に何が起きているのか?
→ TCP/IPプロトコルに基づいて行われている。### プロトコル とは
コンピュータ同士の約束事。共通言語のような役割。### TCP/IP
TCP/IPを中心として、インターネットを構築する上で必要なプロトコル群。### TCP/IPの4階層モデル
各階層の役割がわかりやすく、上下の階層を意識する事なく自身の役割を果たすことができる。#### アプリケーション層
アプリケーション同士が会話する。(HTTP, DNS, SSH#### トランスポート層
データの転送を制御する。(TCP, UDP#### ネットワーク層
IPアドレスを管理し、経路選択する。(IP, ICMP, ARP#### ネットワークインタフェイス層
直接接続された機器同士で通信する。(Ethetnet, PPP
AWSがよしなにやってくれる。
上位層から階層へは、自分のデータ処理に必要になる”ヘッダ”を
AWS EC2にMySQL Serverをインストールする
# はじめに
# 目次
1. [MySQLをインストール](#Chapter1)
1. [MySQLへアクセスする](#Chapter2)
# EC2にMySQL Serverをインストール
####【前提】
・MySQL SevrerをインストールしたいEC2インスタンスにルート権限でログインしてください。####【手順】
**1.MySQLリポジトリをインストールする。**“`
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
“`
**2.MySQL Serverをインストール。**“`
yum install mysql-community-server -y
“`
※サーバのインストールのため時間がかかる場合があります。**3.MySQLを起動。**
“`
s
【AWS】API Gatewayでカスタムなステータスコードを返す方法
ふと、API Gatewayで指定したステータスコード(404とか500とか)を返したいと思い、色々な記事を見ていたのですが、どうにも上手く行かない。
例えば、Lambdaで404のステータスコードを返す関数を作成し、API Gatewayでアタッチしたとします。
“`js
exports.handler = async (event, context, callback) => {
const myErrorObj = {
errorType : “Page not found”,
httpStatus : 404,
}
return callback(JSON.stringify(myErrorObj));
// リクエストをしても200が返ってくる
};
“`これで404のステータスを渡せるんじゃないの?と思う方も多いと思います。
ただ、これを実際にリクエストすると、200のステータスコードが返ってきます。
なんとも不気味ですね。
しかも厄介。
恐らくこの辺の設定は全て自分で行わなければいけないら