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

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

Cloud9環境作成時にInstalling Nakで止まってしまった時の対処法

#状況
Cloud9の「Create environment」を選択すると、作成されるEC2のAMIは自動的にAmazon Linux AMIになってしまう。今回は最新のAmazon Linux 2を使ってみたいのでEC2を作成→Cloud9からSSH接続設定をしてみた。

その際、Cloud9の初回初回起動時にAWS Cloud9 Installerが途中で止まってしまうケースが何度かあった。
特に`Installing Nak`という箇所で30分程度止まってしまうことがあった。

#対処法
Cancellボタンを押す。その後ページを再読み込みするとインストールされていないもののみが表示されているので、もう一度インストールを開始すると上手くいった。

原因はわからないのであくまで暫定の対処ですが、ハマっている人の助けになれば幸いです。

元記事を表示

Railsで作ったアプリをAWSでデプロイ① 〜アカウント作成編〜

こんにちは
AWSをつかってRailsアプリをデプロイしたいと思います

まず、AWSアカウントを作成します
スクリーンショット 2020-03-09 14.16.07.png

注意点として一度使ったメールアドレスは、削除すると二度と使えなくなるそうです。

次の画面、僕はパーソナルです。

スクリーンショット 2020-03-09 14.20.47.png

この後、クレジットカード→本人認証画面なので割愛します
プランはベーシックで

元記事を表示

AWS ECSのビルド〜デプロイをCodePipelineで自動化した

Docker + ECS + RailsのプロジェクトでCodePipelineを使用してデプロイまでを自動化したので、その知見をまとめたい。(ブルーグリーンデプロイではなく、通常のデプロイ時の方法)

RailsのプロジェクトだけれどCodePipeline基本的な使い方は、他の言語でもそれほど変わらないと思う

## デプロイの流れ

githubにpushすれば自動でデプロイが開始される。デプロイは以下の流れで行うように作った。

1. GitHubの特定のブランチ(masterなど)にpushする
1. pushされたことがCodepipelineに通知されビルドが開始
1. docker-composeを利用して、Dockerをbuildする
2. Dockerイメージタグにコミット番号を付与して一意にする
2. ビルドが完了したらECRにpushする
1. ビルド完了後にECSにデプロイ通知がいく

## CodePipelineの設定

CodePipelineはソース管理、ビルド、デプロイをパーツのようにつなげてCD/CIを管理することがで

元記事を表示

Azure ADをIdPに設定してALBでユーザ認証してみた

Azure ADをIdPに設定してALBでユーザ認証してみました。

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/listener-authenticate-users.html

# 手順

1. HTMLを出力するLambdaを作成し、ALBのターゲットに設定する
2. Azure ADにアプリケーションを登録する
3. ALBを設定する
4. テストする

# 1. HTMLを出力するLambdaを作成し、ALBのターゲットに設定する
以下記事を参考に、Lambdaを作成してALBのターゲットに設定します。
 https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/lambda-functions.html
ALBのリスナーは**HTTPS**に設定し、Route53にALBのエイリアスレコードを登録します。

