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

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

【待望】EKSでワーカーノードのプロビジョニングがサポートされた

# 概要
EKSで使用するワーカーノードのプロビジョニングおよび管理を、EKSのサポートとして対応されたことが2019年11月18日にAWSから発表されました。
つまり、自前でEC2を管理する必要がなくなります。これは超待望。
https://aws.amazon.com/jp/about-aws/whats-new/2019/11/amazon-eks-adds-support-for-provisioning-and-managing-kubernetes-worker-nodes/

# 従来のワーカーノードの管理方法
ワーカーノード用EC2のプロビジョニングはオートスケーリンググループを用意するなどの方法で行う必要がありました。
つまり、EC2の管理とEKSの管理は別々でした。

さらに、オートスケーリンググループを使った場合は下記の設定をする必要がありました。

* クラスターオートスケール用の設定を自身で行う
* EC2起動時のuser dataにEKSクラスタと紐付けるスクリプトが必要

# 今回のアップデート内容
EKSにNodeGroupという概念が登場しました。
!

元記事を表示

AWS CloudFormationをちょっとだけ理解した

やっとなんとなく意味がわかってきたCloudFormation。AWSのインスタンスやいろんな設定を簡単にデプロイできるツール、みたいな説明はいっぱい見かけるけど、覚えないといけない仕組みが増えただけでaws cliでできることとなにが違うのかがいままでよくわからなかったのです。

理解した内容は、

1. CloudFormationは冪等性を担保しやすいこと
2. 複数のリソースを一括で管理できること

詳細

1. インフラ構築をaws cliでがんばってスクリプト化しても「Infrastructure as Code」は実現できるかもしれないが、aws cliではcreateなんちゃら系をするコマンドは2回目以降にエラーになっちゃったりして、きちんと動くようにするにはいろいろ大変。CloudFormationであれば記述をシンプルにできるし、何度実行しても最新の記述に更新できる冪等性を実現できます。

2. EC2とRDSの組み合わせなど複数のリソースからなる一連の仕組みを一発で作れるだけでなく、削除も簡単です。EC2やRDSなどのリソースをCloudFormationのスタッ

元記事を表示

pymysqlでRDS(Aurora)にIAM認証でアクセスする

mysql.connectorの例しか見つからなかったので、pymysqlで接続する場合のサンプルを上げておきます。

“`python:
import boto3
import pymysql

# RDSの情報をセット
RDS_HOST =
RDS_USER =
RDS_PORT =
RDS_REGION =
RDS_DATABASE =

rds = boto3.client(‘rds’)

def create_connection():
# 認証用のトークンを設定
password = rds.generate_db_auth_token(
DBHostname=RDS_HOST,
Port=RDS_PORT,
DBUsername=RDS_USER,
Region=RDS_REGION
)

connection = pymysql.connect(
host=RDS_HOST,
user=RDS_USER,
pas

元記事を表示

エンジニアが披露宴の余興を頼まれたら

先日、知人の結婚披露宴にて初めて余興というものを依頼され、なんとか乗り切ったのでその時のこと。

# どうしよう
なにか持ちネタがあるわけでもない。
歌や踊りが達者なわけでもない。
ムービーは多少作れるけど、新婦側の余興でやるらしい。。

プログラミングしかない!!

# やったこと
**『HAPPINESS SCOUTER(ハピネス スカウター)』**

LINEで写真を送ると、写っている人の表情を認識して**『幸せ戦闘力』**を測定します!!というもの。
([前回の記事](https://qiita.com/keeey999/items/3f3975770bba1ce19817)で書いた、Amazon Rekognitionを使用したLINE BOTの延長です)

送ってもらった写真の一覧と詳細を見れるページも作成し、
一覧ページでは幸せ戦闘力のランキング形式で表示するようにしました。

LINEの画面
57899.jpgAWS Amplify を使って WEB アプリを実装してみた(プロジェクト作成編)

# はじめに
[AWS Amplify を使って WEB アプリを実装してみた(環境構築編)](https://qiita.com/morio1101/items/368564dc92423c96d06c)にて環境構築を行ったので、amplify + vue のプロジェクトを作成していきます

目標を決めないと作りこみに支障が出そうなので、 Cognito を使った認証アプリ(中身は結局未定)を作成したいと思っています

# 開発環境
* Windows 10
* nodist(nodeのバージョン管理)
* node 12.13.0

# 実装編

## バックエンドの作成

認証機能を作るために、init を実行したディレクトリ配下で以下のコマンドを実行する

“`
amplify add auth
“`

対話式で設定を聞かれるので設定を行っていくと以下のようになる

“`
Do you want to use the default authentication and security configuration? Defau
lt configuratio

