- 1. AWS-CLIコマンドでEC2のメトリクスをいろいろ取りたいときのコマンド
- 2. Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #14 (分析)
- 3. AWSコンポーネントで運用格安の要約システムを構築する
- 4. terraformでAWS RDS(Aurora)の設定を変更してないのに must be replacedになってしまう件
- 5. Developers.IO TOKYO 2019参加レポート
- 6. AWSの用語・概念について(その1)
- 7. PHP Slim 環境構築(16) ECS(EC2)+ローリングデプロイ
- 8. AWS CLIでVPCエンドポイントを作成する時のポリシー(JSON)の指定方法
- 9. IAMでサーバ証明書をインポートするCLI手順
- 10. SignalFxでAWSのモニタリングをやってみる
- 11. Aurora MySQL の Audit Log の有効化
- 12. Terraform AWS AssumeRolePolicyのコピペで使えるサンプル集
- 13. S3をstatic webserver にしてるとき、javascript がキャッシュされる問題
- 14. Amazon SageMakerで独自アルゴリズムを使ったトレーニング(学習)の作り方
- 15. AWS Certified Big Data – Specialty 合格しました
- 16. AWS EC2 + nginx + Laravel + RDS(PostgreSQL)の環境を構築する
- 17. ECSで実行中のサービス更新を試してみた
- 18. CodeBuild で Aurora スナップショットから Aurora クラスタを作る
- 19. 【circleCI】rails5.2/Capistrano/CICD環境によるAWSへの自動デプロイ
- 20. AWS CLI経由でEC2インスタンスを立ち上げる
AWS-CLIコマンドでEC2のメトリクスをいろいろ取りたいときのコマンド
# aws-cliコマンド
さくっと、EC2のインスタンスの情報をcliで取りたいときのコマンドです。
##EC2のタグについてるサーバの名前を知りたい時
“`
aws ec2 describe-instances | jq -r ‘.Reservations[] .Instances[] .Tags[]|select(.Key==”Name”)|.Value’
“`##ステータスがrunning状態のTagsがKey=Nameのをインスタンスを取得
“`
aws ec2 describe-instances –filter “Name=instance-state-name,Values=running” | jq -r ‘.Reservations[] .Instances[] .Tags[]|select(.Key==”Name”)|.Value’
“`##running状態かつ、 TagsがKey=NameのインスタンスIDとインスタンス名を取得
“`
aws ec2 describe-instances –filter “Name=instance-
Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #14 (分析)
Amazon Web Services (AWS)のサービスで正式名称や略称はともかく、読み方がわからずに困ることがよくあるのでまとめてみました。
Amazon Web Services (AWS) – Cloud Computing Services
https://aws.amazon.com/まとめルールについては下記を参考ください。
Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #1 (コンピューティング) – Qiita
https://qiita.com/kai_kou/items/a6795dbab7e707b0d1a6間違いや、こんな呼び方あるよーなどありましたらコメントお願いします!
## Analytics – 分析
### Amazon Athena
– 正式名称: Amazon Athena
– https://docs.aws.amazon.com/athena/?id=docs_gateway
– 読み方: アテナ
– 略称: なし
– 俗称: なし### Amazon CloudSe
AWSコンポーネントで運用格安の要約システムを構築する
# この記事の内容
– 要約システム(抽出型)を作った
– AWSで運用構成を構築した
– サーバーレス構成でなるべく安くした# この記事で紹介しないこと
– 要約アルゴリズムの中身
– – –
仕事先で「要約システムを作れないか?」と相談があったので、組んでみました。
仕事先はニュースサイトを運営していて、「投稿されるニュースに要約を掲載したい」というのがモチベーションです。確かに、大手新聞社のニュースサイトでも3行要約が掲載されていて、記事全文を読んでる時間がない人にはいいコンテンツです。
編集者が自分で要約を書けることに越したことはないのですが、要約の作成というのはなかなか特殊技能のようです(と、編集者から聞いた)
こういう時に自動要約というのは需要があるんでしょうね。
# で、自動要約ってどんなのがあるの?
自動要約には大きくわけて2つのタイプがあります。
まず1つ目は__文生成型__。
これは入力文書の意味をアルゴリズムが解釈して、__いい感じ__(訓練データと似た傾向が出せるように)に要約されたテキストを作成するタイプ。
深層学習が流行りだして
terraformでAWS RDS(Aurora)の設定を変更してないのに must be replacedになってしまう件
# 何に困っていたの?
– terraform applyする度にRDSがdestroy(replace)されてしまう# なぜそれで困るの?
– **databaseを飛ばすリスク大** (rds用のtfファイルだけ別ディレクトリに配置して回避してた)
– terraform applyする度に**でら長いこと待たされる(人生を削られる)**# それ困ってるの君だけじゃないの?
– No, 同じ悩みを持つ人が居ました。
– [Terraform wants to recreate cluster on every apply](https://github.com/terraform-aws-modules/terraform-aws-rds-aurora/issues/8)
– [RDS instance: Terraform insisting on destroy-recreate RDS instances although their IDs are unchanged](https://github.com/hashicorp/terraform/issues/16
Developers.IO TOKYO 2019参加レポート
先日[Developers.IO TOKYO 2019](https://dev.classmethod.jp/news/developers-io-2019-tokyo/)に参加してきました。
技術の話から、チームマネジメントの話まで非常に盛りだくさんでした。
私が参加したセッション内容をまとめます。# ハイブリッド/マルチVPC環境を構成するためのAWSネットワーク完全理解
[発表資料](https://dev.classmethod.jp/cloud/aws/developoers-io-2019-aws-hybrid-network/)## 概要
複数なVPCを合わせて使うクローズドなネットワーク環境## ポイント
複数環境の通信を適切に制御するルーティング
ネットワーク的にIPで繋がらなければ如何しようも無い## Key Component
* IGW
* VGW
* PCX## 制約
VPCをホップする通信は不可能
全てのVPC・オンプレミスを1対1で繋ぐ必要がある(フルメッシュ型)## After Transit Gateway
* ハブ型での相互
AWSの用語・概念について(その1)
##### マネージドサービス
素のままサーバを貸し出すサービスをアンマネージドサービスと呼び、ソフトウェアなどをインストールしてあらかじめ設定して貸し出すサービスを***マネージドサービス***と呼ぶ。データのバックアップや二重化のデータ保全対策を含めてサービスとして提供してくれる。マネージドサービスを利用した場合、AWSの責任分界点がOS、SWレベルまで拡張されることが多い。
アンマネージドの例は、VPC、EIP、EC2、EBSなどがある。##### クラウドサービスの可用性
SLAによる保証値は稼働率で表現されることが多い、例えば稼働率が99.9%と99.99%の場合、1ヵ月(=43,200 min)と仮定すると99.9%は432min、99.99%は43.2minとなる。##### クラウドサービスの可用性
SLAによる保証値は稼働率で表現されることが多い、例えば稼働率が99.9%と99.99%の場合、1ヵ月(=43,200 min)と仮定すると99.9%は432min、99.99%は43.2minとなる。##### 東京リージョン以外を使用する理由
以下3点
PHP Slim 環境構築(16) ECS(EC2)+ローリングデプロイ
# PHP Slim 環境構築(16) ECS(EC2)+ローリングデプロイ
## Introduction
[前回](https://qiita.com/dynamitecoolguy/items/d6aff53757ef475d7942)は、ECS(Fargate)の構築を行いました。
今回は、一つ戻って、ECS(EC2)のDeployを試してみます。この一連のシリーズは、自分への備忘録が第一目的のため、だいぶ不親切です。
申し訳ございません。## ローリングデプロイ
### 手動
手動で行う方法は、[前々回](https://qiita.com/dynamitecoolguy/items/1074132b8b082910abcf)に記載していますが、適当なec2のshell上で、docker build → docker push → task 更新 → サービス更新です (詳細は割愛)。
“`
# docker build -t hoge-repo:latest –build-arg environment=devaws -f compose/web_h
AWS CLIでVPCエンドポイントを作成する時のポリシー(JSON)の指定方法
CLIでVPCエンドポイントを作成するときに、エンドポイントポリシーのJSONをどうやって渡せばいいのかを悩んだので、そのメモ書きです。
JSONの文字列をシェルの変数に投入してあげるという解決策です。
# 実行例
“`shellAWS_PROFILE=default
POLICY=’
{
“Statement”: [
{
“Action”: “*”,
“Effect”: “Allow”,
“Resource”: “*”,
“Principal”: “*”
}
]
}’aws –profile ${AWS_PROFILE} ec2 create-vpc-endpoint \
–vpc-endpoint-type Interface \
–vpc-id vpc-f1dcfc96 \
–subnet-ids subnet-cde80585 subnet-0bf40020 subnet-742e712f \
IAMでサーバ証明書をインポートするCLI手順
ACM(AWS Certificate Manager)ではなく、IAMでサーバ証明書をインポートするときのCLI手順のメモです。
## サーバ証明書のインポート
“`shell
PROFILE=defaultaws –profile ${PROFILE} iam upload-server-certificate \
–server-certificate-name hoge.com \
–certificate-body file://hoge.com.crt \
–private-key file://hoge.com.key
“`
## インポートしたサーバ証明書の確認
“`shellaws –profile ${PROFILE} iam list-server-certificates
“`
SignalFxでAWSのモニタリングをやってみる
#SignalFxでAWSのmonitoringをやってみる
前にはほぼデフォルトでリソースの取得からdashboardの作成までやってみたので、今回はawsのデータを収集してみようかと思います。
https://qiita.com/saeoshi/items/8898c0a34d52c71906d7
Intergationの画面をみると、Cloudwatchからデータを引っ張ってくるみたいですね。
## Setup
### SignalFx用のIAMロールの作成
下記を参考に、policyを作成してロールに紐づけてください。https://docs.signalfx.com/en/latest/integrati
Aurora MySQL の Audit Log の有効化
備忘録です。
結論として、以下の作業をまとめて実施する必要があります。
## Aurora の設定
### パラメータグループの変更
audit_log を出力するためにはパラメータグループに以下のパラメータの設定が必要です。| parameter name | value |
|:—–|:—–|
| server_audit_logging | 1 |
| server_audit_logs_upload | 1 |
| server_audit_events | CONNECT, QUERY,TABLE |
| server_audit_incl_users | (特定のユーザーのログののみ出力する場合は、こちらでユーザー名を指定) |なお、 **デフォルトのパラメータグループでは設定の変更が行えない** ため、注意をしてください。(Audit Log を有効にしたい場合は、その Aurora クラスタ固有のパラメータグループを割り当てる必要があります。)
### Aurora クラスターのログ出力定義の変更
ログのエクスポート画面で「監査ログ」をチェッ
Terraform AWS AssumeRolePolicyのコピペで使えるサンプル集
#はじめに
古い書き方で恥ずかしいものの、
思い出すのに時間がかかったりするので置いておく。##Config
“`tf
data “aws_iam_policy_document” “assume_role_policy_config” {
statement {
actions = [“sts:AssumeRole”]principals {
type = “Service”
identifiers = [“config.amazonaws.com”]
}
}
}
“`##EC2
“`tf
data “aws_iam_policy_document” “assume_role_policy_ec2” {
statement {
actions = [“sts:AssumeRole”]principals {
type = “Service”
identifiers = [“ec2.amazonaws.com”]
}
}
S3をstatic webserver にしてるとき、javascript がキャッシュされる問題
## htmlから読み込んでるjsファイルが更新されない問題
### こんな場合
– S3で静的WEBホスティングしてる
– シェルコマンド(bash)使ってる
– AWS-CLI でcpコマンドしてローカルのディレクトリのファイルと同期とってる
– JSのキャッシュでブラウザからみると更新が反映されない
– さっき更新したやつだけ反映したい覚えておくこと:
> –cache-control privete(メタ情報 cache-control :privete) をつけると、キャッシュされない
no-cache,no-stroe より楽注意すること:
別の方法で上書きするとメタ情報はなくなる“`up.sh
#– /directory_name にある5分以内に更新したファイルを${copyto_s3_location}にアップロードするwhile read file `find /directory_name/ -type f -cmin -5`
doext=${file##*.}
if [ ‘js’ = “${ext}” ] ; then
Amazon SageMakerで独自アルゴリズムを使ったトレーニング(学習)の作り方
_※独自アルゴリズムを使ったエンドポイント(推論)についても投稿する予定です。_
どうも@shirakiyaです。普段はアルゴリズムソリューションを提供しているベンチャー企業にて機械学習を使ったWebアプリケーションの開発をしています。
この記事では[Amazon SageMaker](https://aws.amazon.com/jp/sagemaker/)の[トレーニング](https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/how-it-works-training.html)で任意の処理を実行しつつ学習済みモデルを得る方法に関し、
1. __全て自前でコンテナを用意してトレーニングする方法__
2. __[Amazon SageMaker コンテナ](https://github.com/aws/sagemaker-containers)を用いてトレーニングする方法__の2種類のそれぞれについて説明を行います。
## Amazon SageMakerトレーニング概要
この記事の読者にはあまり説明不要かと思いま
AWS Certified Big Data – Specialty 合格しました
先日、AWS認定ビッグデータ専門知識の試験を受験し、合格しました!
その記録を残しておきます。(2020年4月から「AWS認定データ分析 AWS Certified Data Analytics – Speciality」という名前に変わるそうです。)
(いちおう私のバックグラウンドを書きますと、AWSを触っていた期間としてはたぶん4年ぐらいありますが、アプリ開発側とプリセールス中心で、AWSを理解しているとはあまり言えない状態でした。8月後半からちゃんとAWSのいろんなサービスを触り始めたところで、本格的に業務で使いこなしているとはまだ言えない状態です。9月終わりごろにソリューションアーキテクトアソシエイトを受験して合格しました。その1か月後が今回のビッグデータです。)
# 勉強方法
データ分析に関して詳しくはないので、まずは本を読みました。以下の本です。
[ビッグデータを支える技術―刻々とデータが脈打つ自動化の世界 (WEB+DB PRESS plus)](https://www.amazon.co.jp/dp/4774192252/)
AWSの内容ではなく、ビッグデ
AWS EC2 + nginx + Laravel + RDS(PostgreSQL)の環境を構築する
## 本記事の対象者
– AWS上でLaravel + PostgreSQLを動かしてみたい人
– ついでにnginxに少し触れてみたい人## 全体の流れ
1. EC2インスタンスを作成してSSH接続する
2. nginxをインストールして起動する
3. PHPをインストールしてphpinfoを表示する
4. Composerをインストールする
5. Laravelのウェルカムページを表示する
6. RDS(PostgreSQL)を作成する
7. EC2からpsqlでRDSに接続する
8. DBのマイグレーションを行う
9. Laravelのログイン機能でDBとの接続を確認する
10. トラブルシューティング
11. 補足## 環境
– Amazon Linux 2
– nginx 1.12
– php7.3
– Laravel 6.4.1
– PostgreSQL 9.6## 1. EC2インスタンスを作成してSSH接続する
以下のEC2インスタンスを作成します。
– AMI : Amazon Linux 2 AMI (64 ビット x86)
– インスタンスタ
ECSで実行中のサービス更新を試してみた
# はじめに
この記事はコンテナ勉強用として試したことまとめたものです。
今回はECSで実行中のサービス更新を試してみました。# 「新しいデプロイの強制」設定を使う
Lambdaで一時的に起動数を増やして、古いタスクをソートして削除、起動数を戻す。といった方法でコンテナを入れ替えていましたが、ECSのサービス更新に「新しいデプロイの強制」というものがあったのでこちらを使用して新しいコンテナに入れ替えるようにできるのでは。ということで検証してみました。# ECSサービスを起動
* 2つのタスクが正常に稼働しているのでこれらを新しいコンテナに入れ替える。
* 作成された時刻を確認しておく。
CodeBuild で Aurora スナップショットから Aurora クラスタを作るRDS Aurora では、他と異なり「クラスタ」というのがあるため、awscliのコマンドのパラメータや実行順序が面倒なことになってます。しかもAWSマネジメントコンソールでぽちぽちやるのとも挙動が異なるので、いっそう面倒です。
awscliでの実行手順は、
* Aurora クラスタ削除は、クラスタのインスタンスを全部削除の完了を待って、クラスタを削除
* Aurora クラスタ作成は、クラスタ作成して、クラスタのインスタンス作成完了を待つわりと時間もかかるので、AWSマネジメントコンソールでちまちまやるのもダルいです。CodeBuildにやらせます。
# buildspec.yml
* variables の変数と値をよしなに設定して使ってください。
* `$SOURCE_DB_CLUSTER_NAME` の RDS Aurora のデイリーバックアップスナップショットの最新を 使って、 RDS クラスタ&インスタンスをつくります。
* 復元先のクラスタ&インスタンスが存在してたら、まず削除して、それから復元します。
* `$RDS_CLUSTER_NAME`
【circleCI】rails5.2/Capistrano/CICD環境によるAWSへの自動デプロイ
## 概要
railsでアプリ作って、capistranoでAWSに自動デプロイして、circleCIでgithubへのpushごとにテストコードを走らせるようにしました。
ここまできたらやるっきゃないっしょ!ってことでcircleCIによるCD環境も構築してみました。## 前回記事
この記事の続きです。事前に読んどいてね。
[RailsにcircleCIを構築し、githubと連携してrubocopとrspecテストを走らせる](https://qiita.com/AK4747471/items/b2161784065f21cd1645)## 前提条件
・Rails5.2
・capistranoを使った自動デプロイを構築できている
・circleCIとgithubを連携させて自動テストまでは実装できているcircleCIのセッティングについては他フレームワークでも共通概念として使えたりしますが、Rails5.1(だったかな?)以降ではmaster.keyを使ったcredentials系の概念が絡んできたりするので一応Railsを前提条件に加えときました。
## 参考
AWS CLI経由でEC2インスタンスを立ち上げる
# 手順
順に実行していくコマンドは以下の通り
1. AWS CLIの準備
2. AWS ACCESS KEY IDとAWS SECRET ACCESS KEYの取得
3. キーペアの作成
4. セキュリティグループの作成
5. EC2の起動
6. EIPの取得と紐付け
7. ssh接続# 1. AWS CLIの準備
pipでインストールする。“`
$ pip3 install awscli –upgrade —-user
“`
[公式の説明](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html)によるとOSで使用するライブラリの変更を避けるために、–userオプションをつけ、
ユーザーディレクトリのサブディレクトリにプログラムをインストールすることを推奨しているらしい。
注意点として、上記サブディレクトリにパスが通っているか要確認。(該当するならpipのエラー文に詳細有)
おそらく以下のようなパスを通せば良い。
`/Users/username/.local/bi