“`lambda_function.py
def lambda_handl

元記事を表示

プログラムでAWSのサービスにアクセスする方法

##プログラムでAWSのサービスにアクセスする方法
①CLI
②SDK(内部的にAPIを実行)
③API ※SDKがない言語はこれを使うしかない。

##認証方法について
①IAMロール
 プログラムを配置しているサービス(EC2等)にロールをアタッチする。
 ⇒ロールが一時的な認証情報を作成してくれる。
②IAMユーザー ※SDK,CLI用
 IAMユーザから振り出したアクセスキー・シークレットアクセスキーを設定する。
 ※変数として設定 or クレデンシャルファイルとして配置
 ⇒SDK,CLIが自動で署名を計算してくれる。
③署名V4(API直叩き)
 ”②”の署名の計算を自分でおこなう。(アクセスキー・シークレットアクセスキー必要)
※SDKがない場合はこれを使うしかない
 
>https://docs.aws.amazon.com/ja_jp/general/latest/gr/signing_aws_api_requests.html

>https://docs.aws.amazon.com/ja_jp/general/latest/gr/sigv4_signing.h

元記事を表示

AWSのCIDRってどう入力すればいい?

AWSでインフラの知識なく、環境構築に望まなければならなかったが、
特にVPCやサブネット作成時のCIDR入力欄で困惑したのでメモします。

![スクリーンショット 2020-01-28 21.20.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493132/27910a01-0466-45e5-8d3a-a9e4f59450b2.png)

## 1. 結論

**・第1オクテット〜第2オクテットまで0〜255の範囲で自由に決めて第3と第4オクテットは0でいい。**
**・ブロックサイズ(/(スラッシュ)の後ろの2桁の数字)は16〜28からの間を入力。切りがいいので20,24あたりであれば個人利用なら何も困らない**

※ただし、`0.0.0.0`だと意味が変わってしまうので×

### 1-1 オクテットとは?

例 111.222.33.44 ←のようなIPアドレスだと・・・

111が第1オクテット
222が第2オクテット
33が第3オクテット
44が第4オクテット

と4つのオクテットに

元記事を表示

docker-machineでEC2たてて、SSH接続した話

# はじめに
インスタンス上で開発したいけど、やり方がわからなかった自分のために作りました。
環境は`macOS Mojave 10.14.6`

## 追記
おそらく固定IPにしていないと、閉じた時に設定が使えなくなってしまうので、そこにも対応しました。

## やること
1.DockerからEC2を作る
2.ssh接続してDockerが使えるかの確認
3.コマンド

##### 1.DockerからEC2を作る
まずはじめに`docker-machine`機能を使ってインスタンスを作りましょう。
自分のAWSアカウントのアクセスキーとシークレットキーを準備してください。また`AWS-Cli`で`configure`の設定が済んでいて、使うアカウントが`default`に設定されている場合、やらなくても済むかもしれません。

“`
export AWS_ACCESS_KEY=”この中に自分のアクセスキー”
export AWS_SECRET_KEY=”この中に自分のシークレットキー”
“`

一応以下のコマンドでもできるらしいですが、自分はうまくいかなかったので保証はしません。

元記事を表示

AthenaのQUEUEのステータス

みなさんAthenaを知っているだろうか。
S3のファイルにqueryを発行して中身を検索できるあれである(雑)

そのAthenaをプログラム上から使う場合、CLIかBoto3あたりを使用すると思う。
start_query_execution でqueryを実行し、
その終了を get_query_execution で監視すると思う。

コードでは、この get_query_execution をつかってqueryのステータスを監視し、waitしたりException吐いたりしたいと思う。
get_query_execution が返してくるqueryのstatusは以下である。

* QUEUED
* RUNNING
* SUCCEEDED
* FAILED
* CANCELLED

私はQUEUEDというステータスがあることを知らずにプログラムを組んだため
この世に新しいバグを生み出すという罪深いことをしてしまった。
みなさんが私と同じ罪を犯さないように、ここに記しておく。

参考資料
https://docs.aws.amazon.com/ja_jp/athena/late

元記事を表示

ないのなら作ってしまおう、Microsoft Teams 向け AWS Chatbot っぽいもの

## AWS Chatbot とは
https://aws.amazon.com/jp/chatbot/

ざっくりと言ってしまうと、AWS上で起きた事象を Slack や Amazon Chime に通知したり、スラッシュコマンドなどで操作できたりするものです。

本稿執筆時点では、ベータ版のため、[この資料](https://d1.awsstatic.com/legal/awsserviceterms/AWS%20Service%20Terms%20-%20Japanese%20Translation.pdf)の ***1.10 Beta Service Participation*** に則り、これ以上の言及は致しません。

## 背景
現時点では、Slack と Amazon Chime のみの対応のため、Microsoft Teams 用として AWS Chatbot っぽいものを作ろうということです。

ベータが外れたころに採用されてるといいなぁと願いながら…

## レシピ
### 登場人物
– Microsoft Teams
– AWS Lambda
– Amazo

元記事を表示

静的CMS「MovableType」の強みと、新しい情報の探し方

[MovableType](https://www.sixapart.jp/movabletype/)というと、「今さら?」と反応する人もいるかもしれない。2001年に誕生し、今なお開発が継続されているCMSだ。静的サイトを構築できるがゆえの強みがある。

# WordPressと何が違う?

ざっくりと比較してみよう。

| | WordPress | MovableType |
| —————— | ———————— | ———————————————————— |
| 動的/静的 | 動的 | 静的 |
| ページ表示

元記事を表示

【AWS】AWS関連用語を一言で表現

# 執筆中!!!完成したら見やすくまとめる

# 用語
### AWSとは
– クラウド上でサーバーやネットワークを構築するためのサービス

> サーバーやネットワークはサービスの中の一つ

### インフラ
– サーバーやネットワーク

### インフラを構築
– ネットワークを構成し、サーバーをネットワークに接続する

### サーバー
– サービスを提供するコンピューター

> WebサーバーやDBサーバーなど呼び名は複数あるが役割によって呼び名が異なるだけ

### ネットワーク
– 複数のコンピューターをつないで、データを送受信できるようにする

### rootユーザー

– 全権限を持つユーザー

### IAMユーザー

– 作業用ユーザー。作業者毎にIAMを作成し、権限を割り振り、操作に制限をつける

### Cloud Trail

– 操作ログを記録するサービス

> デフォルトで90日保存

### S3

– ファイルの置き場。(無料枠には含まれない)

### リージョン

– AWSの各サービスが提供されている地域

> リージョンによって使えるサービスが

元記事を表示

EC2に自動割り当てIPし損ねた話

かつて自分が作ったVPCのサブネットの`自動割り当てIP設定`を`有効`にし損ねていた。そのせいでインスタンスにIPアドレスが割り当てられないということが起こった。
再起動しても治らないということで困った末にインスタンスを作り直すことにした。
ちなみに鍵を無くしてしまった場合も同様にイメージを元に作り直して、鍵を設定し直せばいけるそうだ。

### やること
1.インスタンスのページから作り直したいインスタンスを見つける
2.`アクション>イメージ>イメージの作成`を行う
3.`イメージ>AMI`に移動
4.作り直したいインスタンスのイメージをクリックし、`起動`を行う
5.通常のインスタンスの作成画面へ移るので、インスタンスを作成する

### おわりに
`5.`のインスタンス作成画面で鍵の設定ができるので、もし鍵を無くしてしまった場合でもどうにかなるかもしれない。

元記事を表示

AWS SWF(Simple Workflow)とは

# SWF(Simple Workflow)とは
マネージド型のタスクコーディネータ
商品の発注/請求処理のワークフロー(処理の流れ)のような、重複が許されない、厳密に一回限り順序性が求められる処理のコーディネータとしての利用に適している。
#SWFの要素
スクリーンショット 2020-03-09 14.45.29.png

##①ワークフロースターター
SWFを起動し、ワークフロー開始の起点となるアプリケーション。
例えば、顧客の注文を起点に動作するワークフローだと注文を受けるアプリケーションがワークフロースターターになる。

##②SWF
ワークフロースターター、もしくはワーカー・Lambdaタスクから受け取った情報を元に決定タスクを作成し、ディサイダーへ渡す。

ディサイダーから受け取った次に実行するタスク

元記事を表示

AWS Layer 作成スクリプト fo python

LambdaのDockerコンテナでPIP実行してZIP化。それをAWS Lambda Layerとして発行するスクリプトです。

– 要Dokerインストール(lambci/lambdaイメージ内でPIPします)
– 事前にAWS Configureしてください。
– 以下のソースコードをファイル保存(publish.sh)し、実行権限を付与。“`chmod +x publish.sh“`
– パラメータ指定して実行(param1=layer-name, param2=lib-name, param3=lib-version, param4=python-version)
– “`./publish.sh requests-python37 requests 2.22.0 python3.7“`
– 同じLayer-nameを指定して再実行すると、新しいlayer-vesionが作成されます。

作りが雑ですが、一応動きます。。。手元の環境を汚したくない時にどうぞ。

“`bash
#
# Require: docker installed.
# Require:

