- 1. Amazon Transcribeで音声の文字起こしを行う。
- 2. [AWS][CDK] アプリケーションとインフラを一挙にコーディングできちゃうフレームワークがあるらしい
- 3. AWS CLIでput-bucket-notification-configurationするときにjqで既存の設定と追加差分を上手いことマージする
- 4. logstash-input-s3-sns-sqsプラグインを試してみた!
- 5. Vertias CloudPoint(AWS スナップショット管理)マーケットプレイスから導入してみた
- 6. aws s3にローカルファイルをsync使わずcpで一気にアップロード
- 7. [Swift] AWS Amplify Rekognitionを使って顔認識させる
- 8. EKSのManaged Worker NodeのUpdateの挙動を確認する
- 9. ALB or ACLで特定IPのブロック
- 10. 【AWS】EKS on Fargateでゲームをデプロイしてみたので解説してみる(with Ingress Controller, 2048)vol.1
- 11. AWS CLI
- 12. Ansibleがメチャクチャ便利だった
- 13. Route53 + CloudFront + S3で静的サイトを公開する
- 14. 本番環境でbackground-imageが反映されない時の解決法
- 15. 他のメンバーがデプロイしたアプリのサーバーを本番環境で立ち上げようとすると、エラーが起こる時の解決方法。
- 16. EKS Workshopでクラスターを作成するまでのまとめ
- 17. AWSでSpringBootベースのWebアプリを起動してみる(Docker on EC2編/ECS+Fargate編)
- 18. LaravelをDeployerでデプロイする流れ
- 19. AWSについて無知だったので少し調べた
- 20. IAMユーザが「請求情報とコスト管理ダッシュボード」にアクセスするための設定
Amazon Transcribeで音声の文字起こしを行う。
# はじめに
AWSチュートリアルにAmazon Transcribeを使ったチュートリアル「[音声を文字起こしする](https://aws.amazon.com/jp/getting-started/tutorials/create-audio-transcript-transcribe/)」というのを見つけたので、これをaws-cliで試してみました。# 準備
まずは文字起こしをする音声ファイルの置き場所となるバケットを作成します。“`bash:S3バケットの作成
$ aws s3 mb s3://trnsrb-test
make_bucket: trnsrb-test
“`作成したら、そのバケットへ音声ファイルをアップロードします。
今回はチュートリアルにある[サンプル音声](https://d1.awsstatic.com/tmt/create-audio-transcript-transcribe/transcribe-sample.5fc2109bb28268d10fbc677e64b7e59256783d3c.mp3)を使いたいと思います。“`ba
[AWS][CDK] アプリケーションとインフラを一挙にコーディングできちゃうフレームワークがあるらしい
※この記事は販促的要素を含みます
AWSには[AWS CDK(Cloud Development Kit)](https://aws.amazon.com/jp/cdk/)と呼ばれるフレームワークが存在します。
これを使うことで、インフラまで含めた一気通貫の開発が非常にやりやすくなりました。これまでもIaCツールは存在していましたが、このCDKはよりプログラマティックにインフラを扱うことに長けています(プログラミング言語でインフラを記述するわけですから当然ちゃ当然ですが…)。
イケてる技術者になりたいならキャッチアップ必須(偏見)だと、個人的には感じています。特に、最近よく耳する「サーバーレス」はCDKとの相性が良いように思います。今AWSを使ってサーバーレス開発を勉強するなら、Serverless FrameworkではなくCDKを使ったほうが良いのではないかとすら思います。
この記事では CDK のステキなところをザクッと紹介しつつ、自サークルの同人誌の販促をしていきます。
## CDK のよさ
### 利点1: 言語とエディタによる型のサポートが超強力
※Typ
AWS CLIでput-bucket-notification-configurationするときにjqで既存の設定と追加差分を上手いことマージする
# 概要
CLIでの`put-bucket-notification-configuration`について、差分でのputを実施。
(もう少し汎用化できるようにも思うが、自分用としては`notification-configuration`で対象を特定する形で良しとする。)# やりたいこと
– aws cliベースで作業手順を作成している
– S3へLambdaを発火させるイベントを追加するため、s3apiの`put-bucket-notification-configuration`を使用した
– putなので既に存在していた設定が上書きされてしまった
– 差分ベースの手順作成が難しい
– 元の設定消えるので普通に事故
– **CLIだけで上手いこと差分をマージしたい!**# やったこと
– `–notification-configuration`オプションで特定の設定だけを更新するようにした。
– ここでは`LambdaFunctionConfigurations`
– jqを使って上手いことマージした。# 必要なもの
– jq
logstash-input-s3-sns-sqsプラグインを試してみた!
## はじめに
これまでAWS環境の様々なログをS3バケットに溜めて、Logstashの**[S3 input plugin][00]**を使ってログを取り込み
ログを加工後に、Amazon Elasticsearch Service (以降、Amazon ES)に出力していました。S3 input pluginには、Logstashのインスタンスの性能が足りなくなった場合に
スケールアウト構成が取れないという課題を抱えていました。同じ設定のLogstashインスタンスを並列化しても同じログをS3から取得してしまい
Elasticsearchに無駄な負荷をかけてしまうという結果になってしまいました。**【S3 input pluginのアーキテクチャ】**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211371/6e017d62-77f4-bf74-fd8f-e0adb597359e.png)そこで**[logstash-input-s3-sns-sqs][01]**
Vertias CloudPoint(AWS スナップショット管理)マーケットプレイスから導入してみた
#はじめに
今回は、Vertias CloudPointをAWSマーケットプレイスから導入する手順を紹介します。
1時間ほどで、動作確認が可能ですので、ぜひお試しください。![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452113/7c400078-364e-7b20-ade9-4560c4fa94f9.png)
↑ Veritas CloudPointは、クラウドとストレージのスナップショット管理する製品です。製品の機能紹介(ファイル単位のリストア、EC2インスタンス内のアプリ整合性、個人情報タグ付け…など)や、AWS Backupとの比較は、別の記事にゆずることにします。
では、さっそく、AWSマーケットプレイスからの導入手順を紹介していきましょう!!
1. マーケットプレイスから導入
2. CloudPointサーバインスタンスの設定確認
3. Auto Scalingの設定確認とヘルスチェックの一時停止
4. CloudPoint WEBコンソール接続
5.
aws s3にローカルファイルをsync使わずcpで一気にアップロード
s3にデータを一気にバックアップする際、 `sync` を使おうと思ったけど `cp` サクッと一気にアップロードしたかったので、その方法メモ。
“`bash
$ IFS_bak=$IFS # スペース入りのファイル名などある場合、改行をしないようにする
$ IFS=$’\n’
$ for x in `ls` ; do aws s3 cp “$x” s3://バケット名//パス名/パス名/ –profile=プロファイル名; done
“`
[Swift] AWS Amplify Rekognitionを使って顔認識させる
# 前置き
以前、GoogleのFirebaseを使用して
「[[Swift]Firebase MLKitを使って動画の顔認識をさせる](https://qiita.com/H_Crane/items/337c94ff506f5a10ede8)」
のようなことを行ってみました。今回はAWSで提供されている「**AWS Rekognition**」を使用して、同じようなことができるのでは、と思い試してみました。
## AWS Rekognitionとは?
公式サイトのデモから
![スクリーンショット 2020-03-08 16.36.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/175242/9ca9a61f-3333-d769-3218-bbb0e8c78ca2.png “公式サイトのデモ画像”)
> Amazon Rekognition では、機械学習の専門知識を必要とせずに、実績のある高度にスケーラブルなっ深層学習テクノロジーを使用して、アプリケーションに画像およびビデオ分析を
EKSのManaged Worker NodeのUpdateの挙動を確認する
# はじめに
これはEKSのManaged Worker Nodeのアップデートの挙動を確認する記事です。Managed Worker Node自体のドキュメントはこちらです
https://aws.amazon.com/jp/about-aws/whats-new/2019/11/amazon-eks-adds-support-for-provisioning-and-managing-kubernetes-worker-nodes/
https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/managed-node-groups.html# 前提条件
Managed Worker Node自体は現時点でAMIを指定して作成することはできません。
つまり、その次点での最新AMIが自動的に選択されるため、アップデートの挙動確認はすぐにはできません。今回検証する環境は予め別の検証目的で作っていたものです。
たまたまAMIの更新が降ってきたので、アップデート検証記事を書くことにしました。# アップデート前の状態
## EK
ALB or ACLで特定IPのブロック
# なにこれ?
AWS上で稼働するWEBサービスへ特定のIPからのアクセスを遮断したい。
調べたことをメモとして記事にします。# どうする?
選択肢としては– ALBで特定のIPからのアクセスの場合は固定レスポンスを返す
– ネットワークACLでVPCに来たらその先に通さずにブロックする## ALB編
### やること
1. アクセスをブロックしたいALBのルールを開く
2. 送信元IPが特定IPだった場合に固定レスポンスを返す設定を追加
![alb.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/142518/2af18f57-7a4b-b923-57b7-30925e42f521.png)### 注意点
ALBは上から順番に評価されるので、攻撃ブロック時の設定は必ず1番目に設定しましょう
## ネットワーク ACL編
VPCの設定で特定IPを拒否することも出来る
ここで拒否をすると宛先サーバが見つからなかったと表示される
ACLでブロックされると↓のような画面が表示され
【AWS】EKS on Fargateでゲームをデプロイしてみたので解説してみる(with Ingress Controller, 2048)vol.1
# はじめに
[AWS re:Invent 2019](http://reinvent.awseventsjapan.com)にて`EKS on Fargate`が発表されました。
もう3ヶ月くらい前ですが。。その`EKS on Fargate`を使ってみましたので、使い方とその解説をしてみようと思います。(タイトル通り)
また、操作画面のスクショを貼っているのですが、
記事が非常に長くなってしまうため、一部折りたたんでいます。想像以上に作成に時間がかかってしまい、2部作で展開します。
完全に私の力不足です。。## EKSとは
[AWS公式](https://aws.amazon.com/jp/eks/features/)より
> Amazon Elastic Kubernetes Service
> AWSでKubernetesを簡単に実行できるマネージド型のKubernetesサービスです。
`Kubernetes`をよしなに管理してくれるサービスです。(雑)
`
AWS CLI
– AWS CLI
– コンフィグ“`
# aws configure
AWS Access Key ID [None]: アクセスキー
AWS Secret Access Key [None]: シークレットアクセスキー
Default region name [None]: ap-northeast-1 <- (東京) Default output format [None]: json ``` - EC2 - 起動 - 開始 ``` aws ec2 start-instances --instance-ids "インスタンスID" ``` - インスタンス開始待ち ``` aws ec2 wait instance-running --instance-ids "インスタンスID" ``` - 停止 ``` aws ec2 stop-instances --instance-ids "インスタンスID" ``` - 状態確認 ``` aws ec2 describe-instance-status --instanc
Ansibleがメチャクチャ便利だった
## 初めて触るAnsible
複数のAWS EC2にOS初期設定を行う。お約束のことなので、できるだけ自動化したい。
AWSマネジメントコンソールにて複数のサーバを用意する必要があったので
構成管理ツールのAnsibleを使った。## 手順
1. EC2セットアップ
2. pythonをインストール
3. awscliをインストール
4. ansibleをインストール
5. 初期設定ファイルを取得
6. 再起動## EC2セットアップ
AWSマネジメントコンソールにてEC2をセットアップする。用意する際にAMIを指定するようにする。
バージョン等がずれると再度インストールしなおしになるためAMIで確認することをお勧めします。今回はRHELをインストールしたかったので下記の方法でAMIを取得した
http://blog.serverworks.co.jp/tech/2019/06/18/post-71160/## sshで接続できることを確認
EC2を構築する際にキーペアが発行される、
もしくは既存のキーペアを使ってssh接続できることを確認します。## p
Route53 + CloudFront + S3で静的サイトを公開する
https://qiita.com/buta/items/06a7e147d865fb862783
CloudFront + S3 で静的サイトを運用する際の注意点
https://qiita.com/ooxif/items/d28b7caf72bf5290588c
構成による違いについて、後で確認する# 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176264/af67f3f8-ed9e-b486-7330-2677d5e36ce1.png)
# S3
バケットを作成し、静的サイトホスティングを行う。
# CloudFront
– Alternate Domain Namesは指定しない(Route53でドメイン指定する為
– Restrict Bucket Access: yesにチェック。(Yes: S3
本番環境でbackground-imageが反映されない時の解決法
##本番環境でbackground-imageが反映されない。
これで詰まる人が多そうなので、共有します。
ググると、
background-image: url(***.jpg);でうまくいくよ。
とか、拡張子jpgをpngに変えろとか言う記事がありますが、正しくは、
“`
background-image: image-url(“***.jpg”);
“`
です!これで、本番環境でもCSSが反映されます。
他のメンバーがデプロイしたアプリのサーバーを本番環境で立ち上げようとすると、エラーが起こる時の解決方法。
###結論としては、本番環境の設定ファイルに直接、「master.key」を書き込んだら解決できました!
具体的には、configディレクトリ直下にmaster.keyファイルを作り、その中に、デプロイした人からマスターキーの暗号を教えてもらい、コピペする。これでデプロイした以外の人でも本番環境でサーバーを立ち上げられるようになります!
EKS Workshopでクラスターを作成するまでのまとめ
##EKS Workshop始めるまでの一苦労を解消したい
![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/415280/43c1425a-e68d-3787-c70e-cf1e3cc64cf9.png)
– EKSは個人でお試しするにはリソースの費用がかかって怖いですよね。なので、EKS Workshopを試そうと思ってクラスターを構築しても、最後にはクラスターを削除することになると思います。
– そうするとクラスター作るので20〜30分かかるし、なによりEKS Workshopを続きからやりたいなって時に、またEKS Workshopを最初から見てクラスター構築して、となってクラスターを構築したことで満足して今日は終了!ってなってしまいなかなか先に進みません、、、## そこで、クラスター構築の手順をまとめました
– 毎回EKS Workshopを見ながらやっていくのは大変なのでまとめました
– 何よりEKS Workshopは英語だしブラウザで日本語翻訳しても次のページに移動すると
AWSでSpringBootベースのWebアプリを起動してみる(Docker on EC2編/ECS+Fargate編)
TomcatなコンテナでWebアプリを動かすのもいいけど、お手軽にSpringBootでビルドしたjarをコンテナ化して動かしてみようの巻(SpringBootが手軽かどうかは意見が分かれそうだが)。
前提知識としては、
[AWSのアカウント作った直後の状態からECS+FargateでTomcatのDockerコンテナを起動する](https://qiita.com/neruneruo/items/82c9daf90d5782f150d2)
[Docker初心者が「なんとなく理解した」レベルになるまでの記事まとめ](https://qiita.com/neruneruo/items/d900d712c76da4fee742)
あたりで、EC2上に環境整えていて、Dockerのコマンド群をなんとなく理解していること。# 元ネタ
一からSpringBootなアプリを作って試してみるのも一興ではあるものの、コンテナ化されていないアプリケーションをコンテナ化する方が面白いと思って元ネタを探す。[シンプルなSpring Boot アプリをAWS Code シリーズを利用して自動デプロイ
LaravelをDeployerでデプロイする流れ
LaravelをDeployerでデプロイしてみた。
“`
$ composer require deployer/deployer –dev
“`
“`
$ vendor/bin/dep
“`
“`
$ php vendor/bin/dep init
“`
“`
Please select your project type [Common]:
[0 ] Common
[1 ] Laravel
[2 ] Symfony
[3 ] Yii
[4 ] Yii2 Basic App
[5 ] Yii2 Advanced App
[6 ] Zend Framework
[7 ] CakePHP
[8 ] CodeIgniter
[9 ] Drupal
[10] TYPO3
“`今回はLaravelなので、1を選択。
すると deploy.php という設定ファイルが作成される今回は以下のように書いた。なお、ymlファイルはステージング環境と本番環境を分けていなくて、
本番環境しかないので、作成していない。“`php
AWSについて無知だったので少し調べた
AWSについて無知だったので少し調べた
# AWSについて
Amazonが運営するクラウドコンピューティングサービス
クラウドコンピューティングサービスとは、サーバーやネットワークなどをインターネット経由で貸してくれるサービス
AWSではstorage、DB、コンピューティングなどの様々なサービスを提供しているため、AWSのみであらゆるアプリケーションやインフラを実現することができる。多岐に渡るサービスによりこれまではバラバラの事業者に借りなければならなかったインフラを、全部AWSで行うことができる点が特徴。## クラウドとは
クラウドとは「いつでもインターネットを介してアクセスできる環境」のことを指す。### クラウドコンピューティング
クラウド上に準備されたサーバーやネットワークなどのインフラ一式をクラウド上で提供されたサービスや、利用することをクラウドコンピューティングと呼ぶ。### 「オンプレミス」と「クラウド」
#### オンプレミス(on-Premises)
自社などでサーバーを準備することを言う。データセンターにサーバーを置いていてもオンプレミス。#
IAMユーザが「請求情報とコスト管理ダッシュボード」にアクセスするための設定
公式手順を参考にまとめました。
#公式
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/tutorial_billing.html#課題
デフォルト設定のままだと、IAMユーザでBillingにアクセスしても「請求情報とコスト管理ダッシュボード」が表示されません。
![請求ダッシュボードエラー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599093/370e3417-6e82-6a92-b1ee-debb349d3798.png)以下の手順を行うと、IAMユーザで「請求情報とコスト管理ダッシュボード」を表示できるようになります。
#IAMユーザの有効化
1. AWSアカウントでログイン
2. 「マイアカウント」を選択
![マイアカウント.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599093/9c44770c-5be5-b13c-50b5-