AWS関連のことを調べてみた2019年12月23日

AWS関連のことを調べてみた2019年12月23日
目次

インフラ問題: CORSを使わずにSPAアプリをAWSにホスティングする

久々にインフラ周りの作業を行ったので備忘を兼ねて、やったことのメモを残しておきます。
インフラエンジニア向けの課題として、そこそこ面白い内容だと思うのでそれっぽい形式で書いてみます。

## 命題
APIサーバと連携するSPAアプリケーションをAWSでホスティングしたい。
そのために必要な設定を行いなさい。

## アプリケーション条件
– この文書内ではアプリケーションのドメインは`hoge.com`とする
– アプリケーションは顧客企業毎にサブドメインを割り当てる仕組み
– `aaa.hoge.com`とか`bbb.hoge.com`など複数のドメインがある
– SPAはルートにindex.htmlがあり、そこから参照されるJS, CSS, 画像などがサブディレクトリにある
– SPAのルーティングはHistory(ブラウザのパスが切り替わる)
– APIサーバはすでにELBを構成済み。APIサーバのエンドポイントは`api.hoge.com`
– APIサーバのエンドポイントはすべて `/api/`で始まる
– APIサーバはSPA以外からも単独で使用されることがある(

元記事を表示

ああ、全世界のインフラ担当者よ、半熟AWSインフラエンジニアになれ! (※AWS 旧ソリューションアーキテクトプロフェッショナルの話です)

今更ながら遅れながら、AWSのソリューションアーキテクトプロフェッショナル(SAP)に合格してきました。
タイトルは新作ゲームの発売前に動画流出しちゃった某ゲーム会社の過去作品タイトルをいただきました(ごめんなさい。怒られたらタイトル変えます。)

合格した結果は、末尾にでも記載しますので暇なら見ていただければと思います。
あとぼくは他の方のように本は紹介しません。
本はソリューションアーキテクトアソシエイトレベル(SAA)を受ける際に失敗したことがありますので、避けております。

# 合格への手引き

月並みですが、合格への手引きを書きたいと思います。

## 最低限の必須条件

– AWS ソリューションアーキテクトアソシエイト(SAA)の資格合格者
– SAA合格からAWSの運用経験2年(※補足必要事項1)

## 追加・補足でやると良いこと

– BlackBeltシリーズの熟読
– ホワイトペーパーの熟読
– Linux AcademyやKoiwaClubの利用(※補足必要事項2)
– 書籍はない。(はず)
– [Advanced Architecting on AWS](h

元記事を表示

ランキングデータを作ったときのAWSサービス選定について

zomです。

この記事はLIFULL Advent Calendar その1の23日目の記事です。

いつもはアドベントカレンダーの日に向けて、前々から興味があったテーマについて調査検証した内容を書いたりしているのですが、今回は年の瀬ということもありますので今年担当したWebアプリケーションについて書いてみます。

Webアプリケーションにおける技術選定という工程は、そのときの要件、リソース(時間や人、金)、会社・組織・あるいはレガシーなシステムとのしがらみといった変数によって大きく変化します。
そのためQiitaなどで検索してもなかなか参考になる記事や考え方が見つからず、どうしたものかなぁと思ったので、このときの設計や技術選定の過程について書いてみようと思います。初めてこういったことをする人の参考になればいいな、と思います :sun_with_face:

なお、このプロダクトの作成時期は2019年の3月頃です。
また私の部署ではAWSを利用した環境が主なのでAWSのサービスで考えました。

# 要件

– 駅/市区町村のランキングを表示する
– 駅数は2018年4月1日

元記事を表示

Telegram botをAWS Lambdaでやってみた

Leoです。
この記事は [Wanoグループ Advent Calendar 2019](https://qiita.com/advent-calendar/2019/wano-group) の22日目の記事になります。

[Telegram](https://telegram.org/)のアプリにserverless botの機能を追加しました。
現在僕は複数のメッセンジャを使っています。
Lineにはbotを[簡単に追加できますが](https://dev.classmethod.jp/etc/lambda-line-bot-tutorial/)、今回初めてTelegramのアプリに入れる必要があったので、この記事をメモとしても書きました。

### Telegramのbotの実装には基本的に4ステップがあります。
1. Botの登録
2. AWS lambdaの登録
3. AWS API Gatewayのendpointを追加
4. EndpointをTelegramにwebhookとして登録

## Botの登録
Lineと違って、Telegramのbot登録やbotの操作はア

元記事を表示

【AWS SAM】 DynamoDB+Lambda+APIGatewayでAPIを作る

# 内容
DynamoDBのデータを取ってくるAPIを、AWS SAMで構築してみる

要するに、こんな感じのテーブルから、、、

|group(Hash) |name(Range) |
|—|—|
|group1 |name1 |
|group1 |name2 |
|group2 |name3 |

こんな感じに取ってこれるようにしたい。

“`shell
curl https://hogehoge/Prod/dynamo-api/v1/?group=group1&name=name1

{
“result”: [
{
“name”: “group1”,
“group”: “name1”
}
]
}
“`

# 環境
– macOS Mojave -10.14
– python3.7.4
– sam 0.38.0

# 目次
1. アプリケーションの環境構築
2. template.yamlを書く
3. 実行スクリプトを書く
4. デプロイ
5. 検証

# 1

元記事を表示

[AWS] VPCでネットワーク構築3

[[AWS] VPCでネットワーク構築1](https://qiita.com/hosochin/items/5124c017d80b506a63ce)
[[AWS] VPCでネットワーク構築2](https://qiita.com/hosochin/items/b312c13b4734339c5158)
の続き

プライベートサブネットを作って、DBサーバを配置するまで

### 1.プライベートサブネットを作る

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384069/49ac2633-3b96-81bb-7746-5ea35ac6a8ff.png)
・リージョンが東京になっていることを確認
・VPCに作成済みのVPCを選択
・アベイラビリティゾーンに作成済みパブリックサブネットのアベイラビリティゾーンを選択(サブネット > パブリックサブネットを選択 > 説明タグで確認できる)

### 2.インスタンスを作成する
![image.png](https://qiita-imag

元記事を表示

riot.jsでAmazon S3使う際にリロードすると403が出てしまう時にすべきこと

## はじめに
どうもです。
Riot.jsを利用して作成したコンテンツをAmazon S3で配信する際に、404エラーが想定通り処理されなかったので対応した内容を書きます。

Riot.jsアドベントカレンダー2019の5日目、@nekijakさんの記事を見ながらふんふんとルーティングについて学び、最高にわかりやすかったです。ありがとうございます。
その後、じゃーいつも使ってるS3に乗っけてみるかと漫然と乗っけたところうまく行かなかったのでじゃあこれを書こうと思った次第です。

### 参考にさせていただいた記事
* Riot.js v4対応 Router – Qiita (件の@nekijakさんの記事)
* https://qiita.com/nekijak/items/bb87e1eec71f4b95190c

## 問題点

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146594/3e5ae79e-12e5-bdb4-93bd-8dba08ac4baa.png)

元記事を表示

AWS上にCentOSでrocket chatを構築してみる

## EC2でインスタンスを立てる

* AMI:CentOS 7 (x86_64) – with Updates HVM
* タイプ:t2.micro
* セキュリティグループ:22,80,3000

## 必要な依存パッケージをインストール
* Rocket.Chat 1.0.2
* OS:CentOS 7.6
* Mongodb 4.0.9
* NodeJS 8.11.4

“`
# sudo yum -y check-update

# cat << EOF | sudo tee -a /etc/yum.repos.d/mongodb-org-4.0.repo [mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc EOF ※catからEOFまで全て入力

元記事を表示

ほぼオンプレしか触ったことがないインフラエンジニアがAWS SAAを取得するまで

#はじめに
ほぼインフラしか触ったことがないインフラエンジニアでしたが、
一か月半くらいの勉強で合格出来ましたので備忘録がてらメモです。
同じようにオンプレの経験しかない方の参考になれればいいと思います

#私のスキルセット
業界3年(最初の会社で取ったCCNAが失効した。。。)
Linuxなんとなく操作できる(LPICレベル3はもってる)
IAサーバならなんとなく構築できる
OSの動作とかコンピュータアーキテクチャがなんとなくわかる
ラッキングとか物理作業もなんとなくできる

AWSの勉強を始めた直後ぐらいにAWSの案件にぶち込まれたので
AWSの業務経験としては1か月くらいです。(右も左もわからんのにTerraformな感じでした)

#勉強方法

##参考書を読む

以下の本を2周読みました。

[この1冊で合格! AWS認定ソリューションアーキテクト – アソシエイト テキスト&問題集](https://www.amazon.co.jp/%E3%81%93%E3%81%AE1%E5%86%8A%E3%81%A7%E5%90%88%E6%A0%BC-AWS%E8%AA%8D%E5

元記事を表示

【AWS】Route53で取得したドメインをElastic IPとひもづける方法。

Route53を使用して取得したドメインを、ElasticIPと紐付けてアクセスできるようにする方法を記事にしました。

前提条件
・AWSでアカウントを登録済み。
・ElasticIPを使用してデプロイがすんでいる。
・Route53をドメインを取得するが、課金に抵抗がない(例えば.comのドメインの場合、年間12$かかります)

無料でドメインを取得する方法もあるそうですが、エラーにはまる可能性があると聞いたので、今回はRoute53を使用して取得したドメインをElasticIPとひもづけることでAWS上で完結させます。

ドメインを取得するメリットをこちらの通りです。
・Twitterの自己紹介にURLを載せることができる(ElasticIPだと入力がはじかれました)
・番号よりドメインの方が見栄えがよい。
・アドレスを利用者に覚えてもらいやすくなる。

まずはAWSのコンソールにアクセスします。

1.Route53のダッシュボードに移動
Route53をのページにアクセスします。

スクリーンショット 2019-12-22</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Rails</div>
<div class='tag-cloud-link'>AWS</div>
<div class='tag-cloud-link'>route53</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/saitou311099/items/d4135204bfd4adcac287'>元記事を表示</a></div>
<h3 id=ただのWebエンジニアがaws認定の機械学習専門知識に合格した話

本日(2019/12/22)、受かってきました。

今年の6月に[AWS 認定 機械学習 – 専門知識 サンプル問題 日本語訳](https://qiita.com/ikegam1/items/50ec1787db14226158d2)なんて記事を書いてますが、ちょうどここがスタートで半年ちょいかかってますね。。
これで9冠目なんだけど、これまでで一番苦労してるかも。というか2回落ちてますねん。。

なお、本記事ではしがないWebエンジニアがどうやって合格までたどり着けたのかを書いていきます。

# me
* アソシエイト、プロは取得済。専門知識もいくつか
* しがないWebエンジニア(インフラ寄り)
* 業務ではまったく機械学習系やってない
* awsは使っている
* aws歴2年ちょい
* 数字嫌い

# aws認定 機械学習の対象(推奨)

> ・AWS クラウドでの ML/深層学習ワークロードの開発、設計、実行における、1~2 年の経験
・基本的な ML アルゴリズムの基となる考えを表現する能力
・基本的なハイパーパラメータ最適化の実践経験
・ML および深層学習フレームワーク

元記事を表示

Serverless Framework で SPA 環境を構築してみる(with Lambda@Edge & API Gateway)

## はじめに

最近ある案件で [Serverless Framework](https://serverless.com/) (以下、SF)を触る機会があり、いろいろ試行錯誤したので、せっかくなのでブログにしてみました。

今回はAWSにおけるSPAとして割とメジャーな構成 (CloudFront + S3 + API Gateway) をSFでつくりつつ、その過程でちょっとハマったところについても最後に記載しています。

なお、今回はSFに焦点を当てており、Lambda関数や静的コンテンツ自体の実装については言及していません。
また、SFを含む各種ツールやプロダクトの紹介およびインストール方法などは割愛しています。

## 注意点など

**IAM**
今回、 IAM は administration 権限で sls コマンドなど実行していますので、
例えば本番環境で継続的にデプロイする場合など適切なポリシーを設定してください。
参考: https://serverless.com/framework/docs/providers/aws/guide/iam/

**SFバージョ

元記事を表示

サーバーレスアセンブリ?

# みんな大好きLambda
![AWS-Lambda_light-bg@4x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83183/797bf7ca-822c-0006-dcff-72eae43dd3f1.png)

今年の re:Invent では RDS Proxy という個人的神アップデートも発表されて、
ますますサーバーレスしやすくなってきましたね!
(Provisioned Concurrency もな!)

そんな Lambda ですが、現在サポートされているランタイムは以下です。

– Node.js
– Python
– Ruby
– Java
– Go
– .NET

もちろんこれ以外の言語でも使いたい人はたくさんいますよね。

そんなときはカスタムランタイムです。

# [カスタム AWS Lambda ランタイム](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/runtimes-custom.html)

去年(2018

元記事を表示

【Amazon ElastiCache】 Rails設定

#AWS側の設定
参考
https://qiita.com/leomaro7/items/f031cfdd7d12d5d5ccc5

【AWS入門】ElastiCache を起動してみる

#Rails側の設定

“`config/environments/staging.rb
config.session_store :redis_store, {
servers: {
host: ‘[プライマリエンドポイント]’,
port: 6379,
db: 0,
namespace: ‘sessions’
},
expire_after: 60.minutes
}
“`

“`config/initializers/sidekiq.rb
Sidekiq.configure_server do |config|
case Rails.env
when ‘staging’ then
redis_conn = proc

元記事を表示

インフラ設計時に気をつけていること(基本編)

古木です。

この記事は[iRidge Advent Calendar 2019](https://qiita.com/advent-calendar/2019/iridge) 22日目の記事です。

今まで、AWSでのインフラ設計・構築をやってきましたが、ある程度パターン化されてきておりサービス運営を考えた際に、インフラ設計の基本に立ち返って必ず意識する点を初心に返ってお話したいと思います。

## 設計時に意識している指標

RASIS というシステム評価指標があります。
5つの項目(信頼性(Reliability)、可用性(Availability)、保守性(Serviceability)、完全性(Integrity)、機密性(Security))の頭文字を取っています。
2008年に発売された[サーバー/インフラを支える技術](https://www.amazon.co.jp/dp/B07JHRVXGT/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)という私の好きな本でも、この辺りの概念が記載されており(ただし、RASISという用語は

元記事を表示

Lambda + CloudWatch + DynamoDB + LINE Notifyでリマインダーを作る

# はじめに
DynamoDBのキャッチアップのついでに、リマインダーを作りたかったので作ってみた。
今回は時間があまりなかったので、備忘録みたいな感じ。(まだ完成していない)

構成としては以下のような感じ。
![設計図-5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396492/ae1c3c66-8ec9-ec70-a11d-8a4d08c0cd5b.jpeg)

本当は、Androidアプリを作って、プッシュ通知までもって行きたかったが時間がないので後日。
通知の部分は、簡単にできるLineNotifyを使ってLineで通知をするようにした。

## DynamoDBを立てる
1. IAMにて、ユーザーにAmazonDynamoDBFullAccessの権限をつける
2. DynamoDBのトップページにてテーブル作成を押す
3. テーブル名とパーティーションキー名(今回はDate)を入力する。
5. できたDynamoDBの構成は以下の通り
– テーブル…データのコレクション。

元記事を表示

【AWS S3 + EC2 + CarrierWave + Fog】RailsからS3へ画像アップロード手順

#はじめに
Ruby on Rails 5.2からAWS S3へ画像をアップロードをするため、CarrierWave+fogを使って実装を進めました。

対象
EC2構築、デプロイ経験のある方
EC2へ画像をアップロードしていた方
はじめてS3を利用する方

#AWSの設定
##S3作成

S3 バケットを作成する方法
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/user-guide/create-bucket.html

– 東京リージョン
– バージョニング有効
– Static website hosting有効
– パブリックアクセスをすべてブロック

“`:バケットポリシー
{
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: “*”,
“Action”: “s3:*”,
“Resource”: [
“arn:aws:s3

元記事を表示

実際に本番導入してみて分かった!ツラさから考える最強のMLデータパイプライン

[ランサーズ AdventCalendar](https://qiita.com/advent-calendar/2019/lancers) 22日目担当の @odrum428 です。

10 ~ 11月にかけてSage Maker上に構築した機械学習モデルを本番導入までをやりました。
そこからいろいろ実運用でのつらさが見えてきたので問題点の共有と
その一部を解決するためにMLデータマートを考えてみたという記事です。

MLOps周りをやっている方や取り組もうとしている方、特徴量管理、データの知見管理に悩んでいる方向けの記事です!

## 9月ごろにAIチームの立ち上げを行いました?
今までも機械学習を使った機能開発はありましたが、会社としてやっていき?な機運だったのでチームとしてが立ち上がる運びとなりました。

チームについての詳細は以下の記事に書いたので、読んでもらえると嬉しいです!
[AIチームの立ち上げとこれから](https://engineer.blog.lancers.jp/2019/12/ai_team_launch/)

既存の機械学習機能は僕がちょこちょこ作ったも

元記事を表示

Web開発勉強のためWordpressでポートフォリオサイトを開設するまで③〜XAMPPローカル環境構築失敗編〜

**XAMPPでローカル環境を構築できたといったな。あれは嘘だ。**

いや、嘘ではないんですけど、うまくいったのはインストールまででした。
講座の動画に従って投稿や固定ページの更新をしたところ、
「更新に失敗しました。 エラーメッセージ: 返答が正しい JSON レスポンスではありません。」
というエラーメッセージが表示され、なにもできない状態でした。

いまだにデータ交換をテキストやらCSVでやっている仕事ですので、XMLはおろかJSONとは、みたいな状態で、ググってもいまいち解決方法がピンとこない・・・
UdemyのQ&Aを覗いても同様の質問がなかったため、思いきって自ら質問してみました。
すると、すぐに先生自ら回答をくださいました!
>php.iniのmax_execution_timeをデフォルト設定から300に変更して、Apacheを再起動してみてください。

とのこと。ちなみにこの日は有給予定だったので平日朝の7時ぐらいに書きこみました。~~先生ヒマなのかしら。~~
というわけで、php.iniを探してパラメーターを上書き。
念のためPCも再起動しましたが・・・残念ながら

元記事を表示

AWS DeepComporser について

## はじめに
この記事は株式会社ナレッジコミュニケーションが運営する [Amazon AI by ナレコム Advent Calendar 2019](https://qiita.com/advent-calendar/2019/knowcom-amazonai) の21日目の記事です。

今回の re:Invent で発表された **DeepComposer** についてご紹介します。

## AWS 機械学習スキル学習のインターフェイス
機械学習モデルの学習ツールとして、**DeepLens**、**DeepRacer**、**DeepComposer** の三種がラインナップされたことになります。

> 左上が**DeepLens**、右上が**DeepRacer**。
そして下が今回の re:Invent で発表された **DeepComposer**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363781/a5b463f3-2783-6b43-f217-0153e

元記事を表示

OTHERカテゴリの最新記事