元記事を表示

AWS ALB のアクセスログをJSON形式に整形する

本格的にアクセスログ解析するならAthenaなどを使うべき。

だが、単に目の前にあるアクセスログを見たい時もある。そんな時スペース区切りの形式は眼に悪い。そこで、見やすいJSONに変換する。

スペース区切りは、csvの一種であるので、csvモジュールでパースできる。

“`python
#!/usr/local/bin/python
# alb_access_log_to_json.py

import fileinput
import json
import csv

# https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-access-logs.html#access-log-entry-format
FIELD_KEYS = “””
type
timestamp
elb
client:port
target:port
request_processing_time
target_processing_time
response_processing_t

元記事を表示

swapon failed: Operation not permittedと怒られた時の対処法

#状況
AWSのEC2インスタンスにLaradockを使ってLaravelのローカル開発環境を作成していた。
Laradockの環境構築が終わり`docker-compose up -d nginx mysql`でコンテナを起動。”laradock_workspace_1″に`docker-compose exec workspace bash`で接続しLaravelを生成しようとしたところ以下のエラーが発生。

EC2のインスタンスタイプは”t2.micro”(RAM1GB)、AMIはAmazon Linux 2。

“`bash

$ root@4e964ed4f2ce: composer create-project –prefer-dist laravel/laravel ./
Installing laravel/laravel (v7.0.0)
– Installing laravel/laravel (v7.0.0): Downloading (100%)
proc_open(): fork failed – Cannot allocat

