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

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

【AWS】オンプレ(物理マシン)からAWSに移行するには

# はじめに

– 本記事は、オンプレからAWSに移行する方法について検討した内容です。

# オンプレ(物理マシン)の制約について

– 以下AWSドキュメントにあるように、AWSに移行するには仮想OSイメージからという制約があると思っていました。
– 物理マシンサーバーのOSイメージを、一度、仮想化したあと、仮想OSにインポート。その後、AWSに移行しなければならない。

> P2V 変換の結果として作成された VM はサポートされません。P2V 変換は、物理マシンで Linux または Windows インストールプロセスを実行し、その Linux または Windows インストールのコピーを VM にインポートすることでディスクイメージを作成するときに行われます。
[AWS ドキュメント Amazon EC2 ユーザーガイド VM Import/Export の要件](https://docs.aws.amazon.com/ja_jp/vm-import/latest/userguide/vmie_prereqs.html)

# では、どうするか?
– それで、まあ『

元記事を表示

GCPとAWSのコストを比較(インスタンス編) ~ 2019年9月20日時点

#はじめに
本記事は[Qrunchにて記載していたブログ記事](https://ijx9721up5ixft9z.qrunch.io/entries/7gljDj8RgERkYCQ0)をQiitaに引っ越したものです。
その為、作成日が「2020年1月5日」にも関わらず、記事のタイトルが「2019年9月20日時点」となっております。

# GCPとAWSのコスト比較
– AWSは本当にコストが安いのかGCPと比較してみました。

## インスタンスのみで比較
– 汎用タイプと思われるインスタンスで比較してみました。以下表参照(GCP n1-standardシリーズ、AWS m4シリーズ)
– GCPはn1-standardシリーズ、AWSはm4シリーズ
### 前提条件
– GCP
– VMクラス:standard、リージョン:東京、OS:フリーOS(Debian, CentOS,CoreOS,Ubuntuなど)
– AWS
– リージョン:東京、OS:Linux、Billing Option:3年間、利用率:100%
– コスト計算
– GCPは、[Google Cloud

元記事を表示

ネットワークエンジニア視点のAWS AWS Provided DNS & Route 53

ネットワークエンジニア的にはDNSはDNSサーバーまで到達できればOKな感じなのですが、
AWSの場合はDNSでのルーティングがキーの一つかなと思いましたので、
色々と触ってみました。というか、DNSが2つあるし。

それぞれの概要はこんな感じ?
*Amazon Provided DNS
  VPC毎に自動で起動。VPCのネットワークアドレスに2を追加したアドレスを持つ

*Route 53
 AWS提供のDNS。
   Public: 通常のInternet上のDNSと同じ
   Private: VPC用?

とりあえずVPCを2つ作成。VPC-tame(10.0.0.0/16)とVPC-tame1(10.1.0.0/16)
それぞれEC2を起動して名前解決がどのように行われるかを調査。
VPCの”DNS resolution”, “DNS hostname”は共にenable
(なおWindowsで実施。。。)

まずは、VPC-tame1(10.1.0.0/16)上のインスタンス(10.1.1.1)から
VPC-tame(10.0.0.0/16)のインスタンス(10.1.1

元記事を表示

久々にcloud9でWordPressの開発をしようとしたらエラーが出た

日頃派遣の仕事をしているので、ITの開発の仕事が思うようにできず、せっかくAWSでcloud9の環境を作っていても、放置状態でした。
お正月休み最終日にWordPressのテンプレート制作に着手したいと思い、cloud9にアクセスしました。

早速IDEを起動したら、データーベースが動いていない系のエラーが出てしまいました。
仕方がないので、一旦cloud9自体を削除して、新しく作り直しました。

下記の記事を参考にしました。

AWS Cloud9でWordPressの開発環境を作ってみた

私は、すでにセキュリティの関係があり、IAMでユーザーを作ってcloud9とEC2のみの権限を与えていました。

今回参考にした記事では、AmazonのLightsailを使うと簡単に環境を作る事ができると説明がありました。
早速、公式ページで確認しました。
https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/lightsail-instances.html

ただIAMにLightsailの権

元記事を表示

【AWS, GCP, Azure, OracleCloud, Firebase】無料で使えるクラウドのサーバリソースまとめ【2020年1月版】

「個人開発をする上でクラウドを使ってみたい」でも、どこを選定したら良いのか迷いますよね。
そこで2020年1月現在の無料で使えるクラウドのサーバリソースをまとめてみました。

# ずっと無料

## コンピューティング

### IaaS
| Platform | Service | 無料枠 |
|———-|———|——-|
| GCP | Compute Engine | f-micro/月 (HDD:30GB, RAM:0.6GB) |
| Oracle | Compute | (OCPU:1/8, RAM:1GB) * 2 |

### PaaS
| Platform | Service | 無料枠 |
|———-|———|——-|
| GCP | App Engine | 28インスタンス時間/日 (Storage:5GB) |
| Azure | App Service | 10 Apps (Storage:1GB, RAM:1GB) |

### FaaS
| Platform | Service |

元記事を表示

AWS Batchのススメ

# はじめに
業務でAWS Batchを使い出してから1年ほど経ったので、使用方法や利点などをまとめてみました。
業務といっても小さい組織で我流で運用しているのみなので、もし間違い等気づかれた場合は適宜ご指摘いただけると幸いですm(_ _)m

# AWS Batchとは
– AWSが提供するフルマネージドなコンテナ実行環境。EC2やECSを使用するより手軽にコンテナ実行環境を確保できる。
– [公式ページはこちら](https://aws.amazon.com/jp/batch/)

# 特徴
– ジョブの実行時のみしか費用が発生しない。(ただし、処理が正常に終了せず、起動しっぱなしになると当然費用が発生し続けるので注意)
– ジョブに合わせて柔軟にコンピューティングリソースのプロビジョニングが可能
– lambdaと違って実行時間に制限がない(lambdaは15分上限)
– 代わりにジョブのsubmitから実行開始までのリードタイムが長い(裏で都度ECSを起動しているため)
– (使いづらいが)ジョブの依存実行、並列実行も指定可能
– Batchと名前にあるにも関わらず、単体で定期

元記事を表示

Lambda(Python) + Rekognition で顔検出

# Lambda(Python) + Rekognition で顔検出

この記事は[サーバーレスWebアプリ Mosaic](https://mosaic.w2or3w.com “Mosaic”)を開発して得た知見を振り返り定着させるための[ハンズオン記事](https://qiita.com/w2or3w/items/87b57dfdbcf218de91e2)の1つです。

以下を見てからこの記事をみるといい感じです。
* [Lambda + OpenCVで画像処理 (グレー画像作成)](https://qiita.com/w2or3w/items/e6feac50c751bbc64697)
* [AppSyncをフロントエンドとバックエンドで利用する](https://qiita.com/w2or3w/items/70f6b6d8d13b60afaee5)

## イントロダクション
顔検出を実現する手段としてOpenCVが最初に思い立つ古い人間なのですが、OpenCVで納得いく検出をさせようと思うとなかなかしんどいんです。で、このAWS Rekognitionを利用してみたので

元記事を表示

AWS APIGateway+lambda+S3を使ってダウンロード機能を実装する

# 背景
AWS使ってサーバーレスで自分用の家計簿的なwebサービスを勉強も兼ねて開発中。大分自分が欲しかった機能は実装出来てきた。
今後の為にもDynamoDBをバックアップをしたい。DynamoDB自体にバックアップ機構はあるものの、間違えてテーブル自体を削除してしまった時(構築スクリプトミスとか)の為に、CSVやjsonファイルなどでローカルPCに置いておきたい。

# 方法を考察
手法は色々あると思うが、大きく分けて以下の2つになる。

– どこかサーバー側で、aws-cliなどを使ってファイル出力する
– web画面にダウンロード機能を追加する

やっぱりここはダウンロード機能。このサービス開発は勉強も兼ねてるし。
ここで、単純にwebページからダウンロードと言ってもまたそこで細かい手法が存在する。

1. データを取得して、クライアント側で文字列作成してダウンロード処理
2. サーバー側で生成したファイルストリームをダイレクトレスポンスで返す
3. S3にアップして、そのアドレスを返し、リダイレクト
4. S3にアップ。フォルダ一覧ページも用意してそこからリンク

元記事を表示

Github の Pull Request がマージされたときに CodePipeline を発火させる

# やりたいこと
Github の Pull Request がマージされたときに Webhook を使って CodePipeline を発火させる。

# 経緯
CodePipeline のコンソールで、pipeline を構築した。
このとき、Github の指定したブランチが変更された際に Webhook を使って最新のコードをデプロイするようにしたかった。しかし、コードの変更をマージしても何も起こらない。。。

# 解決
調べてみると、github のほうでも設定が必要らしい。
デフォルトでは、 `push` イベントをサブスクライブすることになってるため。
https://developer.github.com/webhooks/#events
> By default, webhooks are only subscribed to the push event.

Github の該当のレポジトリに移動し、Settings > Webhooks の画像の箇所を選択すると詳細な webhook event の設定が可能。

ス</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>GitHub</div>
<div class='tag-cloud-link'>AWS</div>
<div class='tag-cloud-link'>CodePipeline</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/tomokikun/items/fba5ca70e52710dbfcd4'>元記事を表示</a></div>
<h3 id=インフラエンジニアがwebアプリ作ってみる#1

# 1. 初めに
令和2年になりました。社会人2年目で仕事にもある程度慣れてきて、今年も頑張ろうと思っていた時ふと「あれ?俺ってアプリ開発全然できなくね?」と気付いてしまいました。
というのは私はインフラSEとして入社して以来一貫してインフラ基盤の初期構築ばかりやってきました。Ansible、Python、Javaとかは使っているものの、アプリ側のエンジニアとしてはとても飯を食っていけないレベルです。
更にインフラSEのくせにクラウド触ったことないです…。
市場価格なくなってしまうんでね?と思い新年やる気あるうちに自分でスキル高めようと決意した次第です。
三日坊主にならないように、Qiitaに投稿します。

# 2. やりたいこと
とりあえずクオリティは置いといてwebアプリを作り切りたい!!!
ToDoアプリを作成し(Kotlin&Spring)期限ないに達成できないとLineBotから鬼責めされる三日坊主防止アプリを作りたいと思ってます。
(需要ないとか言わないで…)
フェーズ1としてローカルマシンにアプリを構築(キーワード:spring,Kotlin,Gradle,Postgre

元記事を表示

Cloud9にDesktop (GUI) 環境をインストールする方法

# はじめに
AWSのCloud9は、AWSマネジメントコンソールからIDEとターミナルで開発や検証を進めますが、時々、ローカルのデスクトップ環境が欲しくなることがあります。

例えば、Webサイトやアプリケーションを開発すれば、ローカルのApache等に配置し、ブラウザから動作確認したいところです。
Pythonでrunserverを実行して、簡易的にWebサーバを起動して同様に動作確認したい場面もあるかと思います。
また、Cloud9にはdockerがプリインストールされているため、コンテナをbuildしたりupしたりすれば、ローカルで接続テストをしたい場面があるでしょう。
このような場面で、解説書やブログを参考にしていると、ブラウザで http://127.0.0.1:8000 や http://localhost 等に接続してGUIを確認する手順 (以下画像のようなこと) を指示される場合がありますが、Cloud9で開発していると手順通りに行かないため、先に進まなくなります。

![image.png](https://qiita-image-store.s3.ap-north

元記事を表示

AWS CloudWatch Logsで例外のログを取得する

現在勤めている企業ではDjangoで開発したアプリケーションをDocker Composeを利用して運用しています。

Dockerのログは以下のコマンドで確認することができます。

“`
# appコンテナのログエントリーを表示し続ける(-fオプションでtail)
$ docker-compose logs -f app

# appコンテナの直近の500件のログエントリーを表示する
$ docker-compose logs –tail=500 app
“`

しかし、運用していると、様々なトラブルがあって、トラブルの都度コンテナを実行しているサーバーにログインして、コンテナのログを確認するのが面倒臭い。

また、コンテナを破棄すると、今までのログも破棄してしまうため、運用環境では外部のログ保存ソフトウェアにログを送って保存します。Docker Composeではlog driverを利用することで、fluentdやAWS、GCPにログの送信・保存を行うことができます。

現在アプリケーションはAWSで運用しているので、以下の1〜3を行い、AWS CloudWatch Log

元記事を表示

AWS Cognitoで認証したユーザのID トークンを Java で検証する

## やりたいこと

[AWS Amplify の Authentication](https://aws-amplify.github.io/docs/js/authentication) で認証したクライアントが id_tokenをサーバに送信し、Javaで実装したサーバで id_token を検証します。

## TL;DR

– 発行者(ペイロードのiss) が対象にしている Cognitoのユーザプールであることを確認する。
– 署名の検証は https://github.com/auth0/java-jwt に丸投げ。
– com.auth0.jwt.JWTVerifier はスレッドセーフなのを前提にして、Cognitoが署名に使用した RSA鍵ペアを取得する回数を減らすために自前でキャッシュする。

## 実装

IdTokenValidator.java

“`Java:IdTokenValidator.java
package com.exampleawsCognito.jwt;

import j

元記事を表示

LaravelをAWSのEC2へデプロイしてみた

##前提
+ 2020年1月4日に確認したものです。
+ AWSのアカウント作成済
+ プロジェクトをGitHubにpush済

##環境
+ macOS Catalina 10.15.2
+ Apache 2.4
+ PHP 7.1.33
+ MySQL 5.7
+ Laravel 5.8

#1. EC2インスタンスの起動
+ EC2コンソールで作成(「[公式チュートリアル](https://aws.amazon.com/jp/getting-started/tutorials/launch-a-virtual-machine/)」が分かりやすかったです)
+ 基本的に無料利用枠(下記の項目以外はデフォルト値)

| 設定項目 | 設定した内容 |
|:-:|:-:|
|Amazon マシンイメージ (AMI) |Amazon Linux 2でなく、Amazon Linux|
|インスタンスタイプ | t2.micro |

+ **Linux2だと、手順が異なる**([公式ドキュメント](https://docs.aws.amazon.com/ja_jp/AWSEC2/

元記事を表示

AWSメモ

# AWSメモ

### 初期設定
AWSのアカウントを作成できる
料金アラート設定

###VPCネットワークを構築

– 全体像
– パブリックサブネット(ワードプレス等)とはインターネットと通信できるサブネットのこと。一般的にブラウザで展開される申し込みフォームのWebサーバー等
– プライベートサブネット(DB等)とはインターネットと通信できないサブネットのこと。

– AWSネットワークの概念
– リージョンの選択
– リージョンによって使えるサービスが異なる(アメリカが機能大い、日本の場合は東京がおすすめ(通信が早い))
– アベイラビリティゾーン
– 独立したデータセンターのこと
– 複数設置されている
– VPC
– インターネット上に仮想ネットワークを作成できるサービス
– とても重要なサービス
– サブネット
– VPCを細かく区切ったネットワーク

– ネットワークのIPアドレスを決める

– IPアドレスとはインターネット上の住所
– 一意性
– 32ビットの整数値(2進数)

元記事を表示

技術ブログはじめました

みなさん、はじめまして!
音楽とアニメとハイボールが大好きな Web エンジニアの [yasu](https://fav-music.tokyo/author.html) と申します!

このたび、超個人的嗜好で厳選したお気に入りの音楽を [Apple Music](https://www.apple.com/jp/apple-music/) のプレイリスト形式で紹介していく音楽ブログ「[Fav Music](https://fav-music.tokyo/)」の構築・運用過程で得た技術的知見を [qiita](https://qiita.com/hysh8392/) にアウトプットさせていただくことにしました。

僕がここでアウトプットした技術情報がいつか誰かの助けになったら嬉しいです 🙂

今回はご挨拶がわりに僕が [Fav Music](https://fav-music.tokyo/) を構築・運用するために使用している技術や製品をご紹介させていただきます。

なお、[Fav Music](https://fav-music.tokyo/) の全てのソースコードは [GitH

元記事を表示

AWS+NodeJSでサーバレスな環境構築④

# はじめに
今回は[前回](https://qiita.com/isacRU/items/b4ab67d12f2d2377aea8)の続きで、DELETE(対象ユーザーの削除), GET(全ユーザーの取得) PATCH(対象ユーザーの更新)を作っていきます。

# DELETE(対象ユーザーの削除)
指定されたidを元に、対象のユーザーが削除されるようにしていきます。
### Lambda関数の作成と設定
スクリーンショット 2020-01-04 15.20.08.png

ソース

“`javascript:index.js
‘use strict’;
const AWS = require(‘aws-sdk’);
const myRegion = “us-east-2”;

AWS.config.updat

元記事を表示

Fargate及びECSでコンテナからAWSのIAM認証を利用する

## 概要

AWSでコンテナを利用する場合、FargateやECSが候補に上がると思います。
コンテナからAWSの各種サービスを利用する場合、IAMのCredentialsを利用する必要があります。
いつも意識せずに利用しているIAMですが、裏ではどういう構成になっているのか確認していきます。

## 確認方法

Fargateでsshできるようにして、コンテナ内でCredentialsを探します。

Fargateでsshするには以下の記事を参考にしてください

– https://qiita.com/pocari/items/3f3d77c80893f9f1e132
– https://qiita.com/ryurock/items/fa18b25b1b38c9a0f113
– https://qiita.com/fnaoto/items/c980efa39c2b1597331e

## 結果

Fargateでは`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`という環境変数にCredentialsへのファイルファイルパスが入っているようです。

元記事を表示

【AWS完全に理解したへの道】VPC 基本編

[【AWS完全に理解したへの道】 IAM 基本編](https://qiita.com/y-u/items/cef40fd249947687810e)
に続く、VPC 基本編(項目の然るべき順序的なものは後で整理するかも)

## VPCの作成
ある特定のリージョンを選択してプライベートネットワーク空間を作成する。
プライベートネットワーク空間は /16(65,536個のIPアドレス)から /28(16個のIPアドレス)のCIDR(Classless Inter-Domain Routing)ブロック範囲で作成できる。

VPCを作成する場合は、[RFC1918](http://www.faqs.org/rfcs/rfc1918.html)に指定されているように、以下のプライベートIPv4アドレス範囲からCIDRブロックを指定することを推奨されている。

* 10.0.0.0 – 10.255.255.255
* 172.16.0.0 – 172.31.255.255
* 192.168.0.0 – 192.168.255.255

## サブネット作成
サブネットを作成時、AZごと

元記事を表示

AWS+NodeJSでサーバレスな環境構築③

# はじめに
[前回の記事](https://qiita.com/isacRU/items/f5a16683331779805a1b)ではDynamoDBのテーブルと項目作成、Lambda関数で使うロールやインラインポリシーの設定を行いました。今回はその続きで、API Gateway(REST APIでCRUD実装)をトリガーにし、Lambda(NodeJS)関数呼び出して、DynamoDBに参照や更新をできるようにします。
表現等が不適切の場合はご指摘いただければ、幸いです。
※サーバレスに関してよくわからない方は、[こちら](https://qiita.com/isacRU/items/fe4751603d3da32b2daf)をご覧いただければと思います。

# アーキテクチャ図
![serverless.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43096/d77beb25-d5cd-0908-9502-7645b2c76bdb.png)

# 流れ
– ソースで直接(Api gatewa

元記事を表示

OTHERカテゴリの最新記事