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

AWS関連のことを調べてみた2020年04月20日
目次

EC2でのJupyterコンテナの使い方

最近、AWSのEC2を使ってJupyterのDockerコンテナへアクセスすることが増えてきたので、最低限必要なコマンドについてメモ。

# 1.EC2への接続
EC2インスタンスへのssh接続。
オプション`-i`でキーの指定。`-L`でポートフォワーディング。Jupyterは初期で`localhost:8888`が設定されているので、そのまま参照。

“`{bash:ホスト}
$ ssh -i sshキー -L 8888:localhost:8888 ec2-user@パブリックDNS
“`

# 2.イメージのpull
インスタンスを新しく開始した状態だとDockerが動いていないので起動させる。

“`{bash:EC2}
$ service docker start
directing to /bin/systemctl start docker.service
“`

Docker Hubから使いたいイメージをpullする。今回はall-spark-notebookを引っ張ってくる。

“`{bash:EC2}
$ docker pull jupyter/all-

元記事を表示

EC2インスタンスのスナップショットを作成する方法

# インスタンスを停止する
1. 対象のインスタンスを選択する
1. [アクション] > [インスタンスの状態] > [停止]

# EBSボリュームを選択する
1. 対象のインスタンスを選択する
1. インスタンスの詳細に表示される[ルートデバイス]リンクからポップアップを表示する
1. [EBS ID]リンクからEBSボリュームの画面を表示する
– この時点で対象のボリュームが選択された状態になっている

# スナップショットを作成する
1. [アクション] > [スナップショットの作成]から作成画面を表示する
1. [説明]を入力する(任意)
1. [クリックしてNameタグを追加します]リンクから[Name]タグを追加してインスタンスの[Name]タグの値など後で何のスナップショットかわかるようにする(任意)
1. [スナップショットの作成]ボタンでスナップショットを作成する

元記事を表示

AWS操作練習②(SystemsManagerパッチ配信設定)

前回「[AWS操作練習①(アカウント作成>VPC作成>EC2起動>CloudWatch監視設定実施)](https://qiita.com/gomasa/items/2794f51ef66800b64750)」の続きとなります。

#■■ 筆者情報 ■■
・AWSの資格試験はプロフェッショナルまで取得済。
・AWSの操作経験は初心者並み。
・理論は解っていても操作は解っていない状況。
※資格試験取得に興味のある方は[「AWS認定試験の勉強方法](https://qiita.com/gomasa/items/6ce860a2e11a620c92ae)」を参照ください。

#■■ この記事を読んでほしい対象 ■■
・AWSの知識はある程度ついたので、AWS操作を一通り実施したい人。
・AWS公式ドキュメントをベースに手順を確認したい人。
※手順を簡単にまとめてくれているサイトも多々ありますが、可能な限りAWSの公式ドキュメントを読み解きながら確認を実施しています。その為、この記事のリンクの多くは公式ドキュメントに対して貼られており、どうしても公式ドキュメントのみだと解らない場合に、個人のH

元記事を表示

gitに脆弱性が!Updateしなきゃ! でもyumに最新版がないし、ソースから入れたらエラった!ときのメモ

### gitに脆弱性が!Updateしなきゃ! でもyumに最新版がないし、ソースから入れたらエラった!ときのメモ

git インストール linux編としても読めます。

現状(2020/04/20) の AmazonLinux Git最新Ver.[git-2.14.6-1.62.amzn1](https://alas.aws.amazon.com/ALAS-2020-1357.html)の模様。(ダメみたいですね

## 余談(Linux 以外の事)
– Windows は素直に[ここから](https://git-scm.com/).exeを使ってください
+ Update の場合は `PowerShell`からでも

“`css
git update-git-for-windows /*で一発*/
“`

– Mac は `Homebrew` 使えばいいんじゃないっすかねぇ(適当)
+ ついでに(あるなら) `Xcode` の Updateも必須
+ 尚、MacOSを Catalina にする必要がある。(El Capitanに人権はない)

## Li

元記事を表示

CloudFrontのLambda@EdgeでCORS設定

# はじめに
CORS設定ですが、とりあえず`すべてのドメインを受け入れる`を設定してみます。
# 手順
## CloudFront [Distributions]を作成する。
– [Behavior]の[Cache Based on Selected Request Headers]=`Whitelist`
– [Whitelist Headers] で [Origin]を選択し、`Add>>`
– [Lambda Function Associations]はとりあえず空っぽでOK
– [General]タブの[ARN]の値をコピっておく

## us-east-1でlambdaを作成する。
– 関数コードで[ランタイム]=`Node.js 10.x`を選んで下記を貼りつけて、[保存]

“`javascript:index.js
‘use strict’;

