- 1. AWS EC2でサーバを構築 3 – Apache + Let’s Ecnrypt + PHP-FPM編 (Nginxに変更)
- 2. AWS EC2でサーバを構築 2 – 各種インストール編
- 3. AWS EC2でサーバを構築 1 – Amazon Linux 2 準備編
- 4. AWS kinesisのイメージ
- 5. AWSの設定難解過ぎて、access_key, secret_access_keyを直書きしたら、アメリカから電話きた話
- 6. 俺でもわかるElastiCache Redis Clusterのシャードメンバーが消せなくてRedis警察に怒られるイベントメッセージ
- 7. インフラをAWSに移行するとき10日間ハマったこと。
- 8. Terraformでクレデンシャルを読み込む方法あれこれ
- 9. AWS DevOps Engineer Professional受験記
- 10. AWS CDKで「No stack could be identified for the construct at path」と出るとき
- 11. 【AWS認定試験】6試験(CLF・SAA・SAP・SOA・DVA・DOP)合格までの道のりと勉強方法について
- 12. 初心者必見! 「最小限の知識と手間で実現」既存システムの AWS 移行 その2 【移行ツール 編】
- 13. 【Cacoo】AWSのクラウドアーキテクチャ構成図自動作成
- 14. AWSでVPC領域を作成する
- 15. AthenaでS3のJSONログを検索する
- 16. ECS+Fargateでコンテナを起動する際、ECRにアクセスできない現象の解決方法
- 17. ALBのバックエンドで動作するJava実装のLambda関数をBlue/GreenデプロイメントするCodePipelineを作る
- 18. AWS日記② (AWS Lambda)
- 19. AWS Client VPN の導入
- 20. AWS Lambda serverless(sls) コマンド入門
AWS EC2でサーバを構築 3 – Apache + Let’s Ecnrypt + PHP-FPM編 (Nginxに変更)
## 概要
**ウェブサーバをApacheからNginxに変更したので本作業は不要です。
Apacheで構築したい場合を除き、本記事は読み飛ばしてください。**Apache (Event MPM) とSSL、PHP-FPMを設定します。
前回の記事で各種インストールが完了している前提です。
## Apahce
管理者メールアドレス等、お決まりの項目は除いて説明します。以下は気をつける部分です。
**/etc/httpd/conf/httpd.conf**
“`apacheconf
…#Options Indexes FollowSymLinks
Options FollowSymLinks ExecCGI MultiViews#AllowOverride None
AllowOverride All
“`“`apacheconf
#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi
AWS EC2でサーバを構築 2 – 各種インストール編
## 概要
前回の記事でAmazon Linux 2の初期設定が完了している前提です。
サーバアプリケーションを中心に各種インストールを行います。
設定は次回以降の記事で行います。
## ~~ApahceとSSL~~
**ウェブサーバをApacheからNginxに変更したためインストール不要です。飛ばしてください。**
SSL証明書取得用にLet’s Ecnryptの`certbot`もインストールします。
“`bash
yum install httpd mod_ssl certbot
systemctl enable httpd
“`## NginxとSSL
EPELにもNginxはありますが、AWSなのでamazon-linux-extraからインストールします。
SSL証明書取得用にLet’s Ecnryptの`certbot`もインストールします。
“`bash
amazon-linux-extras install nginx1
yum install certbot
systemct
AWS EC2でサーバを構築 1 – Amazon Linux 2 準備編
## 概要
本記事ではAmazon Linux 2の初期設定を行います。
AWS EC2インスタンス作成までが完了している前提です。
ユーザー`ec2-user`でSSHログインして作業します (ダウンロードした鍵ファイルを使用)。
## 文字コードとキーボード
日本の環境に合わせます。
“`bash
sudo timedatectl set-timezone Asia/Tokyo
sudo localectl set-locale LANG=ja_JP.UTF-8
sudo localectl set-keymap jp106
“`設定反映のため一旦切断して再接続します。
### 反映を確認
設定が正しく反映されているか確認します。
“`bash
date
“`以下のように日本時間が日本語で表示されていればOKです。
“`bash
2020年 4月 14日 火曜日 10:03:39 JST
“`## 初回アップデート
パッケージのアップデートと再起動を行っておきます。
“`bash
sudo yum update
sudo rebo
AWS kinesisのイメージ
kinesisの勉強をしているのですが、どうもイメージがわかなくて困っていました。
諸先輩方の記事を見て自分なりのイメージをまとめてみました。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480089/fd81dccb-ae56-7314-49e3-6d9dc4675319.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480089/fbf9b0be-5356-dc6c-4379-1acf136c54f9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480089/48cecbe0-6348-f269-fd3e-955f914a911a.png)
業務で使ってみるまで本当の意味で腹落ちしないんだろうな。。。
間違いがありましたらご指摘ください。
AWSの設定難解過ぎて、access_key, secret_access_keyを直書きしたら、アメリカから電話きた話
#ことの顛末
インフラAWS化地獄から抜け出すときに、Herokuで設定した環境変数をどこに書いてたら良いかわかんなくて、エラーでるし、一旦直書きしよう!
という脳味噌爆発している発想で直書きした。
するとなんだかうまくいったから『いやっホイ♪』とか踊っていたら、Amazonからよくわからんメールが結構きてた。
よくないことはわかっているけど、まあ後で直すからええか?
とか思っていたら、翌日
アメリカ合衆国 ワシントン シアトルから電話。
5秒間完全に思考停止。
震える手で電話出たら、Native American Womanから Nativeなスピードで捲し立てられました。
ワイ関西ジャパニーズは、もうそれはそれは情けない顔をしていました。
しかし、さすがAmazonのNative American Womanですね。
状況を完全に察して、端的に要件を伝えてくれました。
おそらく、
『あんたのアカウント危ないし誰かに乗っ取られる危険あるから対処してな! メール送ったから見てくれ!』
という内容でした。
最後は、『BYE BYE~~~~~hhh』
とちょっと小馬鹿にされてましたが、
俺でもわかるElastiCache Redis Clusterのシャードメンバーが消せなくてRedis警察に怒られるイベントメッセージ
俺です。
Redis ClusterのShardメンバーが冗長すぎるなって思ったときに、ノードメンバーを削除してRedis Clusterの利用料金抑えたいときがあります。
Shard内のPrimary Nodeを消そうとするとMasterノード消そうとしたからRedis警察が守ったで(ニカッ
というイベントが発生します。“`
Decrease Replica count operation failed because the request included deletion of one or more masters: orenorediscluster-001-001 for replication group orenorediscluster
“`このイベントを見かけたときはReplica扱いのノードを消しましょう。
Primaryはダメだ。
インフラをAWSに移行するとき10日間ハマったこと。
# 対象者
Railsでアプリケーションを作成して、AWSにあげようとしている人。
Rails tutorialを結構踏襲しいている人。#参考にした記事
(DB・サーバー構築編)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで(全シリーズ)
https://qiita.com/naoki_mochizuki/items/22cfbf4bf7ec95f6ac1c#環境
ruby 2.6.3
Rails 5.2.4.1#やったこと
参考にした記事を試行錯誤しながら10日間ひたすら繰り返した。
しかし、何度やっても起動されない。
最後の最後までうまくはいくが、一向に画面が表示されない。
と言うことがありました。結論から申し上げると、
“`ruby:production.rb
config.force_ssl = false
“`
にしなければいけません。
Rails tutorialからの設定をそのままにしていたりするとここに気付かないで通り過ぎてしまいます。(私だけかもしれないが。。。)これをtrueにしたらそりゃ表示されるもの
Terraformでクレデンシャルを読み込む方法あれこれ
# これはなんですか
– TerraformでAWSクレデンシャル情報を読み込む方法について、簡単にまとめます。
– [ドキュメント](https://www.terraform.io/docs/providers/aws/index.html#authentication)を読めば全てわかる案件です。# 前提
## IAMユーザーのクレデンシャル
AWSではIAMユーザーの認証情報として、アクセスキーが使えます。プログラムからAWSのリソースを操作する場合、このアクセスキーを使ってIAMユーザーとしての認証を行います。アクセスキーはアクセスキーIDとシークレットアクセスキーの組です。アクセスキーは一般にクレデンシャルと呼ばれます。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_access-keys.html
## IAMロール
AWSではIAMロールを使った認証も存在します。IAMロールは、IAMユーザーと同様にAWSリソースへのアクセス許可/拒否が設定できます。IAM
AWS DevOps Engineer Professional受験記
#はじめに
AWS DevOps Engineer Professionalに合格したので、受験時の学習内容を記載したいと思います。
なお、試験スコアは、890/1000 でした。# 試験範囲の確認
まずは、公式サイトで[試験範囲](https://aws.amazon.com/jp/certification/certified-devops-engineer-professional/)を確認します。– 分野 1: SDLC の自動化 22%
– 分野 2: 構成管理および Infrastructure as Code 19%
– 分野 3: 監視およびロギング 15%
– 分野 4: ポリシーと標準の自動化 10%
– 分野 5: インシデントおよびイベントへの対応 18%
– 分野 6: 高可用性、フォールトトレランス、およびディザスタリカバリ 16%ただ上記を見ても何を学習すべきが、どんなサービスに関して出題されるかはよく分かりません。
# AWS公式のEラーニング
そこでオススメするのが、AWS公式のEラーニング [Exam Readi
AWS CDKで「No stack could be identified for the construct at path」と出るとき
### 概要
AWS CDKを使っていて、「No stack could be identified for the construct at path」とエラーして少しハマった。
“`bash
No stack could be identified for the construct at path
Subprocess exited with error 1
“`### 対処法
第一パラメータを`scope`から`this`に変更する。
修正前
“`typescript
new ecr.Repository(scope, ‘Repository’, {
repositoryName: ‘repository’,
lifecycleRules: [{
description: ‘Untagged image delete.’,
maxImageAge: cdk.Duration.days(1),
rulePriority: 1,
tagStatus: ecr.TagStatus.UNTAG
【AWS認定試験】6試験(CLF・SAA・SAP・SOA・DVA・DOP)合格までの道のりと勉強方法について
私はAWSに関する6個の試験に合格することができました。
![AWS認証取得状況.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/32b33c44-6818-0a92-ecec-526c09b143ef.jpeg)
現在AWS資格の試験勉強をされている皆様の一助になればよいと思い、自分の試験勉強内容を整理しました。「どんな問題がでた」ということはAWSの規約上記載できないため、あくまで「どんな勉強をした」との内容になっております。また、この記事は2020年4月時点の情報です。今後、試験問題の改定等により記載した勉強方法が有効ではなくなる可能性もありますので、ご承知おきください。#筆者情報
・インフラエンジニア
・AWSは元よりパブリッククラウドの利用経験なし
・仕事でAWSの提案をする必要があり2019年10月頃から勉強をはじめる#受験状況
|取得年月 |コード |認定 |
|:——|:——
初心者必見! 「最小限の知識と手間で実現」既存システムの AWS 移行 その2 【移行ツール 編】
既存システムのバックアップデータを利用し、**最小限の知識と手間** で AWS 上へ AMI 変換により移行を実現する方法、**4話中の 2回目**となります。
今回は**「AWS 移行ツール」の詳細**についてふれてまいります。合わせて「AWS 移行」の元となる **Veritas System Recovery** による**「バックアップ」の方法**と AMI 変換に必須となる**「仮想イメージ」への変換方法**についてもご紹介してまいります。
こちらのご訪問が**初めての方**は、まずは以下初回の「移行概要 編」からご覧いただくことをおすすめいたします。AWS 移行に、**なぜ「バックアップ」や「仮想イメージ」が必要なのか忘れてしまった方**もご覧下さい。
[初心者必見! 「最小限の知識と手間で実現」既存システムの AWS 移行 その1【移行概要 編】](https://qiita.com/vxse_japan/items/86891e92f9a0f62a140d)
最終回までご覧いただくと、**バックアッ
【Cacoo】AWSのクラウドアーキテクチャ構成図自動作成
# Cacooとは
簡単に綺麗な作図ができるクラウドサービス
https://cacoo.com/ja/features# AWSの構成図の自動作成手順
こういうのってどこで書き方学ぶんでしょうね。
自動で作ってもらえるのでもう良いんですが(‘ω’)前提①:IAMユーザーの作成権限を持つAWSアカウントを有している。
前提②:Cacooに(無料)会員登録している。やる作業は下記の2つです。
1.IAMユーザーの作成
2.権限設定とCacooとの連携### IAMユーザーの作成
Cacoo専用のIAMユーザーを作成します。
[マネジメントコンソール] – [IAM] – [ユーザー] – [ユーザーを追加]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286189/8864d61f-441c-25c3-9e3c-2c573189ff70.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazo
AWSでVPC領域を作成する
#作成したいVPC構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539205/3d88c543-9f87-d57a-2b1b-c246f7e63709.png)
・VPC領域をIPアドレス範囲 10.0.0.0 ~ 10.0.255.255 で作成
・サブネットをIPアドレス範囲 10.0.1.0 ~ 10.0.1.255 で作成
・デフォルトゲートウェイを作成し、サブネットのルーティングテーブルに登録する
##手順
1.VPC領域を作成
2.VPCをサブネットに分割する
3.インターネットゲートウェイを作成
4.サブネットのルートテーブルを確認
5.公開するサブネットをインターネットに接続する
##VPC領域を作成
1.AWSマネジメントコンソール > VPC
2.右上 > リージョン > Asia Pacific (Tokyo) ※アジアパシフィック(東京)
3.Menu > VPC > VPCの作成
– IPv4 CIDR ブロック:10.0.0.0/16
[CIDRブ
AthenaでS3のJSONログを検索する
## 概要
S3に保存したJSON形式のログファイルをAthenaのクエリで取得します。Athenaを初めて使ったので自分用のメモです。
## 準備
### 検索対象となるJSONログのフォーマット
以下のような形式です。ログイン履歴のようなファイルです。“`json:log01.json
{
“userName”: “user01”,
“logBody”: {
“account”: “123456789012”,
“time”: “2018-08-30T00:45:28Z”,
“detail”: {
“clientIpAddress”: “0.0.0.0”,
“actionType”: “successfulLogin”
}
}
}
“`– S3には「logs」フォルダを作成して、その中に以下の通りログを保存します。
ECS+Fargateでコンテナを起動する際、ECRにアクセスできない現象の解決方法
## 現象
ECSをlanchType、Fargateにて構築した際に躓いた点がありましたので共有します。
Serviceを構築してECRからイメージを取得してTaskを立ち上げようとしたら
ステータスがpendingから進まない現象が発生した。
最終的にステータスがstopになりイベントの詳細をみるとECRのアクセスがtimeout
で失敗していた。## 原因
ECRのアクセスに失敗しているようだったのでIAMRoleに対してPolicyのアタッチが
漏れているかと思ったがそうではなかった。
ECRからTaskを起動させる際HTTP経由で外から通信してImageを取得するとのことで、
Serviceのネットワーク構成で指定したサブネットから外に通信ができないのが原因だった。## 解決方法
### 解決策1
起動Taskをパブリックサブネットに配置して直接InternetGateWay経由で外に
アクセスしてECRからイメージを取得する方法。
注意点としてはSerivceを構築する際に「パブリックIPの自動割り当て」を
「Enable」にして起動TaskにパブリックIPを割
ALBのバックエンドで動作するJava実装のLambda関数をBlue/GreenデプロイメントするCodePipelineを作る
# 前提条件
以下の記事で作ったアプリケーションをベースに、CodePipelineでCI/CDパイプラインを実装するため、内容を把握しておいてほしい。[Amazon API Gateway/ALBのバックエンドで動くLambda関数をJava(Eclipse+maven)で実装する](https://qiita.com/neruneruo/items/8673af2a3ae0f8076627)
また、ALBのリスナー、ターゲットグループはデプロイ内部で作る都合上、削除しておく。
空っぽのALBのARNが準備されていれば良い(これもデプロイで一緒に作ってしまっても良いけど、ALBの作成って時間かかるので……)。# 1. CodeCommitのリポジトリの準備
今回、Eclipse+mavenベースなので、git操作もEclipse上で実施することを前提とする。
AWS ToolkitのCodeCommitを右クリックしてリポジトリを作成したら、作ったリポジトリを右クリックしてリポジトリをクローンし、そこにスケルトンのファイルを全部放り込んでビルドし直す。
うまくビルドできたら
AWS日記② (AWS Lambda)
# はじめに
今回はLambdaを利用してサーバレスなWEBページを作成します。# 準備
Lambda , API Gateway を設定し、サンプルコードを実行出来るようにします。[参考資料]
[API Gateway + LambdaでREST API開発を体験しよう [10分で完成編]](https://qiita.com/tamura_CD/items/46ba8a2f3bfd5484843f)
[[AWS] Lambda + API Gatewayでサーバレスを始める 1](https://qiita.com/naoki_koreeda/items/c2a32198c86e8d9a5bb6)# WEBページ作成
GO言語のAWS Lambda関数ハンドラー aws-lambda-go を使用してHTMLを返す処理を作成します。[参考資料]
[Go の AWS Lambda 関数ハンドラー](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/golang-handler.html)
[AWS Lambda で
AWS Client VPN の導入
## 1. AWS Clinent VPN 導入の目的
スマホからのアクセスを固定IP化したい。## 2. AWS Clinetn VPN 導入の経緯
とある受託案件の検証環境は、今まで`IP制限`をしていました。
会社のIPはもちろん許可していたため、PCもスマホも会社のネットワークに繋ぐことで検証環境にアクセスできていました。
しかしコロナウイルスによって`在宅勤務が強制`されることになったため、`自宅環境ではIPの固定化ができず、検証環境にアクセスすることができなくなってしまいました。`
※PCであれば会社が用意したVPNに接続することができるのですが、スマホは会社が用意したVPNに接続することができません。
そのため案件専用のVPNとして`AWS Client VPN`を用意し、`スマホからのアクセスを固定IP化`することにしました。## 3. AWSClientVPNのポイント
– VPC上に`Client VPN Endpoint`を作成することで、クライアント(PCやスマホ)とVPCの間でVPNを張ることができます。
– `OpenVPN`(オープ
AWS Lambda serverless(sls) コマンド入門
## sls command for function
How to deploy, run, stream logs and destroy Lambda functions
“`sh:deploy
# deploy
$ sls deploy -v# deploy only a function
$ sls deploy function -f
“`“`sh:invoke
# invoke function on local
$ sls invoke -f-l
“`“`sh:log
$ sls log -f-t
“`“`sh:remove
$ sls remove
“`