- 1. RHEL ランレベル(runlevel)確認方法
- 2. Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #15 (アプリケーション統合)
- 3. AWS S3 バケットについての注意メモ / Data not found. / 同じ名前のバケットを使い続ける場合は削除せず空にする
- 4. AWS Laravel
- 5. MeCabをAWSのLambdaで使う
- 6. 【初心者】AWS PrivateLink を使ってみる
- 7. RHEL カーネルリリースバージョン確認方法
- 8. 【Go】AWS SSMパラメータストアの値を取得する
- 9. 機械学習関連AWSソリューション簡易まとめ
- 10. [awscli] nodejs8.10を使用しているlambdaを洗い出すワンライナー
- 11. GitHub Actionsを使ってnuxt.jsで作成した静的WebページをS3に自動デプロイする
- 12. RHEL ロケール(locale)確認方法
- 13. AWS上の Redhat でInfoScaleを用いてクラスターを構築しよう
- 14. RHEL CPU/メモリ確認方法
- 15. DjangoアプリをAmazon Linux+Apache+mod_wsgiで公開する
- 16. RHELバージョン確認方法
- 17. 【待望】EKSでワーカーノードのプロビジョニングがサポートされた
- 18. AWS CloudFormationをちょっとだけ理解した
- 19. pymysqlでRDS(Aurora)にIAM認証でアクセスする
- 20. エンジニアが披露宴の余興を頼まれたら
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 mainimport (
“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
[awscli] nodejs8.10を使用しているlambdaを洗い出すワンライナー
# モチベーション
`AWS Lambda: Node.js 8.10 is EOL, please migrate your functions to a newer runtime version.` らしいので、nodejs8.10を使ってるlambda関数を洗い出したかった
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/runtime-support-policy.html
https://qiita.com/kapioz/items/1e0fb80afc7d98bbde52# ワンライナー
`aws lambda list-functions | jq -r (‘.Functions’|.[]|'{ FunctionName: .FunctionName, Runtime: .Runtime}’) | jq -r ‘select(.Runtime == “nodejs8.10”)’`
こっちだと関数名のみ
`aws lambda list-functions | jq -r (‘.Functions’|
GitHub Actionsを使ってnuxt.jsで作成した静的WebページをS3に自動デプロイする
# はじめに
`Nuxt.js` で作成した業務用のWebアプリを、S3の `Static website hosting` で運用しているのですが、個人メンテナンス & 更新頻度が少ないといった理由で、1.手元で `yarn generate` → 2.手動でS3にアップロード → 3.手動で全ファイルを公開、というひどい運用をしていました。
そこで、先日正式リリースされたGithub Actionsを使って、自動デプロイの環境を整えたのでその備忘録です。
![deploy.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265206/f2399c6f-6fd4-fbfb-bab7-c0b41f2e5f01.gif)# 自動デプロイの手順
1. Githubの `release` ブランチへのプッシュをトリガーにGithub Actionsを実行
2. `release` ブランチをチェックアウト
3. `python` のセットアップ
4. `awscli` のインストール
5. `nuxt` の
RHEL ロケール(locale)確認方法
#Linux RedHatロケールを確認するには?
#localctlコマンドを利用する
Linux RedHat7.7のロケールを確認する為には、localectlコマンドを利用します。
実行コマンドと結果は下記の通りです。“`
# localectl status
System Locale:LANG=ja_JP.utf8
VC Keymap: us
X11 Layout: n/a
“`##ロケールを変更したい場合
①まず、設定できるロケールを参照します。“`
# localectl list-locales
“`②次に設定します。「設定したいロケール」の箇所は先ほどのリストから設定したい言語を選出し入力すればOKです。
“`
# localectl set-locale LANG=設定したいロケール
“`③設定が反映されているのかを確認します
“`
# localectl status
“`#引用
RHEL7のシステムロケールを設定する
>https://access.redhat.com/documentat
AWS上の Redhat でInfoScaleを用いてクラスターを構築しよう
# はじめに
InfoScale は、AWS上のRHELでのクラスタリングを保証しています。ただし、顧客要件によって実装パターンが複数存在します。そして、InfoScaleをAWS上のRHELに構築する場合は、以下2つのポイントに留意する必要があります。
**1.どのような要件を満たすために、どのような構成のクラスターを構築するか**
**2.オンプレとは異なるInfoScaleの前提条件**
本記事では、上記2つのポイントを中心に、AWS上でクラスタリングが必要になった場合に、要件毎の最適なソリューションと、実装パターン毎の注意点を説明します。
# どのような要件を満たすために、どのような構成のクラスターを構築するか
**同一AZ内で、共有ディスクを用いたクラスター**
もっとも単純なクラスター構成です。クラスタリングされたオンプレのシステムを、そのままAWSに移行する際に用います。同一AZ内ですので、共有ディスク構成をとることができますし、AWSのPrivateIPをクラスターのノード間で切り替える事も可能です。Active-Standby型のクラスターで、切り替え時間が3分以上か
RHEL CPU/メモリ確認方法
#Linux RedHat CPU/メモリを確認するには?
##catコマンドの利用
Linux RedHat7.7のCPU/メモリを確認する為には、catコマンドを利用します。
実行コマンドは下記の通りです。
設定値を確認するには基本的にcatコマンドを利用します。“`
# cat /proc/cpuinfo
# cat /proc/meminfo
“`/procの中には、カーネルに関するよく使用される情報がディレクトリ配下として入っています。
# 引用
Redhat Enterprise Linux 4 リファレンスガイド
>http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-ja-4/s1-proc-directories.htmlRedHat7.6の時と基本的にコマンドの変更はありませんでした。
最後までご覧いただきありがとうございました!
DjangoアプリをAmazon Linux+Apache+mod_wsgiで公開する
#この記事について
この記事では、Djangoで作成したWebアプリを、実際に本番環境にデプロイ(=Webサーバーにのせて公開)するまでの流れを紹介します。##使用する環境・バージョン
– OS : Amazon Linux AMI release 2018.03
– Webサーバー : Apache/2.4.41 (Amazon)
– Python 3.6.8
– Django 2.2.7
– mod_wsgi 4.6.8##前提条件
– Djangoアプリは、ローカル環境で動くところまで完成しているものとします。具体的には、`python manage.py runserver`コマンドを使うことで、localhost:8000にで問題なく動かせるところまで既にできていることとします。
– ssh接続ができるEC2インスタンスをAWSで作成済みであることとします。
– EC2サーバーの中にApacheをインストールし、ブラウザでドキュメントルート直下にアクセスするとテストページが表示される状態であることとします。
– Githubアカウントを所持しており、またEC2インスタ
RHELバージョン確認方法
#経緯
目的:RedHat7.7の検証環境の作成
試行 ①AWS環境にて7.7の作成を試みましたが、存在しないことが判明
②AWS環境にてRedHat7.6を作成し、7.7にバージョンアップさせることにしました。#Linux RedHatバージョン確認するには?
##catコマンドの利用
Linux RedHat7.6のバージョンを確認する為には、catコマンドを利用します。
実行コマンド下記の通りです。“`
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.7 (Maipo)
“`##バージョンアップしたい場合
仮にバージョンが所定のバージョンでは作成できない場合、
下記コマンドを利用してバージョンアップします。“`
# yum upgrade -y
# reboot
“`
yum upgradeコマンドのオプション-yは、「全ての問いにyesと答える」という意味です。
つまり、バージョンアップする際にまとめてyesと答えたこととなり、いちいち問いかけられる質問に
【待望】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の延長です)
送ってもらった写真の一覧と詳細