exports.handler = (event, context, callback) => {
const request = event.Records[0].cf.request;
co

元記事を表示

【超初心者用】AWS関連 略語・用語集【適宜更新】

# Overview
AWS周りの学習を進める中で、各種用語が散見され意味がパッと分からなかったので、整理する。
自分用のメモなので、全体的にゆるふわ。

# 略語集
AWS関連の略語

| 略語 | 正式名称 | 解説 |
| —- | —- | —- |
| AWS | Amazon Web Services | Amazonが提供する各クラウドコンピューティングサービスの総称 |
| EC2 | Elastic Computed Cloud | AWSクラウド上で仮想サーバ(インスタンスと呼ばれる)を実行するためのサービス |
| S3 | Simple Storage Service | AWSクラウド上にデータ・ファイルを保存できるサービス |
| EIP | Elastic IP| EC2インスタンスにパブリックIPアドレスを柔軟に付与できるサービス |
| AMI | Amazon Machine Image | EC2インスタンス構成を取得してテンプレートを作成するサービス |
| RDS | Relational Database Service

元記事を表示

【AWS Athena】エラー HIVE_BAD_DATA: Field label’s type {A} in parquet is incompatible with type {B} defined in table schema でハマった話

私がAWS AthenaおよびAWS Glueでメタデータの取り扱いでハマった話を共有いたします。

# ハマった経緯

1. parquetのデータをS3に配置する
2. Glueのテーブルを作成する
3. AthenaでSELECT文を実行するため、load partition()を実行しパーティションを読み込む
4. AthenaでSELECT文を実行する → parquet内でのデータ型の定義とGlueテーブルのテーブル定義に齟齬があるためエラーと表示される
5. テーブル定義を誤っていたことに気づきGlueのテーブル情報を修正する
6. AthenaでSELECT文を実行する → なぜかparquet内でのデータ型の定義とGlueテーブルのテーブル定義に齟齬があるためエラーと表示される(困惑)

# ハマった状況を再現

そのとき、ハマった状況を再現していきます。
まず、S3に配置するparquetをpysparkを使って作成する。

“`python
from pyspark.sql.types import StructType
from pyspark.sql.

元記事を表示

AWS Elastic Beanstalk の worker 環境でエラー検知する

AWS Elastic Beanstalk で実行時間が比較的長いタスクを処理したい場合、専用の worker 環境にタスクをオフロードすることができます。
この記事では worker 環境でのタスクの処理に失敗した際のエラー検知を設定する方法についてメモします。

## Elastic Beanstalk の worker 環境について

worker 環境は Amazon SQS キューからアイテムを取得するデーモンプロセスである sqsd と内部的に web サーバーを持つアプリケーションの2つで構成されます。
sqsd は取得したアイテムを `http://localhost:80` に POST し、アプリケーションにタスクを処理させます。
アプリケーションから 200 レスポンスが返ってくればメッセージをキューから削除し、 200 以外のレスポンスが返ってくればキューにタスクを積み直してくれます。

Screen Shot 2020-04-19 at 23.25.44.pngLambda統合とHTTP統合の違いを作って理解する

## 概要

AWSデベロッパーアソシエイトを受けていると、API Gatewayの統合タイプとして以下4つの違いを問われることがよくあります。

|統合タイプ|
|—|
|Lambda統合, Lambda非プロキシ統合|
|Lambdaプロキシ統合|
|HTTP統合, HTTP非プロキシ統合|
|HTTPプロキシ統合|

このうち、Lambda統合とHTTP統合の違いは以下の通りです。Lambda統合はよく構築する機会がありますが、HTTP統合を作る機会が少ないので、今回作ってみようと思います。

– Lambda統合:バックエンドとして、Lambda関数と統合する
– HTTP統合:バックエンドとして、EC2等で自作したAPIと統合する

なお、プロキシ統合と非プロキシ統合の違いについては、以下の記事が大変わかりやすかったので、参考にしてください。

– [API Gateway + Lambda プロキシ結合の使用有無による違い](https://qiita.com/yuuwatanabe/items/a3bd65e709f20574b6db)
– [[初心者向け] La

元記事を表示

AWS DeepRacer をやってみた!

AWS DeepRacerはご存じですか?
「AWS re:Invent 2018」の基調講演で発表されてから注目を集めています。昨年は今回は、**機械学習がほぼ素人**の筆者が、そんなDeepRacerの概要から、DeepRacerでの強化学習、実際に学習&評価してバーチャルで走らせるまでの手順を紹介してみます。実機での挑戦記もいずれ掲載できればと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610508/9e7363f3-87b7-89f1-4da6-84a3d5cd6564.png)
#AWS DeepRacerとは?
AWS社は、**「強化学習をすべての開発者に届けるためのサービス」**といった、キャッチコピーで表現しています。
DeepRacerは、**自律走行**を行う**レーシングカー**で、その走行エンジンに**機械学習モデル**が用いられています。
自分で作り上げたモデルは、コンピュータ上の**バーチャルレース**や、**現実世界での実機レース**での走行エ

元記事を表示

Amazon Redshiftの”、[バージョンアップグレードの許可] ”はCLIでないと無効化できない。

Amazon Redshiftには他のAWSマネージドサービスと一緒で、
内部コンポーネントの強制的なアップグレードが走る。

マネジメントコンソール上だと各クラスタを選択度の”メンテナンスとモニタリング”タブ内から
バージョンアップグレードの許可の現在設定値を確認できる。

※デフォルトのallow-version-upgrade(バージョンアップグレードの許可)はtrueなのでマネジメントコンソールで作成した場合は”はい”が初期値

上記のバージョンアップグレードは無効化したい場合はawscliでの操作が必要。

https://docs.aws.amazon.com/cli/latest/reference/redshift/modify-cluster.html

具体的には上記のドキュメント通り、

“`
awscli modify-cluster –cluster-identifier  ―-no-allow-version-upgrade
“`
で無効化できる。

ただ管理ガイドに記載の通り
https://docs.aws.amazon.com

元記事を表示

AWS Cloud9で開発環境を立ててみた

こんにちは!モリタケンタロウです!
今回はAWSのCloud9というサービスを使って、クラウド上に開発環境を構築する方法について紹介します。

# AWS Cloud9 とは?
非常に面倒くさがりの僕は、自分のPCに色んなエディタとかプログラミング言語とかをインストールするのが嫌だったので、コーディングも実行もデバッグも全部ブラウザで済ませたい!と思って見つけたのが、この「**AWS Cloud9**」というサービスです。
AWS Cloud9はブラウザのみでコードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE) です。[※詳細はコチラ](https://aws.amazon.com/jp/cloud9/)
ちなみに料金ですが、サービス自体の料金は無料!ただし、コードの実行やデータの保存で使うEC2(仮想マシン)やEBS(仮想ディスク)などのリソースには従量課金でお金がかかってしまうので要注意です!
![ec2price.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612211/3

元記事を表示

続) Elasticsearchで類似ベクトル探索 / 類似画像検索

([目次はこちら](http://qiita.com/kumonkumon/items/6fd05963df92e9eec8c0))

#はじめに
[前回の記事](https://qiita.com/kumonkumon/items/a18b157f1888f1edd8f2)では、1,280次元の画像特徴ベクトルを約100万用意し、Amazon Elasticsearch Serviceに投入したが、レスポンス時間が15秒/クエリという実用からは程遠い結果が得られた。ありがたいことに、Amazon ES Teamからアドバイスを頂いたので、それに沿って再度検証を行った。

この手順にについてはElasticsearchに長けている人であれば、ささいなことなのかもしれないが、実サービスでElasticsearchを運用した経験がない私にとっては有用だった。

#Segments
前回のElasticsearchからのレスポンスを見てみると、`hits`が1,203であることがわかる。このとき、近傍10ベクトルを検索していたので、`k=10`であったので、少なくとも120のElastics

元記事を表示

COBOLをとにかく動かしたい(AWS、opensourceCOBOL)

#概要
こんにちは。とあるIT企業の社員です。
今回は、あるイベントをきっかけに、
とにかくCOBOLプログラムを動かしたい、と思い、やってみました。。

AWSのLinux環境でCOBOL実行環境を導入し、以下のサンプルプログラム(HelloKazuoji.cbl)の動作を確認しました。
(簡単なサンプルを動かしたり、COBOL基礎の勉強できるくらいの簡単な環境です。)

記事を書くを目的は以下であり、正しいかどうかは保証しません。
1. 自分自身の理解
2. 自分自身の達成感
3. 自分自身の備忘
4. 同じ目的をもつ方へのTips

“` cobol:HelloKazuoji.cbl
IDENTIFICATION DIVISION.
PROGRAM-ID. hellokazuoji.
**************
ENVIRONMENT DIVISION.
**************

元記事を表示

【2020年最新】AWSでPublic DNS(パブリックDNS)が割り当てられない時の解決法

下記記事が参考になりました。
https://qiita.com/sunadoridotnet/items/4ea689ce9f206e78a523

##コンソールを使用してVPCの設定を更新する

やることは変わらないのですが、AWSの画面の配置、言葉が微妙に変更されていました。

1.Amazon VPCコンソール(https://console.aws.amazon.com/vpc/ )にアクセス。
2.画面左枠のVPCをクリックする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568461/4323be92-d4cd-fc8a-fb0a-2a40dd5d1abd.png)

3.自分が使っているVPCを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568461/c13c4ca3-6dbf-d49b-2b01-50789d34bbb6.png)
画面下についてる説

元記事を表示

セキュリティグループ【AWSクラウドプラクティショナーその8】

# セキュリティグループ

## 概要
+ 複数のインスタンスに対するトラフィックを制御するための仮想ファイアウォール。
+ オンプレの場合はひとつのファイアウォールでサーバーアクセスを集中管理するのに対し、セキュリティグループはインスタンスごとに設定ができる。

## セキュリティグループの設定
1. 許可ルールの指定
+ セキュリティグループでは、インスタンスアクセスの「**許可ルール**」を指定できる。
+ 但し、**拒否ルールを指定することはできない**。
 
2. トラフィックのルール指定
+ インバウンドトラフィック、アウトバウンドトラフィック**それぞれに対して「許可ルール」を設定できる**。
+ デフォルトではすべてのアウトバウンドのみ許可となっている。
+ トラフィックはステートフルになる。
+ そのため、インスタンスからのリクエストに対するレスポンスは、インバウンドセキュリティグループの設定に関わらず許可される。

元記事を表示

IAM【AWSクラウドプラクティショナーその7】

# IAM

## IAMとは
+ AWS Identity and Access Management
+ 通常はルートアカウントではなく、IAMを利用する。

## ユーザーとグループ
+ IAMユーザーを作成できる。
+ 複数のIAMユーザーをIAMグループとして管理できる。
+ IAMユーザーまたはIAMグループ単位で権限(IAMポリシー)の設定ができる。
+ 権限設定は「許可」と「拒否」が可能。両方ある場合は拒否が優先される。

## APIキー
+ IAMユーザーに対し、2つまでのAPIキーを発行できる。
+ 新旧キーを入れ替える運用のために2つまでとなっている。
+ 但し、APIキーの利用は推奨されない。

## IAMロール
+ APIキーの代わりにIAMロールの利用が推奨されている。
+ IAMロールとAWSリソース(ex.EC2、Lambda)を直接紐づけることで、キー管理が不要となる。

元記事を表示

AWSクラウドのセキュリティ②【AWSクラウドプラクティショナーその6】

# AWSクラウドのセキュリティ その2

## セキュリティのベストプラクティス
ユーザーが責任を負う部分は、自ら保護を行う必要がある。

1. 転送中データの保護
+ マネージドでないサービスを利用する場合、サーバー上の通信は自由に選択可能。
+ データを保護するため、適切なプロトコルや暗号化アルゴリズムを選択すること。

2. 蓄積データの保護
+ 物理的な保護はAWSが行っている。
+ 蓄積データを出力した際はアクセスコントロールなどへの配慮が必要。
+ データの暗号化や、AWSの暗号化オプションを活用する。

3. AWS資格情報の保護
+ ルートアカウントは使用せず、IAMユーザーで必要最低限の権限コントロールを行う。

4. アプリケーションの安全性の確保
+ アプリケーションのセキュリティ対策を講じる。
+ 定期的な脆弱性診断・対策を行う。

## 第三者認証
+ AWSはセキュリティ等に関するさまざまな規格・規制に準拠している。
+ [AWS Artifact](https://aws.amazon.co

元記事を表示

【AWS】Route53で取得したドメインでアクセスすると「404 Not Found」が表示されてしまう

AWSにデプロイしたwebサイトに独自で取得したドメインからアクセスしようとしたらエラーで正常にアクセスできずにハマってしまったので、僕のインプットも兼ねて今回解決に至った解決策を共有したいと思います。

スクリーンショット 2020-04-19 1.42.13.png

# 結論
初めに結論から申しますと、今回のエラーの原因はRoute53で取得したドメインを本番環境のnginxの設定ファイル(nginx.conf)に紐付けする作業を行っていなかったために発生してしまいました。

# なぜドメインからアクセスできなかったのか?
nginxはserver_nameを見てどのサーバーに振り分けるのかを見ているようなので、nginxの設定ファイルであるnginx.confファイルの「server_name」にRout

元記事を表示

【AWS】VPC、サブネット作成のメモ書き、参考サイトやVPCのネットワーク作成

 AWSでVPC、サブネットを試しながら作った時に参考にしたサイトのメモ書きです。

##参考にしたサイト

[【AWS】EC2でWebサーバの構築 – VPC作成 -【Nginx】](https://swallow-incubate.com/archives/blog/20191108/)
・こちらを参考にして、VPC、サブネット、ルートテーブル、インターネットゲートウェイを順に作ってみた。
・削除する場合、反対にインターネットゲートウェイ、ルートテーブル、サブネット、VPCの順に削除した。
(*VPC内のEC2やセキュリティグループとか、ルートテーブルとサブネットの関連付けなどを解除しないと削除できないかも)

[動画で学ぶAWS講座 VPC編 【section1】 リージョン, アベイラビリティゾーン, サブネット](https://www.youtube.com/watch?v=aQpMBqn5mRY)
[動画で学ぶAWS講座 VPC編 【section2】 ルートテーブル, プライベートサブネット, パブリックサブネット](https://www.youtube.com/wa

元記事を表示

OTHERカテゴリの最新記事