- 1. Apache httpdをlinuxにインストールする
- 2. Amazon S3でSPAをサクッと公開する
- 3. 【初心者】AWS VPC Traffic Mirroring を使ってみる
- 4. AWS#1:覚えた技術を日々書き留める
- 5. API Gateway の CORS 設定を swaggerで行う。
- 6. CodeCommitへのアクセスをIPアドレスで制限
- 7. Redshiftで `EXTRACT(EPOCH FROM interval)` を使うと間違った値が返ってくる
- 8. ElasticBeanstalk Worker Tierで定期バッチの構築する
- 9. AWS 勉強メモ
- 10. AWSクラウドプラクティショナー学習ポイント
- 11. AWSのすべてのサービスにReadOnly権限を与えたいときのTips
- 12. [AWS] Route 53 でダイナミックDNS
- 13. Amazon Cognito に入門してみる 〜 1
- 14. ブラウザベース開発環境 AWS Cloud9 EC2 の良し悪し、備忘録
- 15. AWS(Amazon Web Services)事始め
- 16. aws サーバー ディスク容量確認
- 17. Laravel による S3 操作に必要な最小限の IAM ポリシー
- 18. ラズパイ+魚眼レンズ+KinesisVideoStreamで低コストの監視カメラ
- 19. EC2上にdocker-compose + Ruby on Rails環境を立ち上げて運用する際に参考にしたサイト【メモ】
- 20. AmazonECRに学習済みモデルをデプロイする流れ(Docker利用)
Apache httpdをlinuxにインストールする
#環境
-Linux AWS
-iOS##コード
実行環境はAWSのLinuxサーバです“`
$ yum -y install httpd //インストール
.
.
.
完了しました!
$ sudo systemctl enable httpd.service //自動起動の設定
$ sudo systemctl start httpd.service //起動
$ systemctl status httpd.service
● httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since 火 2019-11-12 01:22:16 UTC; 2s ago
Docs: man:httpd.service(8)
Main PID: 4283 (httpd
Amazon S3でSPAをサクッと公開する
# はじめに
ストレージサービスとして有名&優秀なAmazon S3ですが、実は「静的ウェブサイトホスティング」という機能を使うことで、Vue.jsやReactで作ったSPAを簡単に公開することができます。また、AWS CLI を使用することでコマンド一発でサクッとデプロイすることができます。~~[heroku](https://jp.heroku.com/)や[firebase](https://firebase.google.com/?hl=ja)などのPaaSが充実している昨今、あまりS3でやるメリットない気もしますが。~~今回はその手順についてまとめてみました。(ちなみに私がVue.jsをよく使うのでちょくちょくVue.jsが登場しますが、Reactでも同様の操作ができるはずなので、適宜読み替えていただければと思います。)
# お値段
まず一番大事なお金の話から。
S3の料金は「利用したストレージの容量」「リクエスト件数」「リクエストに対するデータ送信量」の3軸で計算されます。| ストレージ料金 | |
|:————-:|:———–:|
【初心者】AWS VPC Traffic Mirroring を使ってみる
# 目的
– オンプレ時代にネットワークにTAPを入れてwireshark等でパケットキャプチャするような仕事があったが、同じようなことをAWSでできると聞いたため、どんなものかを確認してみることにした。# VPC Traffic Mirroring とは(自分の理解)
– 特定のENIを通るトラフィックをミラーリングして、別のENIもしくはNLBに出力できる。# やったこと
– インスタンス1(Amazon Linux2) と インスタンス2(WS2019) を作成する。インスタンス2には、RDP用のENIとミラーリングを受ける用のENIの2つをアタッチする。
– インスタンス1にアタッチしたENIをミラーリングのSource、インスタンス2にアタッチしたENIをミラーリングのTargetに設定する。
– インスタンス1にssh接続する。そのパケットをインスタンス2のwiresharkでキャプチャして、sshの通信を表示する。# 構成図
![vpc-trafficmirror.png](https://qiita-image-store.s3.ap-northeast-
AWS#1:覚えた技術を日々書き留める
#AWSとMQTT関連の用語たち
**MQTT**
2者間の非同期通信をサポートするプロトコル**JSONペイロード**
JavaScriptにおけるオブジェクトの表記法を応用したデータ形式**Thing**
管理したいデバイスやセンサーをThing(モノ)として登録する。
モノには属性(Attribute)を任意に登録できる**Certificate**
証明書。モノを認証するための証明書**Publisher**
データを送る側**Subscriver**
データを受け取る側
API Gateway の CORS 設定を swaggerで行う。
# 背景
定番の、AWS S3 + APIGateway の組み合わせでプライベートwebアプリ作成中。
API Gateway部分はローカルマシンで構築できないので(AWS Outpostsというサービスもあるようですが)、フロント開発ではローカルから APIGatewayへアクセスしたい。その時に必要になるのがCORS設定。
AWSコンソールから設定する事も出来ます。ただ、API部分はswaggerで設計しているので、swaggerの中で指定したいですね。# 構成図と、今回関係する部分
![qiita_CORS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530376/b202dd82-4236-e07c-6c40-d3882acd6174.png)
この図の赤部分です。そのままだと、APIGatewayにアクセスできません。詳しくはググって欲しいですが、簡単に言うと勝手に外のサイトから引用されないようにする仕組み(だと思う)です。S3に正式にデプロイされた状態ではAPIもstaticリソース
CodeCommitへのアクセスをIPアドレスで制限
# CodeCommitへのアクセスをIPアドレスで制限したい
## IPアドレスで制限できるサービス
AWSコンソールへのアクセスも同じやり方で制限できるようです。
[AWS: 送信元 IP に基づいて AWS へのアクセスを拒否する](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html)## IAMポリシーの書き方
IAMポリシーには以下のように送信元IPアドレスでサービスを制限できる機能があります。
Actionセクションに**”codecommit:**と記載してCodeCommitへのアクセスを制限しています。“`JSON:IAMポリシー
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Deny”,
“Action”: [
“codecommit:*”
Redshiftで `EXTRACT(EPOCH FROM interval)` を使うと間違った値が返ってくる
## tl;dr
Redshift内にある2つの時刻の差を整数値で求めたいとき
PostgreSQLの文法 `EXTRACT(EPOCH FROM interval)` を使うと **エラーを吐かずに間違った値が返ってくる** ので、“`sql
SELECT
EXTRACT(EPOCH FROM end_time – start_time) interval_sec
FROM hoge
“`
ではなく、“`sql
SELECT
DATEDIFF(second, start_time, end_time)
FROM hoge
“`
を使いましょう。## 発生した現象
Googleで、Redshiftのinterval型を整数値に変換したいと思って `redshift interval to second` というクエリで検索すると、
検索上位には
> `EXTRACT(EPOCH FROM interval)` を使えという記事が[上位に出てきます](https://www.google.com/search?q=redshift+interval+t
ElasticBeanstalk Worker Tierで定期バッチの構築する
めもです。随時追記
## TODO
– エラーの時の動作
– VPC等の設定
– 監視周り## つくりたいもの
– ElasticBeanstarkのWorker Tierで定期的にメール送信するバッチ
– PlatformはDockerMultiContainer
– Cronでx分に一回送信するメールあるかチェックして送信する## ざっくり
– EBのWorkerはSQSのキューをEC2で監視してる
– キューにPublishされたら監視Jobはlocalhostの80にHTTP/POSTする
– WEBAPI作って処理すりゃいい
– HTTP/POSTの実態はApache/httpdらしいのでデフォTimeoutは5分
– 処理が長時間かかることが予想される場合は、Timeoutを延長するか,いったん200で返して、バックグラウンドで処理する
– 200返すとキューから消えるので別途ステート管理が必要
– EBはECSやらLBとか一括で設定できるアプリケーションプラットフォーム?でいいのかな## 構築
### aws-ebcliの導入
– https://docs.
AWS 勉強メモ
`投稿時期:2019/11/12`
# はじめに
AWSの勉強メモ。特にサービスは絞らず全体的に。
理解できていない部分を重点的に記載。
間違ってたらご指摘お願いします。
※正しい解釈というより、理解しやすいように簡素化して記載している部分もあります。# EC2:プレイスメントグループ
[プレイスメントグループ](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/placement-groups.html)### クラスタープレイスメントグループ
– 単一azにec2配置
– 同じ物理ラック
– ec2追加時はグループ内ec2を全て停止し起動
– 採用目的:
– 低ネットワークレイテンシー
– 高ネットワークスループット
– トラフックの大部分がグループ内のec2間で発生### パーティションプレイスメントグループ
– 単一azにec2配置
– パーティション毎に異なる物理ラック
– 採用目的:
– 分散ファイルシステム
– 異なるラック間でec2使いたいとき### パーティションプレイスメントグループ
AWSクラウドプラクティショナー学習ポイント
##はじめに
他業界の営業マンから 2019/9〜 IT業界で働かせて頂けることになりました。
その中で、AWSクラウドプラクティショナーを勉強がてら試験を受けてとなったので勉強を開始しました。
全くの未経験で50時間ほどの勉強期間で、結果874/1000点で合格できましたので、それまでの過程を今後受験される方のお役に立てばと思い共有させて頂きます。##勉強方法
1. 主にこちらの参考書を使用:
[AWS認定 クラウドプラクティショナー](https://www.amazon.co.jp/gp/product/4797397403/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4797397403&linkCode=as2&tag=ikr81-22&linkId=5385607fbd72bcab8a8e331160d7c32d)1周目:わからないワードを調べながらサクッと読んでみる。
2周目:AWSのHPと照らし合わせながら、細かい理解が足りないので
自分なりに書き出してまとめつつ読む。
AWSのすべてのサービスにReadOnly権限を与えたいときのTips
手っ取り早くアカウントへのログイン権限を与えたいけど、変更権限は一切与えたくないというときってありませんか?最小権限にすべきというのはわかっていても、一から権限ポリシーを作るのは大変です。
そんなときは、AWS管理ポリシーのReadOnlyAccessをあてておけば、とりあえず変更されることを防げます。すべてのサービスに対して読み取り権限のみがAllowされています。![コメント 2019-11-11 165832.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285150/72122c77-f593-df2f-3f76-756543f1c3d9.png)
似たようなポリシーにViewOnlyAccessという管理ポリシーもありますが、2018年10月を最後に更新が止まっているようなので、ReadOnlyAccessを使うのが無難と思われます。
[AWS] Route 53 でダイナミックDNS
# Elastic IP をケチりたい
たまにしか起動しないインスタンスに Elastic IP をアタッチするのはもったいない。といって、起動するたびにIPアドレスが変わるとホスト名でアクセスできなくて面倒くさい。
……と思ったので Route 53 でIPアドレスを自動設定してくれるスクリプトを書いた。
## 用意するもの
* 登録したい Route 53 のホストゾーンID
## ホスト名
対象のOSでホスト名を設定する。この名前が Route 53 に登録される。ドメイン名がホストゾーンIDと一致していることを確認する。
Amazon Linux 2 では次のような感じでホスト名を設定できる。
“`
hostnamectl set-hostname route53test.example.com
“`## IAMポリシー
このポリシーをアタッチしたロールを、インスタンスにアタッチする。
“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Si
Amazon Cognito に入門してみる 〜 1
全く無知なので、ちょっと調べてみました。
## 何ができる?
https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/what-is-amazon-cognito.html
### ユーザープール機能
ログインを提供する機能です。
– AWS内にユーザディレクトリ(**ユーザープール**)を作成できる機能のこと
– ユーザパスワード、メールアドレス、電話番号、カスタム属性などを格納可能 ユーザにまつわるデータベースの構築ですね
– LDAPみたいなものだと思ってます
– 上記ユーザプールを利用して認証・および認証済みをあらわすトークン(**ユーザープールトークン**)を取得できる
– ユーザーはグループにまとめることも可能
– [ソーシャルサインインを用いて、Googleなど他プロバイダからもログイン可能](https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/cognito-user-pools-configur
ブラウザベース開発環境 AWS Cloud9 EC2 の良し悪し、備忘録
#プログラミング環境構築の時間節約
プログラミングをキャッチアップする上で Amazon が買収して今は EC2 の一部になっている Cloud9 がめちゃくちゃ便利であることを知った(今気づいた私は出遅れ?)。Ruby on Rails https://railstutorial.jp/ の参考書籍に書かれていたことで初めて知った(プログラミングの勉強がきっかけなのにプログラミング自体ではない気づきも多い、他にも同じようなことってありますよね?)。上流工程や運用に携わっていて開発から離れていると知る機会がないひとも多いと思う。旧態依然の知識のままだと何かするにも時間と手間がかかるものだと実感した。ちなみに EC2 とは AWS と言ったら大方の企業では EC2 を指していることが多く、Windows, Linuxなど(の従来型オンプレサーバー)をクラウドで動かす環境。他にもメジャーなAWSのクラウドサービスとしては各種データベースサーバーがすぐに作れる RDS , ファイル置き場・データレイクとしての S3, データウェアハウスとしての Redshift が有名。元々AWS上の
AWS(Amazon Web Services)事始め
言葉だけ知ってるAWSでしたが、この度ちょっと触ってみようかなという気になったので勉強開始。
雑感としては略語が多いのでAWS関連の単語を浴びまくるのが重要かなと思います。[AWSとは](https://aws.amazon.com/jp/what-is-aws/?nc1=f_cc)
全然わからないですね。
「少しずつ強くなっていく、それがいいんだ」と世界一有名な無職も語っていたので少しずつ。## この記事の対象者
* AWSっすよねー時代は!(知らない)
* AWSなんかいいらしいよね(知らない)## 前提条件
* VPSやVirtualBoxやVagrant等で仮想環境を一通り作った事がある(推奨)## 何はなくとも公式
まずは公式チュートリアルを触ってみます。
コンセプトとしては一通り無料の範囲内で触ってメリット/デメリットの理解までとする。## 注意点
クレジットカードの登録必要。
また、自動的に課金を防ぐシステムはなさそうなので(しきい値アラートぐらい?)ちゃんと終わった後に停止させたり管理したりするのが重要っぽいです。なので無料で反応だけみた
aws サーバー ディスク容量確認
“`
[ec2-user@dev-1a ~]$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 1.9G 56K 1.9G 1% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/nvme0n1p1 40G 37G 2.5G 94% /
[ec2-user@dev-1a ~]$ sudo du -k /* | sort -rn | head -20
33235996 /var
20619868 /var/log
18140284 /var/log/mysql
6697948 /var/lib
6335368 /var/lib/mysql
5748652 /var/www
5135228 /var/lib/mysql/nanana
3674508 /var/www/nanana
3234940 /usr
1869268 /usr/share
1835776 /var/www/import
1651724 /var/log/elas
Laravel による S3 操作に必要な最小限の IAM ポリシー
## 背景
Laravel には S3 を操作できる便利なライブラリ [Flysystem](https://flysystem.thephpleague.com) が備わっており,これを使用するには [AWS IAM ポリシー](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies.html) の設定が必要です。その設定方法を解説する記事は Qiita にも数多く見られますが,ほぼ揃って「`AmazonS3FullAccess` をアタッチする」と解説してます。
しかし `AmazonS3FullAccess` の権限内容を見てみると,実に多くの権限が設定されており,その数はなんと **84 個** 。[Laravel で行う S3 操作](https://readouble.com/laravel/5.8/ja/filesystem.html) はファイル取得/保存/削除くらいなので,ここまで大きな権限が必要とは考えられません。必要以上の権限を与えることは IAM のベストプラクティスに反
ラズパイ+魚眼レンズ+KinesisVideoStreamで低コストの監視カメラ
# 前置き/要件
– コワーキングスペースを運営するにあたり、店内の防犯のため、監視カメラを設置したい。
– 店番がいなくなる時間帯が発生するため、撮影データはローカルではなく、クラウド保存にしたい。
– ケーブルを這わせるのが面倒なので、有線LANではなく無線LANで。
– なるべく低コストで。# 参考記事
– 基本はこちら。ありがとうございます。
https://qiita.com/mksamba/items/86bdd70e7d289073cdc4
ぶっちゃけ、私の記事には、gstreamerの設定とコストくらいしか、追加情報ありません。# 使用機材&サービス
– raspberryPi3 Model B+
品薄で2019/10/21現在手に入らず。2台設置する予定なので、1台はraspberryPi3 Model Bで構築
– VR 220 Camera
純正カメラだと画角が狭すぎる。死角をなるべく作らないために魚眼を選択。[製品ページ](https://products.entaniya.co.jp/ja/products/raspberry-pi/
EC2上にdocker-compose + Ruby on Rails環境を立ち上げて運用する際に参考にしたサイト【メモ】
ローカルでdocker-compose + Ruby on Rails環境を構築し、開発していたものの、一辺倒にHerokuで運用するのにも飽きたし、かといってイキナリECS運用は敷居が高いしということで、EC2上にDocker環境を構築してデプロイしてみました。
案外うまく行ったので、それに差し当たって参考にしたサイトを備忘録のためにまとめておきます。
# EC2にDockerを入れてみる
### AWSのEC2でDockerを試してみる
https://qiita.com/yumatsud/items/33bc22f7d8f640a286f4### EC2(AmazonLinux)にDocker Composeをインストールする
https://qiita.com/maruuuuu/items/7d99cd1230b649591b4f### AWS EC2 Amazon LinuxでDocker, Docker Composeをインストールする
https://qiita.com/shinespark/items/a8019b7ca99e4a30d286# gi
AmazonECRに学習済みモデルをデプロイする流れ(Docker利用)
# 学習済みモデルをデプロイ
DockerイメージのデプロイにはAmazon ECR を使う
[Amazon ECR(Docker イメージの保存と取得)| AWS](https://aws.amazon.com/jp/ecr/)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33329/f9387986-3987-6187-3fb6-84db54b911d7.png)
これを見ておくと良さそう
**Amazon ECR における Docker の基本**
https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/docker-basics.htmlDockerのセットアップが終わったら次をやる
[Amazon ECR の使用開始 – Amazon ECR](https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/ECR_GetStarted.htm