元記事を表示

AWS SQS(Simple Queue Service) について

#SQS(Simple Queue Service)
SQSとは
フルマネージド型メッセージキュー型サービス。
プロセス間通信などのスレッド間通信に使われるコンポーネントで制御やデータを伝達するポーリング型キューサービス

*基本的には256KBまでの軽いデータしか利用できず、60秒から14日間メッセージを保持する

##メッセージキュー(MQ)の基本
アプリケーションは、開発、デプロイ、管理がより簡単に行える、独立した小さな構成要素に分解されています。メッセージキューは、この分散アプリケーションに対して通信や調整を行います。メッセージキューは、分解したアプリケーションのコーディングを大幅に簡素化すると同時に、パフォーマンスや信頼性、拡張性を高めることができる。
スクリーンショット 2020-03-09 13.43.57.pngAWS AutoScalingについて

#はじめに
AWSのAutoScalingは
AWS 5つの設計原則と11のベストプラクティスの**信頼性**と**パフォーマンス効率**に該当します。
https://qiita.com/avicii2314/items/6553492a3f54cd8e15b2

#Auto Scalingとは
– インスタンスの数を自動で増減できる
– インスタンスの数は最少、最大を指定する
– 増減のトリガーはCloudWatchのメトリックスを指定できる
– 増減のトリガーは時間を指定できる

#Auto Scalingのコンポーネント
###Loaunch Configuretions:起動設定

– Auto Scaling時に起動するEC2インスタンスを定義する
– AMI ID、インスタンスタイプ、ディスクサイズ、キーペア、セキュリティグループ,IAMロール等を指定(EC2インスタンス作成に指定する項目とニアイコール)

###Auto Scaling Groups
– オートスケール対象のEC2インス

【備忘】AWSでWindows ServerのAMI(日本語版)を見つけるコツ

#何がしたかったか

・AWSでWindows ServerのEC2を立てたい。
・日本語化&パッチあてが面倒なので、AWSから公式に出ているAMI使いたい。

#見つけるコツ(2020年3月時点)

【Windows_Server-yyyy-Japanese】と探す。
※yyyyには適宜構築したい年度を入力
![search.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319379/83879f37-6800-8474-f833-e56b13aff421.png)

去年くらいまでは、検索窓に「japanese windows」とか入れるだけで見つけられたはずが、
今やるとAND検索がうまくいかなくなったのか、マーケットプレイスのAMIしか出てこなくなってしまった・・・

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