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

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

aws-session-token を取得して環境変数に入れるシェルスクリプト

# aws-session-token を取得して環境変数に入れるシェルスクリプト
## 経緯
AWS のIAMでは設定で[MFA認証を強制させるポリシー](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html#tutorial_mfa_step1)を作成することができます。
AWS CLIから利用する際にはコンソールから発行できるアクセスキー(アクセスキーとシークレットキー)を`~/.aws/credentials` に発行されたキーを登録して利用します。しかし、MFAを設定している場合には、このアクセスキーを利用して[一時的なトークンを取得](https://aws.amazon.com/jp/premiumsupport/knowledge-center/authenticate-mfa-cli/)し、これを利用してCLIを利用することになります。

いちいち取得した変数を登録するのが面倒だったため関数を作成してbashrcに追加して

元記事を表示

/etc/selinux/configについて

#/etc/selinux/configとは?
SELinuxについて設定するファイル

##SELinuxとは?
OS管理下のリソースへアクセスすることを監視・制御するところ
なので、/etc/selinux/configとは、OSリソースへアクセスすることを制御するところを指します。

##確認するには?
###getenforceコマンドの利用
現在のSELinuxの状態が表示されます。

“`
# getenforce
Permissive
“`
| 表示 | 説明                      |
|:——————|:—————————————————-|
| Enforcing | SELinuxのポリシールールが強制されている状態     |
| Permissive | SELinuxのポリシールールが強制されておらず、 DACルールのみ利用されている状態  |
| Disabled | SELinuxが無効

元記事を表示

LambdaでElasticsearch Serviceの手動スナップショットを取得する仕組みをCFnで一括デプロイ

Amazon Elasticsearch Service (AES) で手動スナップショット取得の仕組みをCloudformationで一気にデプロイします。かつCurator使って古いスナップショットは自動的に削除する設定になっています。スナップショット取るだけで意外に大変です。

PythonスクリプトはこちらのAWSのドキュメントにあるものベースにしてます。

https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/curator.html

# やりたいこと
これを作ります。スクリプトはAWSのドキュメントにあるものを、ほぼそのまま使っているので、読めばすぐわかるレベルだと思います。コメントも残ってます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116068/fd25ed74-896a-60f6-77fb-fc1ebf2bd53f.png)

# 手動スナップショ

元記事を表示

【AWS EC2】$sudo vim /etc/nginx/conf.d/rails.conf 書き込みできない

#vimでrails.confの修正→保存

“`console
[ec2-user@ip-XXX-XX-XX-XXX ~]$ sudo vim Z/etc/nginx/conf.d/rails.conf
“`
上記のコマンドでvimにてrails.confに加筆し、いざ保存!というときに保存できない!
となった場合は下記のコマンドを入力して、権限を与えてください。

#使用するコマンド
“`console
[ec2-user@ip-XXX-XX-XX-XXX ~]$ sudo chown ec2-user /var/www/
“`
再度下記のコマンドでrails.confにアクセスし加筆保存すれば、編集できるはず!

“`console
[ec2-user@ip-XXX-XX-XX-XXX ~]$ sudo vim Z/etc/nginx/conf.d/rails.conf
“`

元記事を表示

aws-vaultの初回パスワードを忘れた時

# 背景
aws-vaultを初回起動したとき、キーチェーンのパスワード入力が求められる。
その際のパスワードを忘れてしまうと、aws-vaultが使えなくなるため、
パスワードを消して初期化したい。

# コマンド
“`
rm ~/Library/Keychains/aws-vault.keychain-db
“`
上記dbファイルにパスワードが格納されている模様なので、それを消せば初期化できる。

# 参考
https://github.com/99designs/aws-vault/issues/171

元記事を表示

知識0の大学生でも出来る「はじめてのきかいがくしゅう」 – AWS SageMaker

#筆者の背景
Amazon? あーあれね、通販アプリね、知ってる知ってる。
少し前までAmazonに対する知識なんてその程度であった。
当然、AWSなど知る由もなかった。

情報学部生として恥である。

しかし、大学3年生の現在、研究室に配属された事でAWSというモノを知った。
また、この時期偶然にも巷で話題の[「中田敦彦のYouTube大学」](https://www.youtube.com/channel/UCFo4kqllbcQ4nV83WCyraiw)にハマっており、
動画を視聴する中で、丁度同じくらいのタイミングでAWSというクラウドサービス
があるという曖昧な知識くらいは得ていた。

☟ 筆者がAWSの存在を認識する事になった動画、このブロックチェーンという
  技術も非常に興味深かった。
キャプチャ.PNG[AWS]インスタンス起動時にIPアドレスを自動でRoute53に登録する

# Elastic IP をケチりたい

たまにしか起動しないインスタンスに Elastic IP をアタッチするのはもったいない。といって、起動するたびにIPアドレスが変わるとホスト名でアクセスできなくて面倒くさい。

……というテーマで以前、[記事](https://qiita.com/keys/items/264a64c2841875d51cdd)を書きました。

今回はそれを推し進めて CloudWatch Event でインスタンスの起動を監視して、起動したら自動でIPアドレスを Route53 のAレコードに登録する、という Lambda を書きました。これでEIP(と無駄な支出)とはおさらばだ!

あと、余計かもしれないけどインスタンスを停止したときにレコードを削除するようにしてみました。意味あるかなぁ。

## 必要な権限

登録したい Route 53 のホストゾーンのレコード一覧を取得・変更するための権限:

– `route53:ChangeResourceRecordSets`
– `route53:ListResourceRecordSets`

インスタンス

元記事を表示

RHEL ネットワーク設定方法

#Linux RedHat ネットワーク設定方法とは?
##2種類のファイルを書き換えます
1:/etc/sysconfig/network
2:/etc/sysconfig/network-scripts/ifcfg-ens192

##1:/etc/sysconfig/network
上記のファイルは、接続するネットワークを決めるファイルです
固定IPにするのか、DHCPによるIP設定にするのかで設定が異なります

###/etc/sysconfig/networkを設定するには?
####viコマンドの利用

“`
# vi /etc/sysconfig/network
 NETWORKING=yes
 HOSTNAME=test.your.domain.name
 DOMAINNAME=your.domain.name
 GATEWAY=192.168.0.2
“`
上記ファイルの中身では、個々の行ごとに意味があります。

| 行 | 説明                      |
|:—————–

元記事を表示

Linuxのユーザー管理をActive Directoryでやってみる

LinuxのユーザーをActive Directoryで管理する方法です。
複数台での共通のユーザーを管理したい場合などに使えます。

# 環境
– AD (AWS Directory Service for Microsoft Active Directory)
– AmazonLinux2 on EC2
– WindowsServer2019 on EC2 (AD管理用)

鍵認証を行うためにはADのスキーマ拡張が必要だったため、SimpleADではなく、Microsoft Active Directoryを使っています。
(SimpleADでも頑張ればできそうな記事もあったけ途中で挫折…)
https://github.com/localytics/chef-sssd/blob/master/GETTING_STARTED.md
https://teratail.com/questions/153872
WindowsServerはADのユーザー作成/削除で利用するので、普段は停止にしておいてOKです。

# AWS Directory Service for Micro

元記事を表示

AWS Well-Architected Review – An Understanding

AWS Well-Architected Review – What is it?

Cloud computing services are changing as the years have passed, and it is certainly the case with the AWS environment. Tech geeks have been largely successful in creating fresh instances, making changes in security groups, and do a little tinkering on the new AWS Services. Even after all that, it could turn out to be a disaster.

This is the reason Amazon Web Services now recommend c

元記事を表示

データをアップロードするとファイル名チェックをするAWS Lambda

# はじめに

* AWS S3にアップロードされたデータが、ファイル命名規則に沿っているかチェックします。
* チェック結果はSlackに通知
* 規則に沿っている場合、後工程に繋げることもできます(ex.機械学習モデルのの推論呼び出し)。
* 今回はその前段階です。
* AWS上での機械学習モデルの学習や、推論は以下の記事を参照ください。
* [Amazon SageMakerで猫と犬の検出と種類の特定をしてみた](https://dev.classmethod.jp/machine-learning/sagemaker-cat-dog-detection/)

# 前提

* AWSのアカウントは作成済み
* SlackのWorkspaceに所属している

# 手順

* Step.1 Slackの設定
* Step.2 データをアップロードするS3の作成
* Step.3 Lambda関数の作成
* Step.4 Lambda関数の修正

# Step.1 : Slackの設定

* 参考:[AWS Lambdaで作るSlack bo

元記事を表示

RHEL ランレベル(runlevel)確認方法

#Linux Redhatのランレベルを確認するには?
##runlevelコマンドの利用
runlebelの設定値を確認する為には、runlebelコマンドを利用します。
実行コマンドは下記の通りです。

“`
# runlevel
“`

runlevelとは、Linuxの起動するプログラムを設定する箇所です
レベルは0~Sまでの7段階あり、それぞれ意味があります。

| ランレベル | 説明     |
|:———–|:———————————|
| 0 | システムの停止 |
| 1 | シングルユーザーモード |
| 2 | マルチユーザーモード(CUI,NFSなし) |
| 3 | マルチユーザーモード(CUI) |
| 4 | 使わない |
| 5

元記事を表示

Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #15 (アプリケーション統合)

Amazon Web Services (AWS)のサービスで正式名称や略称はともかく、読み方がわからずに困ることがよくあるのでまとめてみました。

Amazon Web Services (AWS) – Cloud Computing Services
https://aws.amazon.com/

まとめルールについては下記を参考ください。

Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #1 (コンピューティング) – Qiita
https://qiita.com/kai_kou/items/a6795dbab7e707b0d1a6

間違いや、こんな呼び方あるよーなどありましたらコメントお願いします!

## Application Integration – アプリケーション統合

### Amazon EventBridge

– 正式名称: Amazon EventBridge
– https://docs.aws.amazon.com/en_us/eventbridge/?id=docs_gateway
– 読み方:

元記事を表示

AWS S3 バケットについての注意メモ / Data not found. / 同じ名前のバケットを使い続ける場合は削除せず空にする

先日、S3においてハマったことがありましたので、自分用の注意点としてメモしておきます。

※ 2019/11時点情報のため、内容が古い可能性があります。ご了承ください。 :pray:

# 「Data not found.」と表示され、削除できない

削除したはずのS3がAWSコンソール上に表示されている状態かつ、
再度削除しようとすると確認ボタンが押せず、
S3バケットのリンクを開くと「Data not found.」と表示されました。

`S3 Data not found.`で検索すると、以下記事にたどり着きました。

– [はてなブログ – AWS S3でData not foundと表示され削除できない時の対処](http://hatunina.hatenablog.com/entry/2018/10/15/202148)
– [AWS Developer Forums – “Error Data not found” in S3 bucket, and can’t delete](https://forums.aws.amazon.com/thread.jspa?thre

元記事を表示

AWS Laravel

chmod 400 id.pem

chmod 600 id.pem

ssh -i “sshkipem” (ubuntuDNS)

元記事を表示

MeCabをAWSのLambdaで使う

# あらすじ
仕事で形態素解析エンジン**MeCab**を**AWS Lambda**で動かさなくてはならなくなった。

ローカルのPythonのコードからMeCabを動かせたので、Windows Subsystem for Linux(WSL)でMeCabと辞書をビルドしてコードと一緒にZipにしたところ、エラーが多発してまったく使えなかった。

色々なサイトを見て解決策を探したところ、Lambdaに搭載するバイナリファイルはLambdaのランタイムと全く同一の環境でビルドしなければならないことが判明。

LambdaのPython3.7ランタイム環境のOSは**AmazonLinux**である。他の記事にある通り、AmazonLinuxのEC2上でビルドすればよいのだが、いちいちEC2を立ち上げるのはどうなのかと感じた。

そんな中、[AmazonLinux](https://hub.docker.com/_/amazonlinux)のイメージを発見した。このイメージを元にしたコンテナ内でMeCabをビルドしたところうまくいった。

# コンテナのファイルとか
Dockerfile

元記事を表示

【初心者】AWS PrivateLink を使ってみる

# 目的
– PrivateLinkは既に登場して2年ほどになる、ある程度枯れたサービスだが、構成を理解するため触ってみることにした。

# AWS PrivateLink とは(自分の理解)
– 自分のVPCのNLB配下のWEB等のサービスを、同一リージョン内の他のVPCに公開できるサービス。VPCピアリング等と異なり、IPアドレスレンジの重複等の考慮が不要で、AWS内に閉じた安全なNW接続を実現できる。
– PrivateLinkは、サービスを公開する側(エンドポイントサービス)と、サービスにアクセスする側(インターフェースエンドポイント)のセットで構成される。

# やったこと
– VPC(Provider)側にNLBとEC2(nginx)、VPC(Consumer)側にEC2(WEB Client)を作成する。
– VPC(Provider)側で「エンドポイントサービス」を作成し、NLBを指定する。
– VPC(Consumer)側で「インターフェースエンドポイント」を作成し、接続先として、「エンドポイントサービス」を指定する。
– VPC(Provider)側で、「インターフ

元記事を表示

RHEL カーネルリリースバージョン確認方法

#Linux Redhatカーネルのリリースバージョン確認方法
##unameコマンドの利用
Linux RedHat7.7のカーネルバージョンを確認する為には、unameコマンドを利用します。
実行コマンドは下記の通りです。

“`
# uname -r
3.10.0-1062.X.X.el7.x86_64
## 表示される数字部分をXとしています
“`

##その他オプションについて

他のオプションについては下記の通りです

| オプション | 説明     |
|:———–|:—————————-|
| -a | 全てのシステム情報を表示する |
| -i | ハードウェアのプラットフォームを表示する |
| -m | コンピュータのマシンタイプを表示する |
| -n | ホスト名を表示する |
| -o

元記事を表示

【Go】AWS SSMパラメータストアの値を取得する

## サンプルコード

今回はAWS SSM パラメータストアに以下のようなパラメータが作成してある。

| パラメータ名 | 値 |
| —————- | ———- |
| sample-parameter | HOGEHOGE!! |

“`go
package main

import (
“fmt”

“github.com/aws/aws-sdk-go/aws”
“github.com/aws/aws-sdk-go/aws/session”
“github.com/aws/aws-sdk-go/service/ssm”
)

func main() {
svc := ssm.New(session.New(), &aws.Config{
Region: aws.String(“ap-northeast-1”),
})

res, _ := svc.GetParameter(&ssm.GetParameterInput{
Name: aws.String(“sample-para

元記事を表示

機械学習関連AWSソリューション簡易まとめ

## 目的

MLを利用した動画解析をしたいと思いました。
ですが往々にして、開発環境構築などの本質的ではない作業があります。
本質にフォーカスする時に便利なのがSaaSの存在です(MLaaSと呼びます)。
そのためまずはこれらのサービスの概要を理解を理解したいと考えました。

## MLレベルについて

couseraのAndrew Ng先生のmachine leaning講座を修了しました(Stanford大学の修了証は少し嬉しかった)。
MLエンジニアになりたいと考えていますが、研究して人類未踏の領域を広げたいわけではありません。あくまでもMLは手段の一つと考えています。

## MLaaSの選定について

開発経験のあるAzure、AWSの2択でした。
Azureに関してはエンジニアからとても完成度の高いデモを見せてもいただいたこともあります(サッカーの試合でゴールシーン前後のキャプチャ、リアルタイム翻訳した字幕付与など)。
結局はできることは一緒かなと思い、すでに個人で契約していたAWSを利用することにしました。

## ソリューション一覧

A

元記事を表示

OTHERカテゴリの最新記事