元記事を表示

AWS上でタイムゾーンを取得するとUTCになる

AWS EC2でタイムゾーンを取得すると全てUTCになる。

“`python
# EC2上でPythonを使ってタイムゾーンを取得
>>> from tzlocal import get_localzone
>>> get_localzone()

“`
この現象はAWSのデフォルトの設定がUTCとなっているため起こるらしい。
タイムゾーンは以下のファイルで設定されている。
/etc/localtime

“`
$ strings /etc/localtime
TZif2
TZif2
UTC0
“`

取得したいタイムゾーンが決まっている場合、
「[AWSのタイムゾーン設定でハマった件](https://blog-s.xchange.jp/?p=684 “AWSのタイムゾーン設定でハマった件”)」をに設定の変更方法がわかりやすく記載されていました。:smile:

もしWebアプリケーションにEC2を使用していて、
ユーザーの現在地のタイムゾーンを取得したい場合はフロント側で時間を操作するしかない:thinking:?
もしいい方法があれば教えてください。:bo

元記事を表示

Serverlessのwebpack.config.jsを読む

この車さ、自動運転だからさ、なーんもしなくても目的地までいけるから安心して!
と免許もない人が車に押し込まれたとします

「へーそうなんだ」と乗って「楽チン楽チン」と楽観的な人もいれば、「無理無理無理無理、動かし方一応わかってないと!」という人もいるんじゃないでしょうか
僕は後者のようです

というわけで、sls createすりゃwebpackの設定ファイルだのデプロイ設定だのデプロイすりゃCloudFormationだの作ってくれちゃったりやってくれるServerless Frameworkですが、理解せずともいろいろできている状態はムズムズしていたのでまずは手始めにwebpack.config.jsを読みます

## バージョン
Serverless v1.53.0
node v10.13.0

## Serverlessのテンプレート
AWS
TypeScript

`$ sls create -t aws-nodejs-typescript -n app_name -p path`

できあがるwebpack.config.jsがこちら
↓↓↓↓↓↓↓
## webpack.

元記事を表示

【AWS EC2】`find_spec_for_exe’: can’t find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)

#あなたのターミナルにはこのようなエラーが出ていますか?
“`console
[ec2-user@ip-XXX-XX-XX-XXX xxxxxx]$ bundler -v
Traceback (most recent call last):
2: from /home/ec2-user/.rbenv/versions/2.5.1/bin/bundler:23:in `


1: from /home/ec2-user/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path’
/home/ec2-user/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe’: can’t find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)
“`

#入力するコマンド
“`console
$

元記事を表示

AWS Cloud9 + API Gatewayで簡単API

#AWS cloud9でAPIを作成
今回はgoogle tts APIを叩いて
音声ファイルを返信するAPIを作成します
AWS lambdaを直接いじると npmパッケージが読み込まれずめんどくさいので
Could9越しに使うのが良さそうです
ソースコードはこちら
https://github.com/freddiefujiwara/aws-lambda-tts

## 仕様
###Input

| Parameter | 説明 | 例 |
|:—————–|——————:|:——————:|
| q | 音声にしたい文字列 | 我是日本人 |
| tl | 対象言語コード| zh-cn |

###Output

“`javascript
{
“statusCode”: 200,
“body”: “https://translate.googl

元記事を表示

ConverTo-JsonしたポリシードキュメントがWrite-IAMGroupPolicy : The policy failed legacy parsing

メモ。AWSのポリシードキュメントをハッシュから `ConverTo-Json` で生成するときは `Version` キーが最初に来るように注意する必要がある。

# 現象

PowerShellで次のようにポリシーを設定しようとすると…

“`
PS> $policyDoc = ( @{
>> “Version” = “2012-10-17”;
>> “Statement” = @{
>> “Effect” = “Allow”;
>> “Action” = “sts:AssumeRole”;
>> “Resource” = $RoleArn
>> }
>> } | ConvertTo-Json )
PS> Write-IAMGroupPolicy -GroupName $GroupName -PolicyName $PolicyName –

元記事を表示

HerokuからAWSに本番環境を移行する際に詰まったこと。

# はじめに
MAMP環境で作成したLaravelプロジェクトをHerokuにデプロイしてたのですがAWSの学習をかねて本番環境を移行してみました。

#環境
– 開発環境
– PHP 7.3.6
– Laravel 5.8.35
– MAMP
– 本番環境
– Heroku
– 移行する本番環境
– AWS
– EC2(Amazon Linux 2 AMI)
– RDS(MySQL)

# 詰まった点
EC2にプロジェクトをgit cloneしブラウザでプロジェクトが開ける状態が出来、RDSのMySQLに

“`
php artisan migrate
“`
コマンドでテーブルを作成できたら完成!、、というところでエラー発生

“`
Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables where table_schema =

元記事を表示

インフラ未経験からAWS試験を受けたから勉強方法などまとめてみたよ

AWS 認定ソリューションアーキテクトアソシエイト試験を受けてきたので、合格に至るまでの勉強方法、コツを書いていきたいと思います。

## おしながき
– 勉強時間の目安
– ハンズオンについて
– 座学について
– 参考書について
– インフラ未経験の方へ
– 問題集について
– 問題を解く際の考え方
– 本試験について
– まとめ

### 勉強時間の目安
僕自身まったくAWSやインフラのことを知らないレベルから、ハンズオンで実際にAWSでネットワーク構築した期間が約1か月間、座学が1か月間(約90時間弱)で試験に臨みました。かなり集中的にAWS、SAA試験にフォーカスして過ごした2か月という感じでしたので、標準的には、 **ゆったり3か月くらいの学習** というのが無理もなく取得できる目安ではないかと個人的に感じました。

### ハンズオンについて
ネットにはハンズオン無しでも合格された方の体験記もちらほらありますが、個人的にはAWSアカウントを取得して実際にネットワーク構築や各サービスを触ってみることをオススメします。単純に理解度が増しますし、解答の際に説得力が出るからです。

元記事を表示

Nuxt.js(SSR)をLambdaで配信する【個人開発】

## 概要
Qiitaのストックを整理するためのサービス「Mindexer(ミンデクサー)」のフロントエンドを
Vue.jsで構築したSPAのアプリケーションからNuxt.jsでSSRを行うように再構築しました。

LambdaでExpressサーバーを動かし、その上でNuxt.jsを動かしています。
この記事では、今回の開発で得られたNuxt.jsに関するTipsやインフラ構成などについて解説していきたいと思います。

なお、Vue.jsからの移行に関する解説は含みません。

## サービスについて
「Mindexer(ミンデクサー)」については、こちらの記事で解説しています。
バックエンドで利用している技術についても解説していますので、合わせてご覧いただけると嬉しいです。

[:link: AWS + Laravel + Vue.js でQiitaのストックを整理するサービスを作りました!【個人開発】](https://qiita.com/kobayashi-m42/items/14e137727ffda3bf79e7)
[:link: 個人開発のインフラをEC2からFargate

元記事を表示

【AWS EC2】ログインしようとすると@@WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!@@

#あなたのターミナルにはこのようなエラー が出ますか?
AWSのEC2にログインしようとするとこのようなエラーが出ました。

“`console
$ ssh -i *****.pem ec2-user@XX.XXX.XXX.XXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprin

元記事を表示

ALB配下のEC2を半分ずつ切り離しながらシェル一撃でデプロイする

# やりたいこと
ALBのTarget Group配下に複数のEC2インスタンスが登録されている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9038/0192763d-87f9-4344-3047-244417c8af8d.png)

インプレースなデプロイなど、ユーザに影響を与えないように半分ずつ切り離しながら処理したいことがある。
これをシェルを使って一撃で実施したい。(jenkinsで1クリックのイメージ)

# 処理の流れ
AWS CLIを使って、Target Groupから半分ずつ `切り離し -> デプロイ -> 再登録` を2度繰り返す。Target Groupは以下の通りステータス遷移するため、それぞれ待機する。
[参考: ターゲットヘルスステータス](https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/target-group-health-checks.html#ta

元記事を表示

AWSで2FAを強制する(メモ)

最近AWSのユーザー管理をする機会が多く、よく使うのでメモ

## Policy

`Force_MFA` (任意の名前)のPolicyを作って、ユーザー(group)につける

“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “AllowViewAccountInfo”,
“Effect”: “Allow”,
“Action”: [
“iam:GetAccountPasswordPolicy”,
“iam:GetAccountSummary”,
“iam:ListVirtualMFADevices”,
“iam:ListUsers”
],
“Resource”: “*”
},
{
“S

元記事を表示

hands on SSRF(Server Side Request Forgery)

#OWASP Nagoya
**Little Deep Dive AWS Security**
by 田中隆博 氏
AWS Solutions Architect
ラーメン好き

**テーマ**
Capital One で発生した情報漏洩事象を題材に、Server Side Request Forgeryを利用したクラウド上のメタ情報の窃取手法について

*Capital Oneの漏洩事例*

Slack Channel へ投稿
>I’ve basically strapped myself with a bomb vest, f—ing dropping Capital One dox and admitting it. I wanna distribute those buckets …There’s SSNs..with full name and [date of birth].
Paige A. Thompson

・・・そして発覚
2005年から2019年にかけてクレジットカードの申請をした人など、1億600万人分の個人情報が不正アクセスをうけた事が判明。

[Matt

元記事を表示

25歳専門新卒がSESに就職して半年が経ち、転職を決意。

【専門学校時代の経歴】

システム開発コースを専攻。

・1年次
4月~10月 基本情報技術者試験の勉強。『不合格』
11月~2月 Javaオラクルブロンズの勉強。『合格』
3月~   基本情報技術者試験の勉強。『合格』

・2年次
4月~7月 Javaオラクルシルバーの勉強。『合格』
7月~10月 応用情報技術者試験の勉強。『不合格』
11月~3月 卒業研究 

※C言語、C#、Javaでプログラミングもやってました。

【入社してからの経歴】

4月~6月 入社式当日運用部署に配属決定。
     3か月間の意味のない研修のスタート。

素直に「は?」って思いました。システム開発希望で入社してたので意味が分からなかったですね。
研修はほぼ自習勉強でしたね。時間の無駄です。

7月~11月 常駐先決定。

金融システムのサーバ保守業務。

とりあえず、やりがいがありません。

配属ガチャ、案件ガチャ共にハズレを引きました。人によっては良いかもしれませんが、5年後10年後のキャリアアップを見据えてやりたい事があったので個人的にはハズレです。

いかんせん、サーバの保守に興味が持てません

元記事を表示

【AWS EC2】mysqlにログインできない時最後に見る記事 for mac【凡ミス系】

#コトの顛末
パスワードが間違っている地獄に陥り、探っている中でOSの罠のような事案が発生。
パスワード設定の仕方のプロセスに罠があり、ハマってました。

#こんな注意文言が出ました。
まずはじめに、mysqlのパスワードを設定した時に

“`console
$ sudo /usr/libexec/mysql56/mysqladmin -u root password ‘xxxx’
Warning: Using a password on the command line interface can be insecure.
“`
Google翻訳するとこんな感じの返答がきました。

**警告:コマンドラインインターフェイスでパスワードを使用することは安全ではありません。**

私はこれを「直打ちするとミスるからやめようね」って意味だと思って、
メモ帳でパスワードをシングルクォーテーション内に入れたコマンドをあらかじめ作ってペーストするコトで**安全**なんだって思ってました。

本来の意味は**「直に書いていることがセキュアじゃない!!というWarningで、パスワードの部分をc

元記事を表示

IT初心者が1ヶ月でAWSアソシエイトレベル3冠とってみたよ.

はじめまして.IT初心者のAllenieです.拙著ではありますが,IT経験歴1年ちょっとの私がAWSアソシエイト3種に1ヶ月程度で合格した体験記を書きました.

これからAWS資格勉強を始める方,IT苦手だけど資格を取らなければならない方のお役に少しでも立つことができたなら幸いです.

# はじめに

## 前提

タイトルで「IT初心者」と述べました.どのくらい初心者かと言うと,

– IT歴:1年程度
– AWS歴:6ヶ月程度
– Java歴:6ヶ月程度

といった感じです.AWSについては6ヶ月と書いていますが,資格勉強前の経験はVPC構築+EC2構築をしたことがある程度でした.(仕事でPOC用にAPサーバを作った程度)

そもそもの話で,新卒で現在の会社(IT)に入社したのですが,大学院では紙とペンだけで物理学の研究をしていました.というのも,機械が苦手・PCが苦手・プログラミング嫌々症候群だったからです.

つまるところ,今の会社に入るまで,ITなるものに文字通りノータッチで生きてきたわけです.資格勉強開始時点では,至極当然のように使われるIT専門用語はチンプンカンプンな状態

元記事を表示

OTHERカテゴリの最新記事