- 1. 備忘録
- 2. 【総集編】6月ふりかえり
- 3. TerraformでAWS VPCを削除する
- 4. 【AWS】AmazonLinuxにてZabbixマネージャー構築
- 5. SAMでS3にCSVファイルアップロードをトリガーにDynamoDBへの登録処理の作成
- 6. AWSアカウント間のドメイン移管はAWSサポートを使わずawscliだけでできるようになった
- 7. ECSに合わせたCodePipelineについて、めちゃめちゃ詳しく書いてみた (AWS, CI/CD)
- 8. [AWS]CloudFrontのキャッシュをEC2から削除する
- 9. Amazon EC2(Amazon linux)から直接S3へのファイルコピー
- 10. AWS Linux2になってコマンドが変わったのでメモ
- 11. EC2でsudo実行時エラーが出るようになった話 sudo: /usr/bin/sudo be owned by uid 0 and the setuid bit set
- 12. 【Amazon Connect】電話でEC2インスタンスを停止したり、再起動したりする。
- 13. AWS Update 6/2-6/24
- 14. 急激なリクエスト増が発生した場合のAWS Lambdaの挙動を確認する(1)
- 15. RDSとDynamoDBをCAP定理、ACID、BASEを使って整理する
- 16. AWS CLI で EKS クラスターの IAM OIDC ID プロバイダーを作成
- 17. あらためてEPELリポジトリの使い方をまとめてみた
- 18. 【AWS】AmazonLinuxのyumができない場合の対処
- 19. 【AWS初心者】AWS Batchで作られるEC2インスタンスがECSクラスターに入らない!ハマったのでメモ
- 20. Next.jsを使って医師国家試験の勉強ノートを公開するブログを作った話
備忘録
【】
・ps -ef |grep jar (実行中のjarプロセスを確認するコマンド)・kill -9 「jarプロセスのID」 (実行中jarプロセスを停止するコマンド)
・java -jar 「プロジェクト名」 & (プロセスを実行するコマンド)
【総集編】6月ふりかえり
# はじめに
今月のふりかえりです。
月1で振り返り
今後は何を勉強するかを決めます。——————————–
# 6月 1週目2020/06/03 [【プログラミング】吾輩は関数である名前はまだない](https://qiita.com/ymd65536/items/ab17bc0b1d47d37c1b9e)
2020/06/07 [【SQL】最初に覚えるSQLの話](https://qiita.com/ymd65536/items/c9537e5525143c31a551)
——————————–
# 6月 2週目2020/06/08 [【データベース】正規化について知る](https://qiita.com/ymd65536/items/d69f106eca0fe25bf047)
2020/06/10 [【ExcelVBA】オブジェクト指向プログラミングをしよう](https://qiita.com/ymd65536/items/c88881f630ed1125fa6
TerraformでAWS VPCを削除する
TerraformでAWS VPCを削除するコード(コマンド)
## 実行環境
– Windows 10 Home (1919)
– Git Bash (git version 2.25.1.windows.1)
– AWS CLI (aws-cli/2.0.3 Python/3.7.5 Windows/10 botocore/2.0.0dev7)
– Terraform (v0.12.26)## 削除する構成
まっさらなVPCが1つだけある状態で、そのVPCを削除
![20200623.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660929/44f3c342-a8b0-f543-7378-309fdf02600d.png)
## main.tf
“` main.tf
provider “aws” {
profile = “prj01-profile”
region = “us-west-2”
}resource “aws_vpc” “prj01VPC” {
cidr
【AWS】AmazonLinuxにてZabbixマネージャー構築
# はじめに
AmazonLinuxでのZabbixマネージャーの構築方法についてアウトプットしていきたいと思います。
(今回は、OS設定のみアウトプットとします。)# 自宅環境
| 項目 | 説明 |
| —- | —- |
| 自宅PC | Windows10 |
| ターミナル | TeraTerm |# 基盤環境
| 項目 | 説明 |
| —- | —- |
| OS | Amazon Linux 2 AMI (HVM), SSD Volume Type |
| Size | t2.large |
| DB | MySQL 5.7.26 |**※DBはRDSを外付け**
※AWSのベストプラクティスに沿って、作業用IAMユーザーにて作業
(ルートユーザーには多要素認証設定済み)# 構成図
![Zabbix構築.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/9e63d99f-c760-4478-28
SAMでS3にCSVファイルアップロードをトリガーにDynamoDBへの登録処理の作成
## 概要
S3にCSVファイルをアップロードすることでLambdaを起動させてDynamoDBに登録する処理を作成したのでその時の内容です。公式ドキュメントにはいろいろ乗っているので基本はそちらを見るといいかも?
[前回の投稿](https://qiita.com/dmikita/items/bc2019246878e82d1ed1)で作成したDynamoDBを使うSAM側の内容です。## template
template.yamlの定義は以下のようになります“`yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Transform: AWS::Serverless-2016-10-31
Description: >
writeSignalDatasSample SAM Template for writeSignalDatas
# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/do
AWSアカウント間のドメイン移管はAWSサポートを使わずawscliだけでできるようになった
タイトルの通り。
## 概要
AWSの別アカウントにドメインを移行する際、AWSサポートを使わないとできないという印象があり、面倒だなとずっと思っていた。が、今ドキュメントを見るとawscliで普通にできるようになってた。
https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/domain-transfer-between-aws-accounts.html
## 実践
移管元のAWSアカウントを `111111111111`
移管先のAWSアカウントを `222222222222`
とする。### 移管元
移管元のアカウントで「ドメイン転送するよ!」のコマンドを打つ。
awscliで `transfer-domain-to-another-aws-account` を実行すればよい。“`bash
# user is 111111111111
aws route53domains transfer-domain-to-another-aws-account –domain-name
ECSに合わせたCodePipelineについて、めちゃめちゃ詳しく書いてみた (AWS, CI/CD)
よくAWSに触れるものです。
AWSにはCodePipelineというかなりカスタマイズ性に優れたCI/CDがあります。
そしてスケーリング、管理の簡易性に優れたECSに合わせたCodePipelineの使い方のドキュメントが少ないのと一般記事が少なかったので、かなり詳細に書きました。
システム全体のcloudformationテンプレートも載せているので構築の際に参考にしてください。
・ヘヴィメタル・エンジニアリング
[AWS]CloudFrontのキャッシュをEC2から削除する
CloudFrontのキャッシュ削除はAWSコンソールから手動で行うことができますが、
デプロイ時に自動化するために、EC2からキャッシュ削除する方法をまとめました。**EC2+S3+CloudFrontは構築済み**の前提で説明します。
## 1. S3へファイルアップロードする
まずはテスト用のファイルをアップロードします。
AWSコンソール > サービス > S3 > 該当バケット > アップロード
でS3へ適当な画像ファイルやHTMLファイルなどをアップロードします。
次へを押して、後の確認のためパブリックアクセス権を付与してください。
Amazon EC2(Amazon linux)から直接S3へのファイルコピー# Amazon EC2(Linux)から直接S3へファイルコピー
AWS環境で何か検証している際にEC2内のデータファイルを別環境へエクスポートしたいことがあるかと思います。(私は結構ありますが皆さんどうなのでしょうね…)
EC2がWindows server OSならブラウザーが使えるのでBox等にUpするとかWebメールに添付してとか色々やりようはあると思いますがLinux OSだとどうしよう(´・ω・`)ってなります。
そこでAWS CLIを使って、EC2から直接S3にアップロードして、S3のコンソール画面から別環境にダウンロードするという方法を検証したいと思います。# 実現したいこと
![やりたいこと.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/a7db0419-e383-2b35-3bd5-328e1497d9c8.png)EC2(Linux)内のデータファイルをS3へエクスポートして、S3コンソール画面からDLできるようにしたい
# 手順
1. EC
AWS Linux2になってコマンドが変わったのでメモ
AWSでhttpをたてるときLinux2を初めて使ったらLinuxとコマンドが少し違って混乱したのでメモ
httpの場合です。
sudo yum -y install httpd #httpのインストール
sudo systemctl start httpd #スタート
sudo systemctl enable httpd #起動時に有効化
sudo systemctl list-unit-files | grep httpd #自動起動確認
httpd.service enabled #自動起動の確認ができました
httpd.socket disabled
EC2でsudo実行時エラーが出るようになった話 sudo: /usr/bin/sudo be owned by uid 0 and the setuid bit set
##はじめに
誤って /bin 以下のパーミッションを変更してしまい、sudoコマンド実行時にエラーが出るようになった。
(確か)rootユーザでのログインもできなくなった。##結論
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-sudo-commands/
上記を参考に、AWS EC2コンソールのインスタンス設定で、スクリプト設定をすると、root:rootになって復旧。##詳細
流れでコマンドを打ってる際、“`chown -R hoge bin/“` のつもりが “`/bin“`を指定してしまった…コマンドのスペルミスなどの打ち間違いを補完する方法はあるが、間違っていないので今回のケースは防げない。
こんなミスをするユーザにはsudo権限を与えないなど、権限を絞ることもできるが、自分がサーバ管理者であった。「気をつける」レベルの対策になってしまうが、下記を意識していきたいと思う
– 変更を加えるコマンド実行時は、絶対パス指定しない
– コマンド実行前に、かならず見直す##お
【Amazon Connect】電話でEC2インスタンスを停止したり、再起動したりする。
#解決したいこと
“`
仮想カスタマ「しもしも!? サーバーの調子おかしいんだけど!??マッハでリブートして!!」
オペレータ 「おかのした」
※フィクション
“`ここからカスタマの情報を確認して、EC2インスタンスの状態をチェックして、カスタマのインスタンスかどうかをダブルチェックして、オペレータが心の準備をしてからインスタンスを再起動する。
#いや、無駄ちゃう?
自分はセールスなんで実際に作業をしている訳ではないですが、割と前述みたいな電話がかかってくることは多いです。
そして、確認して作業して…。
大したこと無い作業ですが、その割には影響が大きい(聞いたことはありませんが、他のインスタンスをリブートしたりとかのリスクを懸念する)ので、脳味噌ゼロでやれるようなことでもありません。いやでもそれにしてもこんなことに時間を取られるのは如何なものか。
「いっそ、電話受付無くしたら?」という声も聞きますが、それならそれに代わるサービスを考えねばなりません。#お客様で作業を完結してもらう
電話受付を無くす&お客様で作業をしていただく方向性で考えました。**【使うもの】**
AWS Update 6/2-6/24
最近AWSに少し飽き始めてバイクに時間を使っていました。
ですが、バイクに飽き始めたのでAWSに戻ります。
アップデート追って行きましょうーーーー!!!#6/2
##AWSデータ移行サービスは、リレーショナルソースからAmazon Neptuneへのグラフデータのコピーをサポートするようになりました
https://aws.amazon.com/about-aws/whats-new/2020/06/aws-data-migration-service-now-supports-copying-graph-data-from-relational-sources-to-amazon-neptune/
##Amazon AthenaでメタデータカタログとしてApache Hiveメタストアを使用する
https://aws.amazon.com/about-aws/whats-new/2020/06/use-apache-hive-metastore-metadata-catalog-amazon-athena/
##Amazon Redshiftのスキーマのストレージ管理を発表
h
急激なリクエスト増が発生した場合のAWS Lambdaの挙動を確認する(1)
### はじめに
AWS LambdaはAWSの様々なAWSサービスをイベントソースとしてシームレスに連携して起動可能なサーバーレスなコンピュートサービスです。カタカナばかりで分かりにくいかもしれませんので別の表現をすると、
`「AWS Lambdaは様々なAWSサービス(、例えば、Amazon S3,Amazon API Gateway, ELB( Application Load Balancer), Amazon SQS, Amazon SNS, Amazon DynamoDB (Streams)等)をイベントソース(入力元、起動のトリガー)としてシームレスに連携して起動可能なサーバーレス(サーバの運用や**サーバのスケール**等の運用が不要な、アプリケーション開発者が開発をしやすくすることができる)コンピュート(アプリプログラム実行環境)`サービスです上述する通り、サーバーのスケールの考慮が不要と記載がありましたが、AWS Lambdaがどのようにスケールするか仕様を確認したうえで、ご自身のワークロードに適しているか判断してご利用いただくことが重要です。
余談ですが、過
RDSとDynamoDBをCAP定理、ACID、BASEを使って整理する
AWSの2大データベースであるRDSとDynamoDB、シンプルに初心者向けに何が違うのか、違いが簡単にわかるような説明を考えてみます。
# はじめに
初めてAWSのアーキテクチャーを考えるときに、最近ではサーバーレスな設計がごろごろ落ちているため、初めてシステム設計をする場合でも、NoSQLデータベースである、DynamoDBを使ったシステム構成が描けてしまいます。私が駆け出しのころは、Oracleまっさかりで、RDBを使ったシステム構成しか描けなかったものです。あらためて今回CAP定理という言葉をつかって初心者向けに比較してみたいと思います。# CAP定理 と ACID と BASE を知っておこう
分散コンピューティングの考え方として、CAP定理、ACID、BASEを整理してみます。データベースを比較するときにかならず取り上げられる特徴になります。なかなか理解できませんが絵のように頭に焼き付けておきましょう。## CAP定理
具体的な利用例でまとめられているのですが、3つの機能のうち1つを犠牲にしなければならないという定理です。2000年に生まれた概念です。+ 一貫
AWS CLI で EKS クラスターの IAM OIDC ID プロバイダーを作成
“`
$ CLUSTER_NAME=example-eks-cluster
$ ISSUER_URL=$(aws eks describe-cluster –name $CLUSTER_NAME –query “cluster.identity.oidc.issuer” –output text)
$ JWKS_FQDN=$(curl -sS $ISSUER_URL/.well-known/openid-configuration | jq -r ‘.jwks_uri’ | perl -pe ‘s/^https:\/\/(.+?)\/.+$/${1}/’)
$ CERTIFICATE_BODY=$(openssl s_client -servername $JWKS_FQDN -showcerts -connect $JWKS_FQDN:443 < /dev/null) $ CERTIFICATE_START=$(echo $CERTIFICATE_BODY | grep -n 'BEGIN CERTIFICATE' | sed -e 's/:.*//g' | tail -n
あらためてEPELリポジトリの使い方をまとめてみた
# 1. はじめに
RHEL系ディストリビューションにおける、拡張パッケージのリポジトリ**「EPEL」**を使っている人は多いだろう。筆者もこれまでの記事で何度か紹介してきた。ところがクラウドでは状況が微妙に異なる。そこで使い方をまとめることにした。### 1-1. TL;DR
* クラウドでは、デフォルトで有効になっていることや、独自のインストールコマンドが提供されていることがある
* 記事で毎回EPELの使い方を説明するのは無駄### 1-2. 前提条件
* RHEL系Linuxディストリビューション。FedoraやCentOS、Amazon Linux、Oracle Linuxなど
# 2. EPELとは
EPELを使う手順は簡単だ。すぐにインストールしたいときは[「3. EPELリポジトリを有効にする」](https://qiita.com/yamada-hakase/items/fdf9c276b9cae51b3633#3-epel%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92%E6%9C%89%
【AWS】AmazonLinuxのyumができない場合の対処
# はじめに
AmazonLinux構築中に`yum update`ができない事象が発生しました。
この場合の原因と対処についてアウトプットしていきたいと思います。# 事象
AmazonLinuxにて`yum update`を実施したところ、下記画面にて止まることを確認。
“`bash
[root@ip-192-168-5-129 ec2-user]# yum -y update
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
“`# 環境
## 自宅環境
| 項目 | 説明 |
| —- | —- |
| 自宅PC | Windows10 |
| ターミナル | TeraTerm |## クラウド環境
| 項目 | 説明 |
| —- | —- |
| PublicCloud | AWS |
| OS | Amazon Linux 2 AMI (HVM), SSD Volume Type |**※自宅P
【AWS初心者】AWS Batchで作られるEC2インスタンスがECSクラスターに入らない!ハマったのでメモ
# はじめに
タイトルの通り、”AWS Batchで作られるEC2インスタンスがECSクラスターに入らない!”というハマり方をしました。
今後同じようになった人の解決の助けになればと思います。# 1つ目のハマったところ → 原因: AWS Batchで選択しEC2たインスタンスタイプが東京リージョン未対応だったため
## 現象
AWS BatchにてCompute environments、Job queue, Job definitionsを作成しJob実行後、”RUNNABLE”の状態で止まったままでした。
このとき、EC2インスタンスはできていませんでした。AutoScalingGroupの設定を見ると下記スクショのようなエラーメッセージが出ていることがわかりました。![スクリーンショット 2020-06-14 18.42.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91562/2f8f8005-5a40-f391-38cc-33fdfa2c6bfd.png)
エラーメッ
Next.jsを使って医師国家試験の勉強ノートを公開するブログを作った話
# Next.jsを使って医師国家試験の勉強ノートを公開するブログを作った話
表題の通りです。まずは完成品とレポジトリのURLをどうぞ。
サイト:https://chilvary-beta.vercel.app
GitHub:https://github.com/yokonao/chilvary-beta
## 作ったきっかけ
next.jsの公式チュートリアル(URLは以下)をやったら、構築の容易さとSPAのページ遷移の速さに感動したので。これで自分のブログ作ったら超便利じゃない?と思いました。単純なページ公開だけならバックエンドなしでも可能です。
https://nextjs.org/learn/basics/create-nextjs-app?utm_source=next-site&utm_medium=homepage-cta&utm_campaign=next-website
## アーキテクチャアーキテクチャっていうのは大げさすぎるかもしれません。
1. ローカルPCで書いたMarkdownファイルを作成
2. Markdownファイルを**AWS S3*