AWS関連のことを調べてみた2020年01月24日

AWS関連のことを調べてみた2020年01月24日

【クラウド初心者向け】営業時間の判断

# 概要
– Amazon Connectにあるオペレーション時間では休日判断等ができないためLambda(ラムダ)を利用して休日を判断できるようにします。
– 基本の考え方等は『[[Amazon Connect] オペレーション時間の設定ファイルをS3に置くだけで制御する](https://dev.classmethod.jp/cloud/aws/amazon-connect-operation-time-setting/)』をもとにしています。

## 使用ユーザー
– IAMユーザー

## 手順

### 営業時間テキストファイルの作成とバケットへのアップロード

1. 営業時間と祝日を登録したテキストファイル(以下、operation-time.txt)を用意します。

“`text:operation-time.txt
月,09:00,17:00
火,09:00,17:00
水,09:00,17:00
木,09:00,18:00
金,09:00,17:00

1/1 #元旦
1/2 #銀行休業日
1/3 #銀行休業日
1/14 #成人の日

2/

元記事を表示

画像から人物の性別、年齢を推測するLine botを作ってみた

# 概要

lineを使って、送信した画像から
性別、年齢予想、表情分析を実施するbotを作成しました。

こんな感じ
スクリーンショット 2020-01-23 22.38.40.png
スクリーンショット 2020-01-23 22.40.02.png

画像を送ると、分析した結果が返ってくる(3人まで同時に写っててOK)

ソースコードは[こちら](https://github.com/vesono/photo_recog_line_b

元記事を表示

Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #24 (SDK とツールキット)

Amazon Web Services (AWS)のサービスで正式名称や略称はともかく、読み方がわからずに困ることがよくあるのでまとめてみました。

Amazon Web Services (AWS) – Cloud Computing Services
https://aws.amazon.com/

全サービスを並べたチートシートもあるよ!

Amazon Web Services (AWS)サービスの正式名称・略称・読み方チートシート – Qiita
https://qiita.com/kai_kou/items/cb29d261c8acc49fd22a

まとめルールについては下記を参考ください。

Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #1 (コンピューティング) – Qiita
https://qiita.com/kai_kou/items/a6795dbab7e707b0d1a6

間違いや、こんな呼び方あるよーなどありましたらコメントお願いします!

## SDKs & Toolkits – SDK とツールキッ

元記事を表示

LocalStack で AWS CLI の練習をする

[LocalStack](https://github.com/localstack/localstack) とは、AWS のリソースのモックをローカルに作成するツール。
LocalStack は AWS CLI の練習をするのに最適なのではと思い立ち実験してみた。

## 前提

– Docker がインストールされていること
– Python 3 がインストールされていること
– AWS CLI がインストールされていること(← awscli-local を使用するなら必要ないかもしれない)

## LocalStack のコンテナ作成

LocalStack の Docker イメージを使用することでコマンド1発で LocalStack 環境が出来上がる。

“`bash
docker run -itd –rm -p 4567-4597:4567-4597 -p 8080:8080 localstack/localstack:latest
“`

**※ docker run のオプションの説明**

– `-itd` : `-i -t -d` の略。ざっくり言うと「バ

元記事を表示

新しめの設定をいれた AWS Billing and Cost Management 総まとめ

# 1. はじめに
* 私が現在行っている AWS Billing and Cost Management 設定がかなりレガシーなものになっているので、新しめの設定へ移行する。
* AWS Billing and Cost Management 設定やること/やらないことリストをアップデートする。
* 設定を CloudFormation, Terraform 化できるところは作成する。

# 2. やること/やらないことリスト
## 2.1. やることリスト
* アカウントの請求情報の表示を IAM ユーザーに許可
* 手動で設定する。(要ルートユーザー)

* Cost Explorer 有効化と設定
* 手動で設定する。

* コスト配分タグをアクティブ化
* 手動で設定する。

* 電子メールで PDF 版請求書を受け取る設定
* 手動で設定する。

* Budgets 作成
* 従来の「請求書アラート」設定は止めて、こちらを使う。
* Terraform で設定する。

* Cost & Usage Reports 作成
* 従来の「AWSの請求明細レポート(D

元記事を表示

DjangoアプリをDocker上に構築しAWS Fargateにデプロイする

#はじめに
AI、機械学習やビッグデータ解析などでPythonが注目されています。
Pythonを用いたウェブアプリケーションが今後増加することが予測される中、PythonのフレームワークであるDjangoを用いてアプリを作成し、AWS Fargateにコンテナでデプロイをするまでの一連の流れを今後投稿していきます。

所属しているFintechスタートアップでの開発経験からDjango+Docker+AWS Fargateの構成は
1)学習コストが低い
2)共同開発しやすい
3)スケールしやすい
という特徴があり、個人やスタートアップによるwebアプリケーション開発のベストプラクティスであると考えています。

項目毎に細切れに投稿していくので詳細については各投稿を参照してください。
日々記事を投稿しそのリンクを本ページに追加していくので、本ページは目次として使ってください。

#目次

1.なぜ今、Pythonなのか
2.Djangoについて
3.Dockerについて
 (1)[DockerでHello,World](https://qiita.com/keita_gawahar

元記事を表示

AWS関連

– [EIPとEC2はアカウントが異なっても利用できるのかどうか](#EIPとEC2はアカウントが異なっても利用できるのかどうか)
– [ALBを使って301リダイレクトができる。SSL証明書設定がAWSだけで完結する件](#ALBを使って301リダイレクトができる。SSL証明書設定がAWSだけで完結する件)
– [AWS図,クラウドサービス利用図](#AWS図,クラウドサービス利用図)
– [AWS_Direct_Connectの使用状況確認](#AWS_Direct_Connectの使用状況確認)
– [Amazon_Connect_SalesForce](#Amazon_Connect_SalesForce)
– [Radius_監視+AWS_DLM](#Radius_監視+AWS_DLM)
– [AWS_サポートチャットシステム_appsync](#AWS_サポートチャットシステム_appsync)

#EIPとEC2はアカウントが異なっても利用できるのかどうか
###EIPとEC2は分けれるのか?
EIPを管理するアカウントと、EC2が動作しているアカウントを分ける必要ができ

元記事を表示

【AWS】S3へのデータアップロード

“`
aws s3 cp uploadFileName s3://bucketName/
“`

▼403になったらアクセス権限を確認
https://aws.amazon.com/jp/premiumsupport/knowledge-center/s3-troubleshoot-403/

・private
・public-read
・public-read-write
・authenticated-read
・bucket-owner-read
・bucket-owner-full-control
・log-delivery-write

“`
aws s3 cp uploadFileName s3://bucketName/ –acl public-read
“`

ただし、public-readにすると全世界からアクセス可能になるので注意

元記事を表示

flaws.cloudに挑戦してみた

#はじめに
 先日、[大和セキュリティ勉強会](https://yamatosecurity.connpass.com/)に参加してきまして、とても勉強になったので備忘録程度に記事を書こうと思います。今回やったのは、[flaws.cloud](http://flaws.cloud)というサイトです。ctf形式でAWSにおけるハッキングトピックを学べるサイトになっています。level1からlevel6までの計6問で構成されています。詳しいwrite upはもっと偉大な方々が書かれているので適度な感じに書いていこうと思います。解き方もそこで教えてもらった解き方で書かせてもらいます。

#事前準備
今回はawsに関する問題なのでawscliを使用します。そのため[こちら](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html)でawscliのインストールと初期設定をしてください。
※regionはすべてのクレデンシャルで’us-west-2’で設定してください。

#level1
 flaw

元記事を表示

terraformで単一アカウントのECRを複数アカウントでアクセスさせる

# overview

複数アカウントが前提なAWSで、個人的にはECRは一つのアカウントに集約したほうが管理しやすいです。

その集約したECRに対して、各アカウントに権限を与えるような設定を施します。

# コード

#### tree

“`sh
$ tree ecr/
ecr/
├── main.tf
└── variables.tf
“`

#### variables.tf

“`hcl
variable “ecr_repositories” {
type = list(string)

default = [
“hoge”, // https://github.com/xxxxx/hoge
“fuga”, // https://github.com/xxxxx/fuga
]
}
“`

#### main.tf

“`hcl
/* ECRは1箇所に集約したほうが管理しやすいので、operationアカウントのみに作成します */
resource “aws_ecr_repository” “this” {
# countでやると、

元記事を表示

[WIP]ArgoでCIパイプラインを構築する

# 実現したいこと
argo workflowを使ってCIパイプラインを構築する
対象はGithubプライベートリポジトリ(内容は[前回](https://qiita.com/Static_Novice/items/39362f445be66474b596)と同じ)

# 環境
– Golang 1.13.5
– Docker 18
– AWS 東京リージョン

argoはAWS EKSクラスターに配置
イメージのプッシュ先は同アカウント内ECR

# やったこと
### Argoの導入
基本的には [Argo公式ドキュメント](https://argoproj.github.io/docs/argo/readme.html)に沿って進める

前提としてEKSにCI用クラスタ `ci-cluster` を作成しておく

“`bash
# namespaceの作成
kubectl create ns argo

# install.yamlをダウンロードしてargo namespaceにapply
kubectl apply -n argo -f https://raw.githubu

元記事を表示

MediaLiveで出力したアーカイブファイルをMP4に自動変換する

#はじめに
MediaLiveでライブ配信を行う際、アーカイブを残しておくことがあるかと思います。
2020年1月現在では、MediaLiveのアーカイブ出力はtsファイル形式のみ対応しています。

tsファイルはVLCなどの動画プレイヤーを使わないと再生することができないため、
利用しやすいmp4ファイルに変換する必要があるという機会に何度か遭遇しました。

そのときに構築した自動でmp4に変換する仕組みを簡単に記載しておきます。

##ざっくり構成図

MediaLive -> S3 -> Lambda -> MediaConvert -> S3
Qiita用の構成図.png

##MediaLive
Output Groupで「Archive」を選択します。

##S3
tsファイルを置くフォルダと
mp4フ

元記事を表示

RedshiftでGRANTする時に地味なハマり方したときのメモ

## 前提

Redshiftで、あるスキーマテーブルを特定のユーザにSELECT権限を付与したかったが、なかなか上手く進まずハマったのでメモ。

## TL;DR

RedshiftでGRANTするときには、SELECT権限だけじゃなく、スキーマに対して`GRANT USAGE`も必要です。

## 実行すべきコマンド

adminでRedshiftに入り、下記のクエリを実行する。

“`.sql
GRANT USAGE ON SCHEMA <権限付与したいスキーマ名> TO <権限付与したいユーザ名>;
GRANT SELECT ON ALL TABLES IN SCHEMA <権限付与したいスキーマ名> TO <権限付与したいユーザ名>;

元記事を表示

実践Terraformを読んで学びになったことと読了前に早めに知っておきたかったこと

[実践Terraform AWSにおけるシステム設計とベストプラクティス](https://nextpublishing.jp/book/10983.html)のコードを写経して学びになったことをざっくりまとめてみました。
あと読了する前に知っておきたかったなということがあったのでそれも書いてみました。
参考になれば幸いです。

※TerraformもAWSもGet Startedやチュートリアルに載っていそうな基本も学べたのですがそれらは省いています。

## Terraformについて学びになったこと

### Terraformのインストール方法と各方法に対する所感

方法は3つありました。

* Terraformをそのままインストール→簡単
* tfenvを使ってインストール→複数人で開発するときに適している
* .terraformversionファイルをリポジトリに含めるとチームメンバーが「tfenvinstall」コマンドを実行するだけで、バージョンを統一できる。
* DockernizedTerraform(terraformがインストールされたコンテナ)を使う→

元記事を表示

【Rails】 Heroku, Aws で詰まったときに見る記事まとめ

## Heroku

#### db

[heroku上のDBをリセットする](https://qiita.com/G-awa/items/792b7cd60205823f7ac0)

“`
heroku pg:reset DATABASE_URL
heroku run rake db:migrate
or
heroku run rake db:seed
“`

[【Rails】Heroku上でApplication Error(H10 App crashed)【PostgreSQL】](https://qiita.com/totto357/items/1a6b88db8d2775540e1b)

“`
group :production do
gem ‘pg’, ‘0.20.0’
end
“`

###### メモ
“`heroku run rails c“`でheroku上のdbの中身を確認できる。
“`heroku run rails db:migrate:status“`でdbの状態を見れる。
“`heroku logs -t“`で詳しいエラー内容を見れ

元記事を表示

【AWS】EC2でphpMyAdminを利用し、RDSへアクセス

# phpMyAdminをインストールする

## ①必要な依存ファイルをインストール

“`
sudo yum update
sudo yum install httpd
sudo yum install php70-mbstring.x86_64 php70-zip.x86_64 -y
“`
### phpの最新バージョン(7.2)をインストール
最新のphpやPythonは下記のコマンドでインストールする必要が有る
インストールできるモジュール一覧とインストールするphp7.2についての情報を確認する。

“`
amazon-linux-extras
amazon-linux-extras info php7.2
“`

php7.2をインストールする

“`
sudo amazon-linux-extras install php7.2
“`

### インストールされたバージョンを確認する。
“`
sudo yum list installed | grep httpd
sudo yum list installed | grep php
“`

## ②ap

元記事を表示

Node.jsとDynamoDBで日時データの処理

#DynamoDBに日時データを持たせる2つの方法

1. データ型を`String`にして`2016-02-15`や`2015-12-21T17:42:34Z`のように文字列で持たせる。
2. データ型を`Number`にして`1579740176030`のように数値で持たせる。

2.項のNumber型の実用例としては、エポック時間 (1970 年 1 月 1 日の 00:00:00 UTC 以降の秒数) を利用することができる。([UNIXTIMEの詳細](https://ja.wikipedia.org/wiki/UNIX%E6%99%82%E9%96%93))

#Node.jsでエポック時間を扱う
##現在の日時をDateオブジェクトで取得する
“`javascript
const date = new Date();
console.log(date); // 2020-01-23T01:09:41.444Z
console.log(typeof date); // ‘object’
“`

##現在の日時をエポック時間で取得する
“`javascript

元記事を表示

RDSとIAMでパスワードレス認証(Python)

MySQLのパスワードベタ書きしないでよくなります
{}内は適宜置き換えてね

# 1. ユーザ作成

“`bash
CREATE USER ‘{MySQLユーザ名}’@’%’ IDENTIFIED WITH AWSAuthenticationPlugin as ‘RDS’; # ユーザ作成
GRANT ALL PRIVILEGES ON {MySQLDB名}.* TO ‘{MySQLユーザ名}’@’%’ REQUIRE SSL; # 権限
“`

# 2. IAMポリシー

こんな感じでポリシーを作る

jsonで直接アタッチするならこんな感じ

“`json
{
“Effect”: “Allow”,
“Action”: “rds-db:connect”,
“Resource”: “arn:aws:rds-db:{AWS::Region}:{AWS::AccountId}:dbuser:cluster-{リソースID}/{MySQLユーザ名}”,
}
“`

CloudFormationならこんな感じ

“`yaml
iamRole:
– E

元記事を表示

AWS Sysopsアドミニストレーターアソシエイト資格に合格しました。

# はじめに
先週(1/17)ですが、AWS Certified SysOps Administrator – Associate (SOA)の試験に受かりましたので、勉強方法や試験での手応えについて記載しようと思います。

[※前回の記事(AWS SAAに受かった話)](https://qiita.com/kkino1985/items/85bcfa50686fcfe69c56)

# 勉強期間
資格取得に動き始めたのが2019年12月中旬頃(クリスマスの少し前ぐらい)でした。

勉強期間としては1ヶ月程になりますが、途中Azureの資格に浮気したり年末帰省して胃腸炎にかかってダウンしたりしたので、真面目に詰め込んだらもう少し早く取れたと思います。

自分は上記の通りSAAを取得済みだったので、その時の内容を思い出す+アルファの知識を仕入れるだけで良かったですが、AWSを全く知らない人はクラウド固有の考え方含めて覚えることが多いのである程度の期間を取った方が良いです。
(色々な記事でも触れられていますが、SOAから入るとハードルが高いのでSAAから取ることをお勧めします)

# 獲得

元記事を表示

起動中のインスタンスからEBSボリュームのDeleteOnTermination設定を変更する。

起動中のEC2インスタンスのEBSボリュームのDeleteOnTermination設定を変更する手順。

通常、コンソールからだと、起動時のボリュームアタッチ時にしか設定できない。
そのため、あとから変更したい場合や、起動後にボリュームをアタッチした場合にはベットCLIから設定する必要があり、`aws ec2 modify-instance-attribute`コマンドで設定可能である。

“`shell
# EBS作成
$ aws ec2 create-volume –availability-zone ap-northeast-1a –size 8 –volume-type gp2
$ aws ec2 create-volume –availability-zone ap-northeast-1a –size 8 –volume-type gp2

# EBSアタッチ
$ aws ec2 attach-volume –instance-id i-0cd13d242c52faxxx –volume-id vol-0c715576745bdbf9c –device

元記事を表示

OTHERカテゴリの最新記事